Re: [PATCH] dt-bindings: clock: ti: Convert interface.txt to json-schema

Krzysztof Kozlowski
2023-11-28T08:00:28Z

On 27/11/2023 21:23, Andreas Kemnade wrote:
> Convert the OMAP interface clock device tree binding to json-schema
> and fix up reg property which is optional and taken from parent if
> not specified.
> Specify the creator of the original binding as a maintainer.
>

...

> diff --git a/Documentation/devicetree/bindings/clock/ti/ti,interface-clock.yaml b/Documentation/devicetree/bindings/clock/ti/ti,interface-clock.yaml
> new file mode 100644
> index 0000000000000..48a54caeb3857
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/clock/ti/ti,interface-clock.yaml
> @@ -0,0 +1,90 @@
> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/clock/ti/ti,interface-clock.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: Texas Instruments interface clock.
> +
> +maintainers:
> + - Tero Kristo <kristo@kernel.org>
> +
> +description: |
> + This binding uses the common clock binding[1]. This clock is

Drop first sentence, useless. Can a clock binding not use common clock
binding?

> + quite much similar to the basic gate-clock[2], however,
> + it supports a number of additional features, including
> + companion clock finding (match corresponding functional gate
> + clock) and hardware autoidle enable / disable.
> +
> + [1] Documentation/devicetree/bindings/clock/clock-bindings.txt
> + [2] Documentation/devicetree/bindings/clock/gpio-gate-clock.yaml
> +
> +
> +properties:
> + compatible:
> + enum:
> + - ti,omap3-interface-clock # basic OMAP3 interface clock
> + - ti,omap3-no-wait-interface-clock # interface clock which has no hardware
> + # capability for waiting clock to be ready
> + - ti,omap3-hsotgusb-interface-clock # interface clock with USB specific HW handling
> + - ti,omap3-dss-interface-clock # interface clock with DSS specific HW handling
> + - ti,omap3-ssi-interface-clock # interface clock with SSI specific HW handling
> + - ti,am35xx-interface-clock # interface clock with AM35xx specific HW handling
> + - ti,omap2430-interface-clock # interface clock with OMAP2430 specific HW handling

Blank line

> + "#clock-cells":
> + const: 0
> +
> + clocks:
> + maxItems: 1
> +
> + clock-output-names:
> + maxItems: 1
> +
> + reg:
> + description:
> + if not specified, value from parent is used

Eh, what? How? Either this is on the bus or not. You added it, because
it wasn't even in the original binding. Then please explain what does it
mean?

> + maxItems: 1
> +
> + ti,bit-shift:
> + description:
> + bit shift for the bit enabling/disabling the clock
> + $ref: /schemas/types.yaml#/definitions/uint32
> + default: 0
> +
> +required:
> + - compatible
> + - clocks
> + - '#clock-cells'

reg is required. Device cannot take "reg" from parent, DTS does not work
like this.

> +
> +additionalProperties: false
> +
> +examples:
> + - |
> + bus {
> + #address-cells = <1>;
> + #size-cells = <1>;
> +
> + aes1_ick: aes1-ick@48004a14 {

clock-controller@

> + #clock-cells = <0>;
> + compatible = "ti,omap3-interface-clock";
> + clocks = <&security_l4_ick2>;
> + reg = <0x48004a14 0x4>;
> + ti,bit-shift = <3>;
> + };
> +

And drop rest of examples - they do not bring anything different.

Best regards,
Krzysztof