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