1c66ec88fSEmmanuel Vadot# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
2c66ec88fSEmmanuel Vadot%YAML 1.2
3c66ec88fSEmmanuel Vadot---
4c66ec88fSEmmanuel Vadot$id: http://devicetree.org/schemas/phy/intel,combo-phy.yaml#
5c66ec88fSEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml#
6c66ec88fSEmmanuel Vadot
7c66ec88fSEmmanuel Vadottitle: Intel ComboPhy Subsystem
8c66ec88fSEmmanuel Vadot
9c66ec88fSEmmanuel Vadotmaintainers:
10c66ec88fSEmmanuel Vadot  - Dilip Kota <eswara.kota@linux.intel.com>
11c66ec88fSEmmanuel Vadot
12c66ec88fSEmmanuel Vadotdescription: |
13c66ec88fSEmmanuel Vadot  Intel Combophy subsystem supports PHYs for PCIe, EMAC and SATA
14c66ec88fSEmmanuel Vadot  controllers. A single Combophy provides two PHY instances.
15c66ec88fSEmmanuel Vadot
16c66ec88fSEmmanuel Vadotproperties:
17c66ec88fSEmmanuel Vadot  $nodename:
18*f126890aSEmmanuel Vadot    pattern: "combophy(@.*|-([0-9]|[1-9][0-9]+))?$"
19c66ec88fSEmmanuel Vadot
20c66ec88fSEmmanuel Vadot  compatible:
21c66ec88fSEmmanuel Vadot    items:
22c66ec88fSEmmanuel Vadot      - const: intel,combophy-lgm
23c66ec88fSEmmanuel Vadot      - const: intel,combo-phy
24c66ec88fSEmmanuel Vadot
25c66ec88fSEmmanuel Vadot  clocks:
26c66ec88fSEmmanuel Vadot    maxItems: 1
27c66ec88fSEmmanuel Vadot
28c66ec88fSEmmanuel Vadot  reg:
29c66ec88fSEmmanuel Vadot    items:
30c66ec88fSEmmanuel Vadot      - description: ComboPhy core registers
31c66ec88fSEmmanuel Vadot      - description: PCIe app core control registers
32c66ec88fSEmmanuel Vadot
33c66ec88fSEmmanuel Vadot  reg-names:
34c66ec88fSEmmanuel Vadot    items:
35c66ec88fSEmmanuel Vadot      - const: core
36c66ec88fSEmmanuel Vadot      - const: app
37c66ec88fSEmmanuel Vadot
38c66ec88fSEmmanuel Vadot  resets:
39c66ec88fSEmmanuel Vadot    maxItems: 4
40c66ec88fSEmmanuel Vadot
41c66ec88fSEmmanuel Vadot  reset-names:
42c66ec88fSEmmanuel Vadot    items:
43c66ec88fSEmmanuel Vadot      - const: phy
44c66ec88fSEmmanuel Vadot      - const: core
45c66ec88fSEmmanuel Vadot      - const: iphy0
46c66ec88fSEmmanuel Vadot      - const: iphy1
47c66ec88fSEmmanuel Vadot
48c66ec88fSEmmanuel Vadot  intel,syscfg:
49c66ec88fSEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/phandle-array
50c9ccf3a3SEmmanuel Vadot    items:
51c9ccf3a3SEmmanuel Vadot      - items:
52c9ccf3a3SEmmanuel Vadot          - description: phandle to Chip configuration registers
53c9ccf3a3SEmmanuel Vadot          - description: ComboPhy instance id
54c66ec88fSEmmanuel Vadot    description: Chip configuration registers handle and ComboPhy instance id
55c66ec88fSEmmanuel Vadot
56c66ec88fSEmmanuel Vadot  intel,hsio:
57c66ec88fSEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/phandle-array
58c9ccf3a3SEmmanuel Vadot    items:
59c9ccf3a3SEmmanuel Vadot      - items:
60c9ccf3a3SEmmanuel Vadot          - description: phandle to HSIO registers
61c9ccf3a3SEmmanuel Vadot          - description: ComboPhy instance id
62c66ec88fSEmmanuel Vadot    description: HSIO registers handle and ComboPhy instance id on NOC
63c66ec88fSEmmanuel Vadot
64c66ec88fSEmmanuel Vadot  intel,aggregation:
65c66ec88fSEmmanuel Vadot    type: boolean
66c66ec88fSEmmanuel Vadot    description: |
67c66ec88fSEmmanuel Vadot      Specify the flag to configure ComboPHY in dual lane mode.
68c66ec88fSEmmanuel Vadot
69c66ec88fSEmmanuel Vadot  intel,phy-mode:
70c66ec88fSEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/uint32
71c66ec88fSEmmanuel Vadot    description: |
72c66ec88fSEmmanuel Vadot      Mode of the two phys in ComboPhy.
73c66ec88fSEmmanuel Vadot      See dt-bindings/phy/phy.h for values.
74c66ec88fSEmmanuel Vadot
75c66ec88fSEmmanuel Vadot  "#phy-cells":
76c66ec88fSEmmanuel Vadot    const: 1
77c66ec88fSEmmanuel Vadot
78c66ec88fSEmmanuel Vadotrequired:
79c66ec88fSEmmanuel Vadot  - compatible
80c66ec88fSEmmanuel Vadot  - clocks
81c66ec88fSEmmanuel Vadot  - reg
82c66ec88fSEmmanuel Vadot  - reg-names
83c66ec88fSEmmanuel Vadot  - intel,syscfg
84c66ec88fSEmmanuel Vadot  - intel,hsio
85c66ec88fSEmmanuel Vadot  - intel,phy-mode
86c66ec88fSEmmanuel Vadot  - "#phy-cells"
87c66ec88fSEmmanuel Vadot
88c66ec88fSEmmanuel VadotadditionalProperties: false
89c66ec88fSEmmanuel Vadot
90c66ec88fSEmmanuel Vadotexamples:
91c66ec88fSEmmanuel Vadot  - |
92c66ec88fSEmmanuel Vadot    #include <dt-bindings/phy/phy.h>
93c66ec88fSEmmanuel Vadot    combophy@d0a00000 {
94c66ec88fSEmmanuel Vadot        compatible = "intel,combophy-lgm", "intel,combo-phy";
95c66ec88fSEmmanuel Vadot        clocks = <&cgu0 1>;
96c66ec88fSEmmanuel Vadot        #phy-cells = <1>;
97c66ec88fSEmmanuel Vadot        reg = <0xd0a00000 0x40000>,
98c66ec88fSEmmanuel Vadot              <0xd0a40000 0x1000>;
99c66ec88fSEmmanuel Vadot        reg-names = "core", "app";
100c66ec88fSEmmanuel Vadot        resets = <&rcu0 0x50 6>,
101c66ec88fSEmmanuel Vadot                 <&rcu0 0x50 17>,
102c66ec88fSEmmanuel Vadot                 <&rcu0 0x50 23>,
103c66ec88fSEmmanuel Vadot                 <&rcu0 0x50 24>;
104c66ec88fSEmmanuel Vadot        reset-names = "phy", "core", "iphy0", "iphy1";
105c66ec88fSEmmanuel Vadot        intel,syscfg = <&sysconf 0>;
106c66ec88fSEmmanuel Vadot        intel,hsio = <&hsiol 0>;
107c66ec88fSEmmanuel Vadot        intel,phy-mode = <PHY_TYPE_PCIE>;
108c66ec88fSEmmanuel Vadot        intel,aggregation;
109c66ec88fSEmmanuel Vadot    };
110