xref: /linux/Documentation/devicetree/bindings/phy/phy-cadence-torrent.yaml (revision 79790b6818e96c58fe2bffee1b418c16e64e7b80)
15ffc259dSYuti Amonkar# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
25ffc259dSYuti Amonkar%YAML 1.2
35ffc259dSYuti Amonkar---
4e43462c1SRob Herring$id: http://devicetree.org/schemas/phy/phy-cadence-torrent.yaml#
5e43462c1SRob Herring$schema: http://devicetree.org/meta-schemas/core.yaml#
65ffc259dSYuti Amonkar
784e85359SKrzysztof Kozlowskititle: Cadence Torrent SD0801 PHY
85ffc259dSYuti Amonkar
95ffc259dSYuti Amonkardescription:
105ffc259dSYuti Amonkar  This binding describes the Cadence SD0801 PHY (also known as Torrent PHY)
11074e9915SSwapnil Jakhade  hardware included with the Cadence MHDP DisplayPort controller. Torrent
12074e9915SSwapnil Jakhade  PHY also supports multilink multiprotocol combinations including protocols
13074e9915SSwapnil Jakhade  such as PCIe, USB, SGMII, QSGMII etc.
145ffc259dSYuti Amonkar
155ffc259dSYuti Amonkarmaintainers:
165ffc259dSYuti Amonkar  - Swapnil Jakhade <sjakhade@cadence.com>
175ffc259dSYuti Amonkar  - Yuti Amonkar <yamonkar@cadence.com>
185ffc259dSYuti Amonkar
195ffc259dSYuti Amonkarproperties:
205ffc259dSYuti Amonkar  compatible:
215ffc259dSYuti Amonkar    enum:
225ffc259dSYuti Amonkar      - cdns,torrent-phy
23*dc44dac3SSwapnil Jakhade      - ti,j7200-serdes-10g
245ffc259dSYuti Amonkar      - ti,j721e-serdes-10g
255ffc259dSYuti Amonkar
265ffc259dSYuti Amonkar  '#address-cells':
275ffc259dSYuti Amonkar    const: 1
285ffc259dSYuti Amonkar
295ffc259dSYuti Amonkar  '#size-cells':
305ffc259dSYuti Amonkar    const: 0
315ffc259dSYuti Amonkar
32eaabb559SKishon Vijay Abraham I  '#clock-cells':
33eaabb559SKishon Vijay Abraham I    const: 1
34eaabb559SKishon Vijay Abraham I
355ffc259dSYuti Amonkar  clocks:
36eaabb559SKishon Vijay Abraham I    minItems: 1
37eaabb559SKishon Vijay Abraham I    maxItems: 2
385ffc259dSYuti Amonkar    description:
39088de129SSwapnil Jakhade      PHY input reference clocks - refclk (for PLL0) & pll1_refclk (for PLL1).
40088de129SSwapnil Jakhade      pll1_refclk is optional and used for multi-protocol configurations requiring
41088de129SSwapnil Jakhade      separate reference clock for each protocol.
42088de129SSwapnil Jakhade      Same refclk is used for both PLL0 and PLL1 if no separate pll1_refclk is used.
43088de129SSwapnil Jakhade      Optional parent clock (phy_en_refclk) to enable a reference clock output feature
44088de129SSwapnil Jakhade      on some platforms to output either derived or received reference clock.
455ffc259dSYuti Amonkar
465ffc259dSYuti Amonkar  clock-names:
47eaabb559SKishon Vijay Abraham I    minItems: 1
48eaabb559SKishon Vijay Abraham I    items:
49eaabb559SKishon Vijay Abraham I      - const: refclk
50088de129SSwapnil Jakhade      - enum: [ pll1_refclk, phy_en_refclk ]
51eaabb559SKishon Vijay Abraham I
525ffc259dSYuti Amonkar  reg:
535ffc259dSYuti Amonkar    minItems: 1
545ffc259dSYuti Amonkar    items:
555ffc259dSYuti Amonkar      - description: Offset of the Torrent PHY configuration registers.
565ffc259dSYuti Amonkar      - description: Offset of the DPTX PHY configuration registers.
575ffc259dSYuti Amonkar
585ffc259dSYuti Amonkar  reg-names:
595ffc259dSYuti Amonkar    minItems: 1
605ffc259dSYuti Amonkar    items:
615ffc259dSYuti Amonkar      - const: torrent_phy
625ffc259dSYuti Amonkar      - const: dptx_phy
635ffc259dSYuti Amonkar
645ffc259dSYuti Amonkar  resets:
65074e9915SSwapnil Jakhade    minItems: 1
66074e9915SSwapnil Jakhade    items:
67074e9915SSwapnil Jakhade      - description: Torrent PHY reset.
68074e9915SSwapnil Jakhade      - description: Torrent APB reset. This is optional.
695ffc259dSYuti Amonkar
704feac940STomi Valkeinen  reset-names:
714feac940STomi Valkeinen    minItems: 1
724feac940STomi Valkeinen    items:
734feac940STomi Valkeinen      - const: torrent_reset
744feac940STomi Valkeinen      - const: torrent_apb
754feac940STomi Valkeinen
765ffc259dSYuti AmonkarpatternProperties:
77074e9915SSwapnil Jakhade  '^phy@[0-3]$':
785ffc259dSYuti Amonkar    type: object
795ffc259dSYuti Amonkar    description:
805ffc259dSYuti Amonkar      Each group of PHY lanes with a single master lane should be represented as a sub-node.
815ffc259dSYuti Amonkar    properties:
825ffc259dSYuti Amonkar      reg:
835ffc259dSYuti Amonkar        description:
845ffc259dSYuti Amonkar          The master lane number. This is the lowest numbered lane in the lane group.
85074e9915SSwapnil Jakhade        minimum: 0
86074e9915SSwapnil Jakhade        maximum: 3
875ffc259dSYuti Amonkar
885ffc259dSYuti Amonkar      resets:
895ffc259dSYuti Amonkar        minItems: 1
905ffc259dSYuti Amonkar        maxItems: 4
915ffc259dSYuti Amonkar        description:
925ffc259dSYuti Amonkar          Contains list of resets, one per lane, to get all the link lanes out of reset.
935ffc259dSYuti Amonkar
945ffc259dSYuti Amonkar      "#phy-cells":
955ffc259dSYuti Amonkar        const: 0
965ffc259dSYuti Amonkar
975ffc259dSYuti Amonkar      cdns,phy-type:
985ffc259dSYuti Amonkar        description:
995ffc259dSYuti Amonkar          Specifies the type of PHY for which the group of PHY lanes is used.
1005ffc259dSYuti Amonkar          Refer include/dt-bindings/phy/phy.h. Constants from the header should be used.
1013d21a460SRob Herring        $ref: /schemas/types.yaml#/definitions/uint32
102074e9915SSwapnil Jakhade        minimum: 1
103074e9915SSwapnil Jakhade        maximum: 9
1045ffc259dSYuti Amonkar
1055ffc259dSYuti Amonkar      cdns,num-lanes:
1065ffc259dSYuti Amonkar        description:
107074e9915SSwapnil Jakhade          Number of lanes.
1083d21a460SRob Herring        $ref: /schemas/types.yaml#/definitions/uint32
109074e9915SSwapnil Jakhade        enum: [1, 2, 3, 4]
1105ffc259dSYuti Amonkar        default: 4
1115ffc259dSYuti Amonkar
112962fad30SSwapnil Jakhade      cdns,ssc-mode:
113962fad30SSwapnil Jakhade        description:
114962fad30SSwapnil Jakhade          Specifies the Spread Spectrum Clocking mode used. It can be NO_SSC,
115962fad30SSwapnil Jakhade          EXTERNAL_SSC or INTERNAL_SSC.
11653112213SWan Jiabing          Refer include/dt-bindings/phy/phy-cadence.h for the constants to be used.
117962fad30SSwapnil Jakhade        $ref: /schemas/types.yaml#/definitions/uint32
118962fad30SSwapnil Jakhade        enum: [0, 1, 2]
119962fad30SSwapnil Jakhade        default: 0
120962fad30SSwapnil Jakhade
1215ffc259dSYuti Amonkar      cdns,max-bit-rate:
1225ffc259dSYuti Amonkar        description:
1235ffc259dSYuti Amonkar          Maximum DisplayPort link bit rate to use, in Mbps
1243d21a460SRob Herring        $ref: /schemas/types.yaml#/definitions/uint32
1253d21a460SRob Herring        enum: [2160, 2430, 2700, 3240, 4320, 5400, 8100]
1265ffc259dSYuti Amonkar        default: 8100
1275ffc259dSYuti Amonkar
1285ffc259dSYuti Amonkar    required:
1295ffc259dSYuti Amonkar      - reg
1305ffc259dSYuti Amonkar      - resets
1315ffc259dSYuti Amonkar      - "#phy-cells"
1325ffc259dSYuti Amonkar      - cdns,phy-type
133074e9915SSwapnil Jakhade      - cdns,num-lanes
1345ffc259dSYuti Amonkar
1355ffc259dSYuti Amonkar    additionalProperties: false
1365ffc259dSYuti Amonkar
1375ffc259dSYuti Amonkarrequired:
1385ffc259dSYuti Amonkar  - compatible
1395ffc259dSYuti Amonkar  - "#address-cells"
1405ffc259dSYuti Amonkar  - "#size-cells"
1415ffc259dSYuti Amonkar  - clocks
1425ffc259dSYuti Amonkar  - clock-names
1435ffc259dSYuti Amonkar  - reg
1445ffc259dSYuti Amonkar  - reg-names
1455ffc259dSYuti Amonkar  - resets
1464feac940STomi Valkeinen  - reset-names
1475ffc259dSYuti Amonkar
1485ffc259dSYuti AmonkaradditionalProperties: false
1495ffc259dSYuti Amonkar
1505ffc259dSYuti Amonkarexamples:
1515ffc259dSYuti Amonkar  - |
1525ffc259dSYuti Amonkar    #include <dt-bindings/phy/phy.h>
153fba56184SRob Herring
154fba56184SRob Herring    bus {
155fba56184SRob Herring        #address-cells = <2>;
156fba56184SRob Herring        #size-cells = <2>;
157fba56184SRob Herring
158fba56184SRob Herring        torrent-phy@f0fb500000 {
1595ffc259dSYuti Amonkar            compatible = "cdns,torrent-phy";
1605ffc259dSYuti Amonkar            reg = <0xf0 0xfb500000 0x0 0x00100000>,
1615ffc259dSYuti Amonkar                  <0xf0 0xfb030a00 0x0 0x00000040>;
1625ffc259dSYuti Amonkar            reg-names = "torrent_phy", "dptx_phy";
1635ffc259dSYuti Amonkar            resets = <&phyrst 0>;
1644feac940STomi Valkeinen            reset-names = "torrent_reset";
1655ffc259dSYuti Amonkar            clocks = <&ref_clk>;
1665ffc259dSYuti Amonkar            clock-names = "refclk";
1675ffc259dSYuti Amonkar            #address-cells = <1>;
1685ffc259dSYuti Amonkar            #size-cells = <0>;
169fba56184SRob Herring            phy@0 {
1705ffc259dSYuti Amonkar                reg = <0>;
1715ffc259dSYuti Amonkar                resets = <&phyrst 1>, <&phyrst 2>,
1725ffc259dSYuti Amonkar                         <&phyrst 3>, <&phyrst 4>;
1735ffc259dSYuti Amonkar                #phy-cells = <0>;
1745ffc259dSYuti Amonkar                cdns,phy-type = <PHY_TYPE_DP>;
1755ffc259dSYuti Amonkar                cdns,num-lanes = <4>;
1765ffc259dSYuti Amonkar                cdns,max-bit-rate = <8100>;
1775ffc259dSYuti Amonkar            };
1785ffc259dSYuti Amonkar        };
179fba56184SRob Herring    };
180074e9915SSwapnil Jakhade  - |
181074e9915SSwapnil Jakhade    #include <dt-bindings/phy/phy.h>
182fd7abc3cSKishon Vijay Abraham I    #include <dt-bindings/phy/phy-cadence.h>
183074e9915SSwapnil Jakhade
184074e9915SSwapnil Jakhade    bus {
185074e9915SSwapnil Jakhade        #address-cells = <2>;
186074e9915SSwapnil Jakhade        #size-cells = <2>;
187074e9915SSwapnil Jakhade
188074e9915SSwapnil Jakhade        torrent-phy@f0fb500000 {
189074e9915SSwapnil Jakhade            compatible = "cdns,torrent-phy";
190074e9915SSwapnil Jakhade            reg = <0xf0 0xfb500000 0x0 0x00100000>;
191074e9915SSwapnil Jakhade            reg-names = "torrent_phy";
192074e9915SSwapnil Jakhade            resets = <&phyrst 0>, <&phyrst 1>;
1934feac940STomi Valkeinen            reset-names = "torrent_reset", "torrent_apb";
194074e9915SSwapnil Jakhade            clocks = <&ref_clk>;
195074e9915SSwapnil Jakhade            clock-names = "refclk";
196074e9915SSwapnil Jakhade            #address-cells = <1>;
197074e9915SSwapnil Jakhade            #size-cells = <0>;
198074e9915SSwapnil Jakhade            phy@0 {
199074e9915SSwapnil Jakhade                reg = <0>;
200074e9915SSwapnil Jakhade                resets = <&phyrst 2>, <&phyrst 3>;
201074e9915SSwapnil Jakhade                #phy-cells = <0>;
202074e9915SSwapnil Jakhade                cdns,phy-type = <PHY_TYPE_PCIE>;
203074e9915SSwapnil Jakhade                cdns,num-lanes = <2>;
204253f06c7SSwapnil Jakhade                cdns,ssc-mode = <CDNS_SERDES_NO_SSC>;
205074e9915SSwapnil Jakhade            };
206074e9915SSwapnil Jakhade
207074e9915SSwapnil Jakhade            phy@2 {
208074e9915SSwapnil Jakhade                reg = <2>;
209074e9915SSwapnil Jakhade                resets = <&phyrst 4>;
210074e9915SSwapnil Jakhade                #phy-cells = <0>;
211074e9915SSwapnil Jakhade                cdns,phy-type = <PHY_TYPE_SGMII>;
212074e9915SSwapnil Jakhade                cdns,num-lanes = <1>;
213253f06c7SSwapnil Jakhade                cdns,ssc-mode = <CDNS_SERDES_NO_SSC>;
214074e9915SSwapnil Jakhade            };
215074e9915SSwapnil Jakhade        };
216074e9915SSwapnil Jakhade    };
2175ffc259dSYuti Amonkar...
218