xref: /freebsd/sys/contrib/device-tree/Bindings/usb/cypress,cypd4226.yaml (revision cb7aa33ac6cd46a5434798e50363136e64f3ae98)
1*cb7aa33aSEmmanuel Vadot# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
2*cb7aa33aSEmmanuel Vadot%YAML 1.2
3*cb7aa33aSEmmanuel Vadot---
4*cb7aa33aSEmmanuel Vadot$id: http://devicetree.org/schemas/usb/cypress,cypd4226.yaml#
5*cb7aa33aSEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml#
6*cb7aa33aSEmmanuel Vadot
7*cb7aa33aSEmmanuel Vadottitle: Cypress cypd4226 Type-C Controller
8*cb7aa33aSEmmanuel Vadot
9*cb7aa33aSEmmanuel Vadotmaintainers:
10*cb7aa33aSEmmanuel Vadot  - Wayne Chang <waynec@nvidia.com>
11*cb7aa33aSEmmanuel Vadot
12*cb7aa33aSEmmanuel Vadotdescription:
13*cb7aa33aSEmmanuel Vadot  The Cypress cypd4226 is a dual Type-C controller that is controlled
14*cb7aa33aSEmmanuel Vadot  via an I2C interface.
15*cb7aa33aSEmmanuel Vadot
16*cb7aa33aSEmmanuel Vadotproperties:
17*cb7aa33aSEmmanuel Vadot  compatible:
18*cb7aa33aSEmmanuel Vadot    const: cypress,cypd4226
19*cb7aa33aSEmmanuel Vadot
20*cb7aa33aSEmmanuel Vadot  '#address-cells':
21*cb7aa33aSEmmanuel Vadot    const: 1
22*cb7aa33aSEmmanuel Vadot
23*cb7aa33aSEmmanuel Vadot  '#size-cells':
24*cb7aa33aSEmmanuel Vadot    const: 0
25*cb7aa33aSEmmanuel Vadot
26*cb7aa33aSEmmanuel Vadot  reg:
27*cb7aa33aSEmmanuel Vadot    const: 0x08
28*cb7aa33aSEmmanuel Vadot
29*cb7aa33aSEmmanuel Vadot  interrupts:
30*cb7aa33aSEmmanuel Vadot    items:
31*cb7aa33aSEmmanuel Vadot      - description: cypd4226 host interrupt
32*cb7aa33aSEmmanuel Vadot
33*cb7aa33aSEmmanuel Vadot  firmware-name:
34*cb7aa33aSEmmanuel Vadot    enum:
35*cb7aa33aSEmmanuel Vadot      - nvidia,gpu
36*cb7aa33aSEmmanuel Vadot      - nvidia,jetson-agx-xavier
37*cb7aa33aSEmmanuel Vadot    description: |
38*cb7aa33aSEmmanuel Vadot      The name of the CCGx firmware built for product series.
39*cb7aa33aSEmmanuel Vadot      should be set one of following:
40*cb7aa33aSEmmanuel Vadot      - "nvidia,gpu" for the NVIDIA RTX product series
41*cb7aa33aSEmmanuel Vadot      - "nvidia,jetson-agx-xavier" for the NVIDIA Jetson product series
42*cb7aa33aSEmmanuel Vadot
43*cb7aa33aSEmmanuel VadotpatternProperties:
44*cb7aa33aSEmmanuel Vadot  '^connector@[01]$':
45*cb7aa33aSEmmanuel Vadot    $ref: /schemas/connector/usb-connector.yaml#
46*cb7aa33aSEmmanuel Vadot    unevaluatedProperties: false
47*cb7aa33aSEmmanuel Vadot    properties:
48*cb7aa33aSEmmanuel Vadot      reg:
49*cb7aa33aSEmmanuel Vadot        maxItems: 1
50*cb7aa33aSEmmanuel Vadot
51*cb7aa33aSEmmanuel Vadotrequired:
52*cb7aa33aSEmmanuel Vadot  - compatible
53*cb7aa33aSEmmanuel Vadot  - reg
54*cb7aa33aSEmmanuel Vadot  - interrupts
55*cb7aa33aSEmmanuel Vadot
56*cb7aa33aSEmmanuel VadotanyOf:
57*cb7aa33aSEmmanuel Vadot  - required:
58*cb7aa33aSEmmanuel Vadot      - connector@0
59*cb7aa33aSEmmanuel Vadot  - required:
60*cb7aa33aSEmmanuel Vadot      - connector@1
61*cb7aa33aSEmmanuel Vadot
62*cb7aa33aSEmmanuel VadotadditionalProperties: false
63*cb7aa33aSEmmanuel Vadot
64*cb7aa33aSEmmanuel Vadotexamples:
65*cb7aa33aSEmmanuel Vadot  - |
66*cb7aa33aSEmmanuel Vadot    #include <dt-bindings/gpio/tegra194-gpio.h>
67*cb7aa33aSEmmanuel Vadot    #include <dt-bindings/interrupt-controller/arm-gic.h>
68*cb7aa33aSEmmanuel Vadot    i2c {
69*cb7aa33aSEmmanuel Vadot      #address-cells = <1>;
70*cb7aa33aSEmmanuel Vadot      #size-cells = <0>;
71*cb7aa33aSEmmanuel Vadot      #interrupt-cells = <2>;
72*cb7aa33aSEmmanuel Vadot
73*cb7aa33aSEmmanuel Vadot      typec@8 {
74*cb7aa33aSEmmanuel Vadot        compatible = "cypress,cypd4226";
75*cb7aa33aSEmmanuel Vadot        reg = <0x08>;
76*cb7aa33aSEmmanuel Vadot        interrupt-parent = <&gpio_aon>;
77*cb7aa33aSEmmanuel Vadot        interrupts = <TEGRA194_AON_GPIO(BB, 2) IRQ_TYPE_LEVEL_LOW>;
78*cb7aa33aSEmmanuel Vadot        firmware-name = "nvidia,jetson-agx-xavier";
79*cb7aa33aSEmmanuel Vadot        #address-cells = <1>;
80*cb7aa33aSEmmanuel Vadot        #size-cells = <0>;
81*cb7aa33aSEmmanuel Vadot        connector@0 {
82*cb7aa33aSEmmanuel Vadot          compatible = "usb-c-connector";
83*cb7aa33aSEmmanuel Vadot          reg = <0>;
84*cb7aa33aSEmmanuel Vadot          label = "USB-C";
85*cb7aa33aSEmmanuel Vadot          data-role = "dual";
86*cb7aa33aSEmmanuel Vadot          ports {
87*cb7aa33aSEmmanuel Vadot            #address-cells = <1>;
88*cb7aa33aSEmmanuel Vadot            #size-cells = <0>;
89*cb7aa33aSEmmanuel Vadot            port@0 {
90*cb7aa33aSEmmanuel Vadot              reg = <0>;
91*cb7aa33aSEmmanuel Vadot              endpoint {
92*cb7aa33aSEmmanuel Vadot                remote-endpoint = <&usb_role_switch0>;
93*cb7aa33aSEmmanuel Vadot              };
94*cb7aa33aSEmmanuel Vadot            };
95*cb7aa33aSEmmanuel Vadot          };
96*cb7aa33aSEmmanuel Vadot        };
97*cb7aa33aSEmmanuel Vadot      };
98*cb7aa33aSEmmanuel Vadot    };
99