# 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

  retimer-switch:
    description: Flag the port as possible handle of SuperSpeed signals retiming
    type: boolean

  orientation-switch:
    description: Flag the port as possible handler of orientation switching
    type: boolean

  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

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>;
                    };
                };
            };
        };
    };
...
