xref: /freebsd/sys/contrib/device-tree/Bindings/clock/ti,lmk04832.yaml (revision fac71e4e09885bb2afa3d984a0c239a52e1a7418)
15956d97fSEmmanuel Vadot# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
25956d97fSEmmanuel Vadot%YAML 1.2
35956d97fSEmmanuel Vadot---
45956d97fSEmmanuel Vadot$id: http://devicetree.org/schemas/clock/ti,lmk04832.yaml#
55956d97fSEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml#
65956d97fSEmmanuel Vadot
78bab661aSEmmanuel Vadottitle: Texas Instruments LMK04832 Clock Controller
85956d97fSEmmanuel Vadot
95956d97fSEmmanuel Vadotmaintainers:
105956d97fSEmmanuel Vadot  - Liam Beguin <liambeguin@gmail.com>
115956d97fSEmmanuel Vadot
125956d97fSEmmanuel Vadotdescription: |
135956d97fSEmmanuel Vadot  Devicetree binding for the LMK04832, a clock conditioner with JEDEC JESD204B
145956d97fSEmmanuel Vadot  support. The LMK04832 is pin compatible with the LMK0482x family.
155956d97fSEmmanuel Vadot
165956d97fSEmmanuel Vadot  Link to datasheet, https://www.ti.com/lit/ds/symlink/lmk04832.pdf
175956d97fSEmmanuel Vadot
185956d97fSEmmanuel Vadotproperties:
195956d97fSEmmanuel Vadot  compatible:
205956d97fSEmmanuel Vadot    enum:
215956d97fSEmmanuel Vadot      - ti,lmk04832
225956d97fSEmmanuel Vadot
235956d97fSEmmanuel Vadot  reg:
245956d97fSEmmanuel Vadot    maxItems: 1
255956d97fSEmmanuel Vadot
265956d97fSEmmanuel Vadot  '#address-cells':
275956d97fSEmmanuel Vadot    const: 1
285956d97fSEmmanuel Vadot
295956d97fSEmmanuel Vadot  '#size-cells':
305956d97fSEmmanuel Vadot    const: 0
315956d97fSEmmanuel Vadot
325956d97fSEmmanuel Vadot  '#clock-cells':
335956d97fSEmmanuel Vadot    const: 1
345956d97fSEmmanuel Vadot
355956d97fSEmmanuel Vadot  spi-max-frequency:
365956d97fSEmmanuel Vadot    maximum: 5000000
375956d97fSEmmanuel Vadot
385956d97fSEmmanuel Vadot  clocks:
395956d97fSEmmanuel Vadot    items:
405956d97fSEmmanuel Vadot      - description: PLL2 reference clock.
415956d97fSEmmanuel Vadot
425956d97fSEmmanuel Vadot  clock-names:
435956d97fSEmmanuel Vadot    items:
445956d97fSEmmanuel Vadot      - const: oscin
455956d97fSEmmanuel Vadot
465956d97fSEmmanuel Vadot  reset-gpios:
475956d97fSEmmanuel Vadot    maxItems: 1
485956d97fSEmmanuel Vadot
495956d97fSEmmanuel Vadot  ti,spi-4wire-rdbk:
505956d97fSEmmanuel Vadot    description: |
515956d97fSEmmanuel Vadot      Select SPI 4wire readback pin configuration.
525956d97fSEmmanuel Vadot      Available readback pins are,
535956d97fSEmmanuel Vadot        CLKin_SEL0 0
545956d97fSEmmanuel Vadot        CLKin_SEL1 1
555956d97fSEmmanuel Vadot        RESET 2
565956d97fSEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/uint32
575956d97fSEmmanuel Vadot    enum: [0, 1, 2]
585956d97fSEmmanuel Vadot    default: 1
595956d97fSEmmanuel Vadot
605956d97fSEmmanuel Vadot  ti,vco-hz:
615956d97fSEmmanuel Vadot    description: Optional to set VCO frequency of the PLL in Hertz.
625956d97fSEmmanuel Vadot
635956d97fSEmmanuel Vadot  ti,sysref-ddly:
645956d97fSEmmanuel Vadot    description: SYSREF digital delay value.
655956d97fSEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/uint32
665956d97fSEmmanuel Vadot    minimum: 8
675956d97fSEmmanuel Vadot    maximum: 8191
685956d97fSEmmanuel Vadot    default: 8
695956d97fSEmmanuel Vadot
705956d97fSEmmanuel Vadot  ti,sysref-mux:
715956d97fSEmmanuel Vadot    description: |
725956d97fSEmmanuel Vadot      SYSREF Mux configuration.
735956d97fSEmmanuel Vadot      Available options are,
745956d97fSEmmanuel Vadot        Normal SYNC 0
755956d97fSEmmanuel Vadot        Re-clocked 1
765956d97fSEmmanuel Vadot        SYSREF Pulser 2
775956d97fSEmmanuel Vadot        SYSREF Continuous 3
785956d97fSEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/uint32
795956d97fSEmmanuel Vadot    enum: [0, 1, 2, 3]
805956d97fSEmmanuel Vadot    default: 3
815956d97fSEmmanuel Vadot
825956d97fSEmmanuel Vadot  ti,sync-mode:
835956d97fSEmmanuel Vadot    description: SYNC pin configuration.
845956d97fSEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/uint32
855956d97fSEmmanuel Vadot    enum: [0, 1, 2]
865956d97fSEmmanuel Vadot    default: 1
875956d97fSEmmanuel Vadot
885956d97fSEmmanuel Vadot  ti,sysref-pulse-count:
895956d97fSEmmanuel Vadot    description:
905956d97fSEmmanuel Vadot      Number of SYSREF pulses to send when SYSREF is not in continuous mode.
915956d97fSEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/uint32
925956d97fSEmmanuel Vadot    enum: [1, 2, 4, 8]
935956d97fSEmmanuel Vadot    default: 4
945956d97fSEmmanuel Vadot
955956d97fSEmmanuel VadotpatternProperties:
965956d97fSEmmanuel Vadot  "@[0-9a-d]+$":
975956d97fSEmmanuel Vadot    type: object
985956d97fSEmmanuel Vadot    description:
995956d97fSEmmanuel Vadot      Child nodes used to configure output clocks.
1005956d97fSEmmanuel Vadot
1015956d97fSEmmanuel Vadot    properties:
1025956d97fSEmmanuel Vadot      reg:
1035956d97fSEmmanuel Vadot        description:
1045956d97fSEmmanuel Vadot          clock output identifier.
1055956d97fSEmmanuel Vadot        minimum: 0
1065956d97fSEmmanuel Vadot        maximum: 13
1075956d97fSEmmanuel Vadot
1085956d97fSEmmanuel Vadot      ti,clkout-fmt:
1095956d97fSEmmanuel Vadot        description:
1105956d97fSEmmanuel Vadot          Clock output format.
1115956d97fSEmmanuel Vadot          Available options are,
1125956d97fSEmmanuel Vadot            Powerdown 0x00
1135956d97fSEmmanuel Vadot            LVDS 0x01
1145956d97fSEmmanuel Vadot            HSDS 6 mA 0x02
1155956d97fSEmmanuel Vadot            HSDS 8 mA 0x03
1165956d97fSEmmanuel Vadot            LVPECL 1600 mV 0x04
1175956d97fSEmmanuel Vadot            LVPECL 2000 mV 0x05
1185956d97fSEmmanuel Vadot            LCPECL 0x06
1195956d97fSEmmanuel Vadot            CML 16 mA 0x07
1205956d97fSEmmanuel Vadot            CML 24 mA 0x08
1215956d97fSEmmanuel Vadot            CML 32 mA 0x09
1225956d97fSEmmanuel Vadot            CMOS (Off/Inverted) 0x0a
1235956d97fSEmmanuel Vadot            CMOS (Normal/Off) 0x0b
1245956d97fSEmmanuel Vadot            CMOS (Inverted/Inverted) 0x0c
1255956d97fSEmmanuel Vadot            CMOS (Inverted/Normal) 0x0d
1265956d97fSEmmanuel Vadot            CMOS (Normal/Inverted) 0x0e
1275956d97fSEmmanuel Vadot            CMOS (Normal/Normal) 0x0f
1285956d97fSEmmanuel Vadot        $ref: /schemas/types.yaml#/definitions/uint32
1295956d97fSEmmanuel Vadot        minimum: 0
1305956d97fSEmmanuel Vadot        maximum: 15
1315956d97fSEmmanuel Vadot
1325956d97fSEmmanuel Vadot      ti,clkout-sysref:
1335956d97fSEmmanuel Vadot        description:
1345956d97fSEmmanuel Vadot          Select SYSREF clock path for output clock.
1355956d97fSEmmanuel Vadot        type: boolean
1365956d97fSEmmanuel Vadot
1375956d97fSEmmanuel Vadot    required:
1385956d97fSEmmanuel Vadot      - reg
1395956d97fSEmmanuel Vadot
1405956d97fSEmmanuel Vadot    additionalProperties: false
1415956d97fSEmmanuel Vadot
1425956d97fSEmmanuel Vadotrequired:
1435956d97fSEmmanuel Vadot  - compatible
1445956d97fSEmmanuel Vadot  - reg
1455956d97fSEmmanuel Vadot  - '#clock-cells'
1465956d97fSEmmanuel Vadot  - clocks
1475956d97fSEmmanuel Vadot  - clock-names
1485956d97fSEmmanuel Vadot
1495956d97fSEmmanuel VadotadditionalProperties: false
1505956d97fSEmmanuel Vadot
1515956d97fSEmmanuel Vadotexamples:
1525956d97fSEmmanuel Vadot  - |
1535956d97fSEmmanuel Vadot    clocks {
1545956d97fSEmmanuel Vadot        lmk04832_oscin: oscin {
1555956d97fSEmmanuel Vadot            compatible = "fixed-clock";
1565956d97fSEmmanuel Vadot
1575956d97fSEmmanuel Vadot            #clock-cells = <0>;
1585956d97fSEmmanuel Vadot            clock-frequency = <122880000>;
1595956d97fSEmmanuel Vadot            clock-output-names = "lmk04832-oscin";
1605956d97fSEmmanuel Vadot        };
1615956d97fSEmmanuel Vadot    };
1625956d97fSEmmanuel Vadot
163*fac71e4eSEmmanuel Vadot    spi {
1645956d97fSEmmanuel Vadot        #address-cells = <1>;
1655956d97fSEmmanuel Vadot        #size-cells = <0>;
1665956d97fSEmmanuel Vadot
1675956d97fSEmmanuel Vadot        lmk04832: clock-controller@0 {
1685956d97fSEmmanuel Vadot            #address-cells = <1>;
1695956d97fSEmmanuel Vadot            #size-cells = <0>;
1705956d97fSEmmanuel Vadot
1715956d97fSEmmanuel Vadot            reg = <0>;
1725956d97fSEmmanuel Vadot
1735956d97fSEmmanuel Vadot            compatible = "ti,lmk04832";
1745956d97fSEmmanuel Vadot            spi-max-frequency = <781250>;
1755956d97fSEmmanuel Vadot
1765956d97fSEmmanuel Vadot            reset-gpios = <&gpio_lmk 0 0 0>;
1775956d97fSEmmanuel Vadot
1785956d97fSEmmanuel Vadot            #clock-cells = <1>;
1795956d97fSEmmanuel Vadot            clocks = <&lmk04832_oscin>;
1805956d97fSEmmanuel Vadot            clock-names = "oscin";
1815956d97fSEmmanuel Vadot
1825956d97fSEmmanuel Vadot            ti,spi-4wire-rdbk = <0>;
1835956d97fSEmmanuel Vadot            ti,vco-hz = <2457600000>;
1845956d97fSEmmanuel Vadot
1855956d97fSEmmanuel Vadot            assigned-clocks =
1865956d97fSEmmanuel Vadot                <&lmk04832 0>, <&lmk04832 1>,
1875956d97fSEmmanuel Vadot                <&lmk04832 2>, <&lmk04832 3>,
1885956d97fSEmmanuel Vadot                <&lmk04832 4>,
1895956d97fSEmmanuel Vadot                <&lmk04832 6>, <&lmk04832 7>,
1905956d97fSEmmanuel Vadot                <&lmk04832 10>, <&lmk04832 11>;
1915956d97fSEmmanuel Vadot            assigned-clock-rates =
1925956d97fSEmmanuel Vadot                <122880000>, <384000>,
1935956d97fSEmmanuel Vadot                <122880000>, <384000>,
1945956d97fSEmmanuel Vadot                <122880000>,
1955956d97fSEmmanuel Vadot                <153600000>, <384000>,
1965956d97fSEmmanuel Vadot                <614400000>, <384000>;
1975956d97fSEmmanuel Vadot
1985956d97fSEmmanuel Vadot            clkout0@0 {
1995956d97fSEmmanuel Vadot                reg = <0>;
2005956d97fSEmmanuel Vadot                ti,clkout-fmt = <0x01>; // LVDS
2015956d97fSEmmanuel Vadot            };
2025956d97fSEmmanuel Vadot
2035956d97fSEmmanuel Vadot            clkout1@1 {
2045956d97fSEmmanuel Vadot                reg = <1>;
2055956d97fSEmmanuel Vadot                ti,clkout-fmt = <0x01>; // LVDS
2065956d97fSEmmanuel Vadot                ti,clkout-sysref;
2075956d97fSEmmanuel Vadot            };
2085956d97fSEmmanuel Vadot        };
2095956d97fSEmmanuel Vadot    };
210