On Sat, Nov 09, 2024 at 12:14:53AM +0100, Andreas Kemnade wrote: > diff --git a/Documentation/devicetree/bindings/clock/ti/ti,mux-clock.yaml b/Documentation/devicetree/bindings/clock/ti/ti,mux-clock.yaml > new file mode 100644 > index 000000000000..4a6f349ba2b0 > --- /dev/null > +++ b/Documentation/devicetree/bindings/clock/ti/ti,mux-clock.yaml > @@ -0,0 +1,125 @@ > +# SPDX-License-Identifier: GPL-2.0-only > +%YAML 1.2 > +--- > +$id: http://devicetree.org/schemas/clock/ti/ti,mux-clock.yaml# > +$schema: http://devicetree.org/meta-schemas/core.yaml# > + > +title: Texas Instruments mux clock > + > +maintainers: > + - Tero Kristo <kristo@xxxxxxxxxx> > + > +description: | > + This clock assumes a register-mapped multiplexer with multiple inpt clock > + signals or parents, one of which can be selected as output. This clock does > + not gate or adjust the parent rate via a divider or multiplier. > + > + By default the "clocks" property lists the parents in the same order > + as they are programmed into the register. E.g: > + > + clocks = <&foo_clock>, <&bar_clock>, <&baz_clock>; > + > + Results in programming the register as follows: > + > + register value selected parent clock > + 0 foo_clock > + 1 bar_clock > + 2 baz_clock > + > + Some clock controller IPs do not allow a value of zero to be programmed > + into the register, instead indexing begins at 1. The optional property > + "index-starts-at-one" modified the scheme as follows: Not your doing, but this is a crock. How is someone meant to know when to use the property or not? Par for the course for ancient bindings I guess.. > + > + register value selected clock parent > + 1 foo_clock > + 2 bar_clock > + 3 baz_clock > + > + The binding must provide the register to control the mux. Optionally > + the number of bits to shift the control field in the register can be > + supplied. If the shift value is missing it is the same as supplying > + a zero shift. > + - | > + bus { > + #address-cells = <1>; > + #size-cells = <0>; > + > + clock-controller@110 { > + #clock-cells = <0>; > + compatible = "ti,mux-clock"; > + clocks = <&virt_12000000_ck>, <&virt_13000000_ck>, <&virt_16800000_ck>; > + reg = <0x0110>; > + ti,index-starts-at-one; > + ti,set-rate-parent; > + }; > + > + clock-controller@120 { > + #clock-cells = <0>; > + compatible = "ti,composite-mux-clock"; > + clocks = <&core_96m_fck>, <&mcbsp_clks>; > + ti,bit-shift = <4>; > + reg = <0x0120>; Ordering here should be compatible, reg, clock properties, vendor properties. With that, Reviewed-by: Conor Dooley <conor.dooley@xxxxxxxxxxxxx> Cheers, Conor. > + }; > + }; > -- > 2.39.5 >
Attachment:
signature.asc
Description: PGP signature