# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
%YAML 1.2
---
$id: http://devicetree.org/schemas/usb/onnn,nb7vpq904m.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: ON Semiconductor Type-C DisplayPort ALT Mode Linear Redriver

maintainers:
  - Neil Armstrong <neil.armstrong@linaro.org>

properties:
  compatible:
    enum:
      - onnn,nb7vpq904m

  reg:
    maxItems: 1

  vcc-supply:
    description: power supply (1.8V)

  enable-gpios: true
  orientation-switch: true
  retimer-switch: true

  ports:
    $ref: /schemas/graph.yaml#/properties/ports
    properties:
      port@0:
        $ref: /schemas/graph.yaml#/properties/port
        description: Super Speed (SS) Output endpoint to the Type-C connector

      port@1:
        $ref: /schemas/graph.yaml#/$defs/port-base
        description: Super Speed (SS) Input endpoint from the Super-Speed PHY
        unevaluatedProperties: false

        properties:
          endpoint:
            $ref: /schemas/graph.yaml#/$defs/endpoint-base
            unevaluatedProperties: false

            properties:
              data-lanes:
                $ref: /schemas/types.yaml#/definitions/uint32-array
                description: |
                  An array of physical data lane indexes. Position determines how
                  lanes are connected to the redriver, It is assumed the same order
                  is kept on the other side of the redriver.
                  Lane number represents the following
                  - 0 is RX2 lane
                  - 1 is TX2 lane
                  - 2 is TX1 lane
                  - 3 is RX1 lane
                  The position determines the physical port of the redriver, in the
                  order A, B, C & D.
                oneOf:
                  - items:
                      - const: 0
                      - const: 1
                      - const: 2
                      - const: 3
                    description: |
                      This is the lanes default layout
                      - Port A to RX2 lane
                      - Port B to TX2 lane
                      - Port C to TX1 lane
                      - Port D to RX1 lane
                  - items:
                      - const: 3
                      - const: 2
                      - const: 1
                      - const: 0
                    description: |
                      This is the USBRX2/USBTX2 and USBRX1/USBTX1 swapped lanes layout
                      - Port A to RX1 lane
                      - Port B to TX1 lane
                      - Port C to TX2 lane
                      - Port D to RX2 lane

      port@2:
        $ref: /schemas/graph.yaml#/properties/port
        description:
          Sideband Use (SBU) AUX lines endpoint to the Type-C connector for the purpose of
          handling altmode muxing and orientation switching.

required:
  - compatible
  - reg

allOf:
  - $ref: usb-switch.yaml#

additionalProperties: false

examples:
  - |
    i2c {
        #address-cells = <1>;
        #size-cells = <0>;

        typec-mux@32 {
            compatible = "onnn,nb7vpq904m";
            reg = <0x32>;

            vcc-supply = <&vreg_l15b_1p8>;

            retimer-switch;
            orientation-switch;

            ports {
                #address-cells = <1>;
                #size-cells = <0>;

                port@0 {
                    reg = <0>;
                    usb_con_ss: endpoint {
                        remote-endpoint = <&typec_con_ss>;
                    };
                };
                port@1 {
                    reg = <1>;
                    phy_con_ss: endpoint {
                        remote-endpoint = <&usb_phy_ss>;
                        data-lanes = <3 2 1 0>;
                    };
                };
                port@2 {
                    reg = <2>;
                    usb_con_sbu: endpoint {
                        remote-endpoint = <&typec_dp_aux>;
                    };
                };
            };
        };
    };
...
