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