18c2ecf20Sopenharmony_ci# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
28c2ecf20Sopenharmony_ci%YAML 1.2
38c2ecf20Sopenharmony_ci---
48c2ecf20Sopenharmony_ci$id: http://devicetree.org/schemas/phy/lantiq,vrx200-pcie-phy.yaml#
58c2ecf20Sopenharmony_ci$schema: http://devicetree.org/meta-schemas/core.yaml#
68c2ecf20Sopenharmony_ci
78c2ecf20Sopenharmony_cititle: Lantiq VRX200 and ARX300 PCIe PHY Device Tree Bindings
88c2ecf20Sopenharmony_ci
98c2ecf20Sopenharmony_cimaintainers:
108c2ecf20Sopenharmony_ci  - Martin Blumenstingl <martin.blumenstingl@googlemail.com>
118c2ecf20Sopenharmony_ci
128c2ecf20Sopenharmony_ciproperties:
138c2ecf20Sopenharmony_ci  "#phy-cells":
148c2ecf20Sopenharmony_ci    const: 1
158c2ecf20Sopenharmony_ci    description: selects the PHY mode as defined in <dt-bindings/phy/phy-lantiq-vrx200-pcie.h>
168c2ecf20Sopenharmony_ci
178c2ecf20Sopenharmony_ci  compatible:
188c2ecf20Sopenharmony_ci    enum:
198c2ecf20Sopenharmony_ci      - lantiq,vrx200-pcie-phy
208c2ecf20Sopenharmony_ci      - lantiq,arx300-pcie-phy
218c2ecf20Sopenharmony_ci
228c2ecf20Sopenharmony_ci  reg:
238c2ecf20Sopenharmony_ci    maxItems: 1
248c2ecf20Sopenharmony_ci
258c2ecf20Sopenharmony_ci  clocks:
268c2ecf20Sopenharmony_ci    items:
278c2ecf20Sopenharmony_ci      - description: PHY module clock
288c2ecf20Sopenharmony_ci      - description: PDI register clock
298c2ecf20Sopenharmony_ci
308c2ecf20Sopenharmony_ci  clock-names:
318c2ecf20Sopenharmony_ci    items:
328c2ecf20Sopenharmony_ci      - const: phy
338c2ecf20Sopenharmony_ci      - const: pdi
348c2ecf20Sopenharmony_ci
358c2ecf20Sopenharmony_ci  resets:
368c2ecf20Sopenharmony_ci    items:
378c2ecf20Sopenharmony_ci      - description: exclusive PHY reset line
388c2ecf20Sopenharmony_ci      - description: shared reset line between the PCIe PHY and PCIe controller
398c2ecf20Sopenharmony_ci
408c2ecf20Sopenharmony_ci  reset-names:
418c2ecf20Sopenharmony_ci    items:
428c2ecf20Sopenharmony_ci      - const: phy
438c2ecf20Sopenharmony_ci      - const: pcie
448c2ecf20Sopenharmony_ci
458c2ecf20Sopenharmony_ci  lantiq,rcu:
468c2ecf20Sopenharmony_ci    $ref: /schemas/types.yaml#/definitions/phandle
478c2ecf20Sopenharmony_ci    description: phandle to the RCU syscon
488c2ecf20Sopenharmony_ci
498c2ecf20Sopenharmony_ci  lantiq,rcu-endian-offset:
508c2ecf20Sopenharmony_ci    $ref: /schemas/types.yaml#/definitions/uint32
518c2ecf20Sopenharmony_ci    description: the offset of the endian registers for this PHY instance in the RCU syscon
528c2ecf20Sopenharmony_ci
538c2ecf20Sopenharmony_ci  lantiq,rcu-big-endian-mask:
548c2ecf20Sopenharmony_ci    $ref: /schemas/types.yaml#/definitions/uint32
558c2ecf20Sopenharmony_ci    description: the mask to set the PDI (PHY) registers for this PHY instance to big endian
568c2ecf20Sopenharmony_ci
578c2ecf20Sopenharmony_ci  big-endian:
588c2ecf20Sopenharmony_ci    description: Configures the PDI (PHY) registers in big-endian mode
598c2ecf20Sopenharmony_ci    type: boolean
608c2ecf20Sopenharmony_ci
618c2ecf20Sopenharmony_ci  little-endian:
628c2ecf20Sopenharmony_ci    description: Configures the PDI (PHY) registers in big-endian mode
638c2ecf20Sopenharmony_ci    type: boolean
648c2ecf20Sopenharmony_ci
658c2ecf20Sopenharmony_cirequired:
668c2ecf20Sopenharmony_ci  - "#phy-cells"
678c2ecf20Sopenharmony_ci  - compatible
688c2ecf20Sopenharmony_ci  - reg
698c2ecf20Sopenharmony_ci  - clocks
708c2ecf20Sopenharmony_ci  - clock-names
718c2ecf20Sopenharmony_ci  - resets
728c2ecf20Sopenharmony_ci  - reset-names
738c2ecf20Sopenharmony_ci  - lantiq,rcu
748c2ecf20Sopenharmony_ci  - lantiq,rcu-endian-offset
758c2ecf20Sopenharmony_ci  - lantiq,rcu-big-endian-mask
768c2ecf20Sopenharmony_ci
778c2ecf20Sopenharmony_ciadditionalProperties: false
788c2ecf20Sopenharmony_ci
798c2ecf20Sopenharmony_ciexamples:
808c2ecf20Sopenharmony_ci  - |
818c2ecf20Sopenharmony_ci    pcie0_phy: phy@106800 {
828c2ecf20Sopenharmony_ci        compatible = "lantiq,vrx200-pcie-phy";
838c2ecf20Sopenharmony_ci        reg = <0x106800 0x100>;
848c2ecf20Sopenharmony_ci        lantiq,rcu = <&rcu0>;
858c2ecf20Sopenharmony_ci        lantiq,rcu-endian-offset = <0x4c>;
868c2ecf20Sopenharmony_ci        lantiq,rcu-big-endian-mask = <0x80>; /* bit 7 */
878c2ecf20Sopenharmony_ci        big-endian;
888c2ecf20Sopenharmony_ci        clocks = <&pmu 32>, <&pmu 36>;
898c2ecf20Sopenharmony_ci        clock-names = "phy", "pdi";
908c2ecf20Sopenharmony_ci        resets = <&reset0 12 24>, <&reset0 22 22>;
918c2ecf20Sopenharmony_ci        reset-names = "phy", "pcie";
928c2ecf20Sopenharmony_ci        #phy-cells = <1>;
938c2ecf20Sopenharmony_ci    };
948c2ecf20Sopenharmony_ci
958c2ecf20Sopenharmony_ci...
96