1*ba2bf1f0SSwapnil Jakhade# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) 2*ba2bf1f0SSwapnil Jakhade%YAML 1.2 3*ba2bf1f0SSwapnil Jakhade--- 4*ba2bf1f0SSwapnil Jakhade$id: "http://devicetree.org/schemas/phy/phy-cadence-sierra.yaml#" 5*ba2bf1f0SSwapnil Jakhade$schema: "http://devicetree.org/meta-schemas/core.yaml#" 6*ba2bf1f0SSwapnil Jakhade 7*ba2bf1f0SSwapnil Jakhadetitle: Cadence Sierra PHY binding 8*ba2bf1f0SSwapnil Jakhade 9*ba2bf1f0SSwapnil Jakhadedescription: 10*ba2bf1f0SSwapnil Jakhade This binding describes the Cadence Sierra PHY. Sierra PHY supports multilink 11*ba2bf1f0SSwapnil Jakhade multiprotocol combinations including protocols such as PCIe, USB etc. 12*ba2bf1f0SSwapnil Jakhade 13*ba2bf1f0SSwapnil Jakhademaintainers: 14*ba2bf1f0SSwapnil Jakhade - Swapnil Jakhade <sjakhade@cadence.com> 15*ba2bf1f0SSwapnil Jakhade - Yuti Amonkar <yamonkar@cadence.com> 16*ba2bf1f0SSwapnil Jakhade 17*ba2bf1f0SSwapnil Jakhadeproperties: 18*ba2bf1f0SSwapnil Jakhade compatible: 19*ba2bf1f0SSwapnil Jakhade enum: 20*ba2bf1f0SSwapnil Jakhade - cdns,sierra-phy-t0 21*ba2bf1f0SSwapnil Jakhade - ti,sierra-phy-t0 22*ba2bf1f0SSwapnil Jakhade 23*ba2bf1f0SSwapnil Jakhade '#address-cells': 24*ba2bf1f0SSwapnil Jakhade const: 1 25*ba2bf1f0SSwapnil Jakhade 26*ba2bf1f0SSwapnil Jakhade '#size-cells': 27*ba2bf1f0SSwapnil Jakhade const: 0 28*ba2bf1f0SSwapnil Jakhade 29*ba2bf1f0SSwapnil Jakhade resets: 30*ba2bf1f0SSwapnil Jakhade minItems: 1 31*ba2bf1f0SSwapnil Jakhade maxItems: 2 32*ba2bf1f0SSwapnil Jakhade items: 33*ba2bf1f0SSwapnil Jakhade - description: Sierra PHY reset. 34*ba2bf1f0SSwapnil Jakhade - description: Sierra APB reset. This is optional. 35*ba2bf1f0SSwapnil Jakhade 36*ba2bf1f0SSwapnil Jakhade reset-names: 37*ba2bf1f0SSwapnil Jakhade minItems: 1 38*ba2bf1f0SSwapnil Jakhade maxItems: 2 39*ba2bf1f0SSwapnil Jakhade items: 40*ba2bf1f0SSwapnil Jakhade - const: sierra_reset 41*ba2bf1f0SSwapnil Jakhade - const: sierra_apb 42*ba2bf1f0SSwapnil Jakhade 43*ba2bf1f0SSwapnil Jakhade reg: 44*ba2bf1f0SSwapnil Jakhade maxItems: 1 45*ba2bf1f0SSwapnil Jakhade description: 46*ba2bf1f0SSwapnil Jakhade Offset of the Sierra PHY configuration registers. 47*ba2bf1f0SSwapnil Jakhade 48*ba2bf1f0SSwapnil Jakhade reg-names: 49*ba2bf1f0SSwapnil Jakhade const: serdes 50*ba2bf1f0SSwapnil Jakhade 51*ba2bf1f0SSwapnil Jakhade clocks: 52*ba2bf1f0SSwapnil Jakhade maxItems: 2 53*ba2bf1f0SSwapnil Jakhade 54*ba2bf1f0SSwapnil Jakhade clock-names: 55*ba2bf1f0SSwapnil Jakhade items: 56*ba2bf1f0SSwapnil Jakhade - const: cmn_refclk_dig_div 57*ba2bf1f0SSwapnil Jakhade - const: cmn_refclk1_dig_div 58*ba2bf1f0SSwapnil Jakhade 59*ba2bf1f0SSwapnil Jakhade cdns,autoconf: 60*ba2bf1f0SSwapnil Jakhade type: boolean 61*ba2bf1f0SSwapnil Jakhade description: 62*ba2bf1f0SSwapnil Jakhade A boolean property whose presence indicates that the PHY registers will be 63*ba2bf1f0SSwapnil Jakhade configured by hardware. If not present, all sub-node optional properties 64*ba2bf1f0SSwapnil Jakhade must be provided. 65*ba2bf1f0SSwapnil Jakhade 66*ba2bf1f0SSwapnil JakhadepatternProperties: 67*ba2bf1f0SSwapnil Jakhade '^phy@[0-9a-f]$': 68*ba2bf1f0SSwapnil Jakhade type: object 69*ba2bf1f0SSwapnil Jakhade description: 70*ba2bf1f0SSwapnil Jakhade Each group of PHY lanes with a single master lane should be represented as 71*ba2bf1f0SSwapnil Jakhade a sub-node. Note that the actual configuration of each lane is determined 72*ba2bf1f0SSwapnil Jakhade by hardware strapping, and must match the configuration specified here. 73*ba2bf1f0SSwapnil Jakhade properties: 74*ba2bf1f0SSwapnil Jakhade reg: 75*ba2bf1f0SSwapnil Jakhade description: 76*ba2bf1f0SSwapnil Jakhade The master lane number. This is the lowest numbered lane in the lane group. 77*ba2bf1f0SSwapnil Jakhade minimum: 0 78*ba2bf1f0SSwapnil Jakhade maximum: 15 79*ba2bf1f0SSwapnil Jakhade 80*ba2bf1f0SSwapnil Jakhade resets: 81*ba2bf1f0SSwapnil Jakhade minItems: 1 82*ba2bf1f0SSwapnil Jakhade maxItems: 4 83*ba2bf1f0SSwapnil Jakhade description: 84*ba2bf1f0SSwapnil Jakhade Contains list of resets, one per lane, to get all the link lanes out of reset. 85*ba2bf1f0SSwapnil Jakhade 86*ba2bf1f0SSwapnil Jakhade "#phy-cells": 87*ba2bf1f0SSwapnil Jakhade const: 0 88*ba2bf1f0SSwapnil Jakhade 89*ba2bf1f0SSwapnil Jakhade cdns,phy-type: 90*ba2bf1f0SSwapnil Jakhade description: 91*ba2bf1f0SSwapnil Jakhade Specifies the type of PHY for which the group of PHY lanes is used. 92*ba2bf1f0SSwapnil Jakhade Refer include/dt-bindings/phy/phy.h. Constants from the header should be used. 93*ba2bf1f0SSwapnil Jakhade $ref: /schemas/types.yaml#/definitions/uint32 94*ba2bf1f0SSwapnil Jakhade enum: [2, 4] 95*ba2bf1f0SSwapnil Jakhade 96*ba2bf1f0SSwapnil Jakhade cdns,num-lanes: 97*ba2bf1f0SSwapnil Jakhade description: 98*ba2bf1f0SSwapnil Jakhade Number of lanes in this group. The group is made up of consecutive lanes. 99*ba2bf1f0SSwapnil Jakhade $ref: /schemas/types.yaml#/definitions/uint32 100*ba2bf1f0SSwapnil Jakhade minimum: 1 101*ba2bf1f0SSwapnil Jakhade maximum: 16 102*ba2bf1f0SSwapnil Jakhade 103*ba2bf1f0SSwapnil Jakhade required: 104*ba2bf1f0SSwapnil Jakhade - reg 105*ba2bf1f0SSwapnil Jakhade - resets 106*ba2bf1f0SSwapnil Jakhade - "#phy-cells" 107*ba2bf1f0SSwapnil Jakhade 108*ba2bf1f0SSwapnil Jakhade additionalProperties: false 109*ba2bf1f0SSwapnil Jakhade 110*ba2bf1f0SSwapnil Jakhaderequired: 111*ba2bf1f0SSwapnil Jakhade - compatible 112*ba2bf1f0SSwapnil Jakhade - "#address-cells" 113*ba2bf1f0SSwapnil Jakhade - "#size-cells" 114*ba2bf1f0SSwapnil Jakhade - reg 115*ba2bf1f0SSwapnil Jakhade - resets 116*ba2bf1f0SSwapnil Jakhade - reset-names 117*ba2bf1f0SSwapnil Jakhade 118*ba2bf1f0SSwapnil JakhadeadditionalProperties: false 119*ba2bf1f0SSwapnil Jakhade 120*ba2bf1f0SSwapnil Jakhadeexamples: 121*ba2bf1f0SSwapnil Jakhade - | 122*ba2bf1f0SSwapnil Jakhade #include <dt-bindings/phy/phy.h> 123*ba2bf1f0SSwapnil Jakhade 124*ba2bf1f0SSwapnil Jakhade bus { 125*ba2bf1f0SSwapnil Jakhade #address-cells = <2>; 126*ba2bf1f0SSwapnil Jakhade #size-cells = <2>; 127*ba2bf1f0SSwapnil Jakhade 128*ba2bf1f0SSwapnil Jakhade sierra-phy@fd240000 { 129*ba2bf1f0SSwapnil Jakhade compatible = "cdns,sierra-phy-t0"; 130*ba2bf1f0SSwapnil Jakhade reg = <0x0 0xfd240000 0x0 0x40000>; 131*ba2bf1f0SSwapnil Jakhade resets = <&phyrst 0>, <&phyrst 1>; 132*ba2bf1f0SSwapnil Jakhade reset-names = "sierra_reset", "sierra_apb"; 133*ba2bf1f0SSwapnil Jakhade clocks = <&cmn_refclk_dig_div>, <&cmn_refclk1_dig_div>; 134*ba2bf1f0SSwapnil Jakhade clock-names = "cmn_refclk_dig_div", "cmn_refclk1_dig_div"; 135*ba2bf1f0SSwapnil Jakhade #address-cells = <1>; 136*ba2bf1f0SSwapnil Jakhade #size-cells = <0>; 137*ba2bf1f0SSwapnil Jakhade pcie0_phy0: phy@0 { 138*ba2bf1f0SSwapnil Jakhade reg = <0>; 139*ba2bf1f0SSwapnil Jakhade resets = <&phyrst 2>; 140*ba2bf1f0SSwapnil Jakhade cdns,num-lanes = <2>; 141*ba2bf1f0SSwapnil Jakhade #phy-cells = <0>; 142*ba2bf1f0SSwapnil Jakhade cdns,phy-type = <PHY_TYPE_PCIE>; 143*ba2bf1f0SSwapnil Jakhade }; 144*ba2bf1f0SSwapnil Jakhade pcie0_phy1: phy@2 { 145*ba2bf1f0SSwapnil Jakhade reg = <2>; 146*ba2bf1f0SSwapnil Jakhade resets = <&phyrst 4>; 147*ba2bf1f0SSwapnil Jakhade cdns,num-lanes = <1>; 148*ba2bf1f0SSwapnil Jakhade #phy-cells = <0>; 149*ba2bf1f0SSwapnil Jakhade cdns,phy-type = <PHY_TYPE_PCIE>; 150*ba2bf1f0SSwapnil Jakhade }; 151*ba2bf1f0SSwapnil Jakhade }; 152*ba2bf1f0SSwapnil Jakhade }; 153