18c2ecf20Sopenharmony_ci# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
28c2ecf20Sopenharmony_ci%YAML 1.2
38c2ecf20Sopenharmony_ci---
48c2ecf20Sopenharmony_ci$id: http://devicetree.org/schemas/phy/intel,combo-phy.yaml#
58c2ecf20Sopenharmony_ci$schema: http://devicetree.org/meta-schemas/core.yaml#
68c2ecf20Sopenharmony_ci
78c2ecf20Sopenharmony_cititle: Intel ComboPhy Subsystem
88c2ecf20Sopenharmony_ci
98c2ecf20Sopenharmony_cimaintainers:
108c2ecf20Sopenharmony_ci  - Dilip Kota <eswara.kota@linux.intel.com>
118c2ecf20Sopenharmony_ci
128c2ecf20Sopenharmony_cidescription: |
138c2ecf20Sopenharmony_ci  Intel Combophy subsystem supports PHYs for PCIe, EMAC and SATA
148c2ecf20Sopenharmony_ci  controllers. A single Combophy provides two PHY instances.
158c2ecf20Sopenharmony_ci
168c2ecf20Sopenharmony_ciproperties:
178c2ecf20Sopenharmony_ci  $nodename:
188c2ecf20Sopenharmony_ci    pattern: "combophy(@.*|-[0-9a-f])*$"
198c2ecf20Sopenharmony_ci
208c2ecf20Sopenharmony_ci  compatible:
218c2ecf20Sopenharmony_ci    items:
228c2ecf20Sopenharmony_ci      - const: intel,combophy-lgm
238c2ecf20Sopenharmony_ci      - const: intel,combo-phy
248c2ecf20Sopenharmony_ci
258c2ecf20Sopenharmony_ci  clocks:
268c2ecf20Sopenharmony_ci    maxItems: 1
278c2ecf20Sopenharmony_ci
288c2ecf20Sopenharmony_ci  reg:
298c2ecf20Sopenharmony_ci    items:
308c2ecf20Sopenharmony_ci      - description: ComboPhy core registers
318c2ecf20Sopenharmony_ci      - description: PCIe app core control registers
328c2ecf20Sopenharmony_ci
338c2ecf20Sopenharmony_ci  reg-names:
348c2ecf20Sopenharmony_ci    items:
358c2ecf20Sopenharmony_ci      - const: core
368c2ecf20Sopenharmony_ci      - const: app
378c2ecf20Sopenharmony_ci
388c2ecf20Sopenharmony_ci  resets:
398c2ecf20Sopenharmony_ci    maxItems: 4
408c2ecf20Sopenharmony_ci
418c2ecf20Sopenharmony_ci  reset-names:
428c2ecf20Sopenharmony_ci    items:
438c2ecf20Sopenharmony_ci      - const: phy
448c2ecf20Sopenharmony_ci      - const: core
458c2ecf20Sopenharmony_ci      - const: iphy0
468c2ecf20Sopenharmony_ci      - const: iphy1
478c2ecf20Sopenharmony_ci
488c2ecf20Sopenharmony_ci  intel,syscfg:
498c2ecf20Sopenharmony_ci    $ref: /schemas/types.yaml#/definitions/phandle-array
508c2ecf20Sopenharmony_ci    description: Chip configuration registers handle and ComboPhy instance id
518c2ecf20Sopenharmony_ci
528c2ecf20Sopenharmony_ci  intel,hsio:
538c2ecf20Sopenharmony_ci    $ref: /schemas/types.yaml#/definitions/phandle-array
548c2ecf20Sopenharmony_ci    description: HSIO registers handle and ComboPhy instance id on NOC
558c2ecf20Sopenharmony_ci
568c2ecf20Sopenharmony_ci  intel,aggregation:
578c2ecf20Sopenharmony_ci    type: boolean
588c2ecf20Sopenharmony_ci    description: |
598c2ecf20Sopenharmony_ci      Specify the flag to configure ComboPHY in dual lane mode.
608c2ecf20Sopenharmony_ci
618c2ecf20Sopenharmony_ci  intel,phy-mode:
628c2ecf20Sopenharmony_ci    $ref: /schemas/types.yaml#/definitions/uint32
638c2ecf20Sopenharmony_ci    description: |
648c2ecf20Sopenharmony_ci      Mode of the two phys in ComboPhy.
658c2ecf20Sopenharmony_ci      See dt-bindings/phy/phy.h for values.
668c2ecf20Sopenharmony_ci
678c2ecf20Sopenharmony_ci  "#phy-cells":
688c2ecf20Sopenharmony_ci    const: 1
698c2ecf20Sopenharmony_ci
708c2ecf20Sopenharmony_cirequired:
718c2ecf20Sopenharmony_ci  - compatible
728c2ecf20Sopenharmony_ci  - clocks
738c2ecf20Sopenharmony_ci  - reg
748c2ecf20Sopenharmony_ci  - reg-names
758c2ecf20Sopenharmony_ci  - intel,syscfg
768c2ecf20Sopenharmony_ci  - intel,hsio
778c2ecf20Sopenharmony_ci  - intel,phy-mode
788c2ecf20Sopenharmony_ci  - "#phy-cells"
798c2ecf20Sopenharmony_ci
808c2ecf20Sopenharmony_ciadditionalProperties: false
818c2ecf20Sopenharmony_ci
828c2ecf20Sopenharmony_ciexamples:
838c2ecf20Sopenharmony_ci  - |
848c2ecf20Sopenharmony_ci    #include <dt-bindings/phy/phy.h>
858c2ecf20Sopenharmony_ci    combophy@d0a00000 {
868c2ecf20Sopenharmony_ci        compatible = "intel,combophy-lgm", "intel,combo-phy";
878c2ecf20Sopenharmony_ci        clocks = <&cgu0 1>;
888c2ecf20Sopenharmony_ci        #phy-cells = <1>;
898c2ecf20Sopenharmony_ci        reg = <0xd0a00000 0x40000>,
908c2ecf20Sopenharmony_ci              <0xd0a40000 0x1000>;
918c2ecf20Sopenharmony_ci        reg-names = "core", "app";
928c2ecf20Sopenharmony_ci        resets = <&rcu0 0x50 6>,
938c2ecf20Sopenharmony_ci                 <&rcu0 0x50 17>,
948c2ecf20Sopenharmony_ci                 <&rcu0 0x50 23>,
958c2ecf20Sopenharmony_ci                 <&rcu0 0x50 24>;
968c2ecf20Sopenharmony_ci        reset-names = "phy", "core", "iphy0", "iphy1";
978c2ecf20Sopenharmony_ci        intel,syscfg = <&sysconf 0>;
988c2ecf20Sopenharmony_ci        intel,hsio = <&hsiol 0>;
998c2ecf20Sopenharmony_ci        intel,phy-mode = <PHY_TYPE_PCIE>;
1008c2ecf20Sopenharmony_ci        intel,aggregation;
1018c2ecf20Sopenharmony_ci    };
102