@@ -471,6 +471,8 @@ def fixup_node_props(schema):
schema['properties']['assigned-clocks'] = True
schema['properties']['assigned-clock-rates'] = True
schema['properties']['assigned-clock-parents'] = True
+ if "clocks" in keys and "critical-clocks" not in keys:
+ schema['properties']['critical-clocks'] = True
if "clocks" in keys and "protected-clocks" not in keys:
schema['properties']['protected-clocks'] = True
@@ -21,6 +21,8 @@ properties:
$ref: "cell.yaml#/array"
assigned-clock-rates:
$ref: "cell.yaml#/array"
+ critical-clocks:
+ $ref: "cell.yaml#/array"
protected-clocks:
$ref: "cell.yaml#/array"
@@ -37,4 +39,5 @@ dependentRequired:
assigned-clocks: [clocks]
assigned-clock-parents: [assigned-clocks]
assigned-clock-rates: [assigned-clocks]
+ critical-clocks: [clocks]
protected-clocks: [clocks]
@@ -89,6 +89,8 @@ properties:
$ref: "/schemas/types.yaml#/definitions/phandle-array"
assigned-clock-rates:
$ref: "/schemas/types.yaml#/definitions/uint32-array"
+ critical-clocks:
+ $ref: "/schemas/types.yaml#/definitions/phandle-array"
protected-clocks:
$ref: "/schemas/types.yaml#/definitions/phandle-array"
@@ -100,6 +102,7 @@ dependencies:
assigned-clocks: [clocks]
assigned-clock-parents: [assigned-clocks]
assigned-clock-rates: [assigned-clocks]
+ critical-clocks: [clocks]
protected-clocks: [clocks]
additionalProperties: true
Some platforms require clock to be always running, e.g. because those clock supply devices which are not otherwise attached to the system. One example is a system where the SoC serves as a crystal oscillator replacement for a programmable logic device. The critical-clock property of a clock controller allows listing clock which must never be turned off. ``` clock-controller@a000f000 { compatible = "vendor,clk95; reg = <0xa000f000 0x1000> #clocks-cells = <1>; ... critical-clocks = <UART3_CLK>, <SPI5_CLK>; }; ``` Signed-off-by: Marek Vasut <marex@denx.de> Cc: Rob Herring <robh+dt@kernel.org> Cc: Stephen Boyd <sboyd@kernel.org> Cc: linux-clk@vger.kernel.org To: devicetree@vger.kernel.org --- dtschema/lib.py | 2 ++ dtschema/meta-schemas/clocks.yaml | 3 +++ dtschema/schemas/clock/clock.yaml | 3 +++ 3 files changed, 8 insertions(+)