0001 # SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
0002 %YAML 1.2
0003 ---
0004 $id: http://devicetree.org/schemas/phy/ti,phy-am654-serdes.yaml#
0005 $schema: http://devicetree.org/meta-schemas/core.yaml#
0006
0007 title: TI AM654 SERDES binding
0008
0009 description:
0010 This binding describes the TI AM654 SERDES. AM654 SERDES can be configured
0011 to be used with either PCIe or USB or SGMII.
0012
0013 maintainers:
0014 - Kishon Vijay Abraham I <kishon@ti.com>
0015
0016 properties:
0017 compatible:
0018 enum:
0019 - ti,phy-am654-serdes
0020
0021 reg:
0022 maxItems: 1
0023
0024 reg-names:
0025 items:
0026 - const: serdes
0027
0028 power-domains:
0029 maxItems: 1
0030
0031 clocks:
0032 maxItems: 3
0033 description:
0034 Three input clocks referring to left input reference clock, refclk and right input reference
0035 clock.
0036
0037 assigned-clocks:
0038 $ref: "/schemas/types.yaml#/definitions/phandle-array"
0039 assigned-clock-parents:
0040 $ref: "/schemas/types.yaml#/definitions/phandle-array"
0041
0042 '#phy-cells':
0043 const: 2
0044 description:
0045 The 1st cell corresponds to the phy type (should be one of the types specified in
0046 include/dt-bindings/phy/phy.h) and the 2nd cell should be the serdes lane function.
0047
0048 ti,serdes-clk:
0049 description: Phandle to the SYSCON entry required for configuring SERDES clock selection.
0050 $ref: /schemas/types.yaml#/definitions/phandle
0051
0052 '#clock-cells':
0053 const: 1
0054
0055 mux-controls:
0056 maxItems: 1
0057 description: Phandle to the SYSCON entry required for configuring SERDES lane function.
0058
0059 clock-output-names:
0060 oneOf:
0061 - description: Clock output names for SERDES 0
0062 items:
0063 - const: serdes0_cmu_refclk
0064 - const: serdes0_lo_refclk
0065 - const: serdes0_ro_refclk
0066 - description: Clock output names for SERDES 1
0067 items:
0068 - const: serdes1_cmu_refclk
0069 - const: serdes1_lo_refclk
0070 - const: serdes1_ro_refclk
0071
0072 required:
0073 - compatible
0074 - reg
0075 - power-domains
0076 - clocks
0077 - assigned-clocks
0078 - assigned-clock-parents
0079 - ti,serdes-clk
0080 - mux-controls
0081 - clock-output-names
0082
0083 additionalProperties: false
0084
0085 examples:
0086 - |
0087 #include <dt-bindings/phy/phy-am654-serdes.h>
0088
0089 serdes0: serdes@900000 {
0090 compatible = "ti,phy-am654-serdes";
0091 reg = <0x900000 0x2000>;
0092 reg-names = "serdes";
0093 #phy-cells = <2>;
0094 power-domains = <&k3_pds 153>;
0095 clocks = <&k3_clks 153 4>, <&k3_clks 153 1>,
0096 <&serdes1 AM654_SERDES_LO_REFCLK>;
0097 clock-output-names = "serdes0_cmu_refclk", "serdes0_lo_refclk", "serdes0_ro_refclk";
0098 assigned-clocks = <&k3_clks 153 4>, <&serdes0 AM654_SERDES_CMU_REFCLK>;
0099 assigned-clock-parents = <&k3_clks 153 8>, <&k3_clks 153 4>;
0100 ti,serdes-clk = <&serdes0_clk>;
0101 mux-controls = <&serdes_mux 0>;
0102 #clock-cells = <1>;
0103 };