| # SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) |
| %YAML 1.2 |
| --- |
| $id: http://devicetree.org/schemas/phy/phy-cadence-sierra.yaml# |
| $schema: http://devicetree.org/meta-schemas/core.yaml# |
| |
| title: Cadence Sierra PHY |
| |
| description: |
| This binding describes the Cadence Sierra PHY. Sierra PHY supports multilink |
| multiprotocol combinations including protocols such as PCIe, USB etc. |
| |
| maintainers: |
| - Swapnil Jakhade <sjakhade@cadence.com> |
| - Yuti Amonkar <yamonkar@cadence.com> |
| |
| properties: |
| compatible: |
| enum: |
| - cdns,sierra-phy-t0 |
| - ti,sierra-phy-t0 |
| |
| '#address-cells': |
| const: 1 |
| |
| '#size-cells': |
| const: 0 |
| |
| '#clock-cells': |
| const: 1 |
| |
| resets: |
| minItems: 1 |
| items: |
| - description: Sierra PHY reset. |
| - description: Sierra APB reset. This is optional. |
| |
| reset-names: |
| minItems: 1 |
| items: |
| - const: sierra_reset |
| - const: sierra_apb |
| |
| reg: |
| maxItems: 1 |
| description: |
| Offset of the Sierra PHY configuration registers. |
| |
| reg-names: |
| const: serdes |
| |
| clocks: |
| minItems: 2 |
| maxItems: 4 |
| |
| clock-names: |
| minItems: 2 |
| items: |
| - const: cmn_refclk_dig_div |
| - const: cmn_refclk1_dig_div |
| - const: pll0_refclk |
| - const: pll1_refclk |
| |
| cdns,autoconf: |
| type: boolean |
| description: |
| A boolean property whose presence indicates that the PHY registers will be |
| configured by hardware. If not present, all sub-node optional properties |
| must be provided. |
| |
| patternProperties: |
| '^phy@[0-9a-f]$': |
| type: object |
| description: |
| Each group of PHY lanes with a single master lane should be represented as |
| a sub-node. Note that the actual configuration of each lane is determined |
| by hardware strapping, and must match the configuration specified here. |
| properties: |
| reg: |
| description: |
| The master lane number. This is the lowest numbered lane in the lane group. |
| minimum: 0 |
| maximum: 15 |
| |
| resets: |
| minItems: 1 |
| maxItems: 4 |
| description: |
| Contains list of resets, one per lane, to get all the link lanes out of reset. |
| |
| "#phy-cells": |
| const: 0 |
| |
| cdns,phy-type: |
| description: |
| Specifies the type of PHY for which the group of PHY lanes is used. |
| Refer include/dt-bindings/phy/phy.h. Constants from the header should be used. |
| $ref: /schemas/types.yaml#/definitions/uint32 |
| enum: [2, 4] |
| |
| cdns,num-lanes: |
| description: |
| Number of lanes in this group. The group is made up of consecutive lanes. |
| $ref: /schemas/types.yaml#/definitions/uint32 |
| minimum: 1 |
| maximum: 16 |
| |
| cdns,ssc-mode: |
| description: |
| Specifies the Spread Spectrum Clocking mode used. It can be NO_SSC, |
| EXTERNAL_SSC or INTERNAL_SSC. |
| Refer include/dt-bindings/phy/phy-cadence.h for the constants to be used. |
| $ref: /schemas/types.yaml#/definitions/uint32 |
| enum: [0, 1, 2] |
| default: 1 |
| |
| required: |
| - reg |
| - resets |
| - "#phy-cells" |
| |
| additionalProperties: false |
| |
| required: |
| - compatible |
| - "#address-cells" |
| - "#size-cells" |
| - reg |
| - resets |
| - reset-names |
| |
| additionalProperties: false |
| |
| examples: |
| - | |
| #include <dt-bindings/phy/phy.h> |
| |
| bus { |
| #address-cells = <2>; |
| #size-cells = <2>; |
| |
| sierra-phy@fd240000 { |
| compatible = "cdns,sierra-phy-t0"; |
| reg = <0x0 0xfd240000 0x0 0x40000>; |
| resets = <&phyrst 0>, <&phyrst 1>; |
| reset-names = "sierra_reset", "sierra_apb"; |
| clocks = <&cmn_refclk_dig_div>, <&cmn_refclk1_dig_div>; |
| clock-names = "cmn_refclk_dig_div", "cmn_refclk1_dig_div"; |
| #address-cells = <1>; |
| #size-cells = <0>; |
| pcie0_phy0: phy@0 { |
| reg = <0>; |
| resets = <&phyrst 2>; |
| cdns,num-lanes = <2>; |
| #phy-cells = <0>; |
| cdns,phy-type = <PHY_TYPE_PCIE>; |
| }; |
| pcie0_phy1: phy@2 { |
| reg = <2>; |
| resets = <&phyrst 4>; |
| cdns,num-lanes = <1>; |
| #phy-cells = <0>; |
| cdns,phy-type = <PHY_TYPE_PCIE>; |
| }; |
| }; |
| }; |