Re: [PATCH 3/7] dt-bindings: clock: document 8ULP's SIM LPAV
From: Laurentiu Mihalcea <hidden>
Date: 2025-10-13 12:48:11
Also in:
imx, linux-clk, linux-devicetree, lkml
On 8/5/2025 10:03 AM, Krzysztof Kozlowski wrote:
On Mon, Aug 04, 2025 at 11:54:03AM -0400, Laurentiu Mihalcea wrote:quoted
From: Laurentiu Mihalcea <redacted> Add documentation for i.MX8ULP's SIM LPAV module. Signed-off-by: Laurentiu Mihalcea <redacted> --- .../bindings/clock/fsl,imx8ulp-sim-lpav.yaml | 69 +++++++++++++++++++ 1 file changed, 69 insertions(+) create mode 100644 Documentation/devicetree/bindings/clock/fsl,imx8ulp-sim-lpav.yamldiff --git a/Documentation/devicetree/bindings/clock/fsl,imx8ulp-sim-lpav.yaml b/Documentation/devicetree/bindings/clock/fsl,imx8ulp-sim-lpav.yaml new file mode 100644 index 000000000000..ef44f50921f8 --- /dev/null +++ b/Documentation/devicetree/bindings/clock/fsl,imx8ulp-sim-lpav.yaml@@ -0,0 +1,69 @@ +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/clock/fsl,imx8ulp-sim-lpav.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: NXP i.MX8ULP LPAV System Integration Module (SIM) + +maintainers: + - Laurentiu Mihalcea <laurentiu.mihalcea@nxp.com> + +description: + The i.MX8ULP LPAV subsystem contains a block control module known as + SIM LPAV, which offers functionalities such as clock gating or reset + line assertion/de-assertion. + +properties: + compatible: + items: + - enum: + - fsl,imx8ulp-sim-lpav + - const: sysconWhy is this syscon?
because of the MUX child's progamming model (i.e. "mmio-mux") which needs a syscon parent. will get rid of this by using "reg-mux" instead. There shouldn't be a need for syscon anyways.
quoted
+ + reg: + maxItems: 1 + + clocks: + maxItems: 3 + + clock-names: + items: + - const: lpav_bus + - const: hifi_core + - const: hifi_plat + + '#clock-cells': + const: 1 + description: clock IDDrop description, redundant. Look how other bindings write this.
ACK. Very sorry for the easily avoidable mistakes.
quoted
+ + '#reset-cells': + const: 1 + description: reset IDDittoquoted
+ + mux-controller: + $ref: /schemas/mux/reg-mux.yaml# + +required: + - compatible + - reg + - clocks + - clock-names + - '#clock-cells'reset cells and mux controller.
I'd say the mux-controller child can stay optional since the driver allows it? As for "#reset-cells": unless CONFIG_RESET_CONTROLLER is enabled, the driver allows this property to not be specified. The whole idea was to try and make the driver more flexible in case, for whatever reason, people wouldn't want/need the reset controller bit. In hindsight, I think this decision makes writing the binding a bit more awkward (since the optionality of this property depends on the value of CONFIG_RESET_CONTROLLER) so maybe we'd just be better off with having this property mandatory and modifying the driver to remove the aforementioned flexibility?
quoted
+ +additionalProperties: false + +examples: + - | + #include <dt-bindings/clock/imx8ulp-clock.h> + + clock-controller@2da50000 { + compatible = "fsl,imx8ulp-sim-lpav", "syscon"; + reg = <0x2da50000 0x10000>; + clocks = <&cgc2 IMX8ULP_CLK_LPAV_BUS_DIV>, + <&cgc2 IMX8ULP_CLK_HIFI_DIVCORE>, + <&cgc2 IMX8ULP_CLK_HIFI_DIVPLAT>; + clock-names = "lpav_bus", "hifi_core", "hifi_plat"; + #clock-cells = <1>; + #reset-cells = <1>;Incomplete node - missing properties/child. Post complete binding and complete example. Best regards, Krzysztof