1# Copyright (c) 2024 Nuvoton Technology Corporation
2# SPDX-License-Identifier: Apache-2.0
3
4description: Nuvoton NuMaker USB Type-C port controller
5
6compatible: "nuvoton,numaker-tcpc"
7
8include: [base.yaml, reset-device.yaml, pinctrl-device.yaml]
9
10properties:
11  reg:
12    required: true
13
14  interrupts:
15    required: true
16
17  resets:
18    required: true
19
20  clocks:
21    required: true
22
23  vconn-overcurrent-event-polarity:
24    type: string
25    description: |
26      Polarity of VCONN overcurrent event
27    enum:
28      - "low-active"
29      - "high-active"
30
31  vconn-discharge-polarity:
32    type: string
33    description: |
34      Polarity of VCONN discharge
35    enum:
36      - "low-active"
37      - "high-active"
38
39  vconn-enable-polarity:
40    type: string
41    description: |
42      Polarity of VCONN enable
43    enum:
44      - "low-active"
45      - "high-active"
46
47  vbus-overcurrent-event-polarity:
48    type: string
49    description: |
50      Polarity of VBUS overcurrent event
51    enum:
52      - "low-active"
53      - "high-active"
54
55  vbus-forceoff-event-polarity:
56    type: string
57    description: |
58      Polarity of VBUS force-off event
59    enum:
60      - "low-active"
61      - "high-active"
62
63  frs-tx-polarity:
64    type: string
65    description: |
66      Polarity of fast role swap tx
67    enum:
68      - "low-active"
69      - "high-active"
70
71  vbus-discharge-enable-polarity:
72    type: string
73    description: |
74      Polarity of VBUS discharge enable
75    enum:
76      - "low-active"
77      - "high-active"
78
79  vbus-sink-enable-polarity:
80    type: string
81    description: |
82      Polarity of VBUS sink enable
83    enum:
84      - "low-active"
85      - "high-active"
86
87  vbus-source-enable-polarity:
88    type: string
89    description: |
90      Polarity of VBUS source enable
91    enum:
92      - "low-active"
93      - "high-active"
94
95  vbus-divide:
96    type: string
97    required: true
98    description: |
99      VBUS measurement divider:
100      "divide-20": External VBUS voltage divider circuit should be 1/20
101                   for EPR application. The divided voltage compares with
102                   200mV to set or clean VBUS Present bit.
103      "divide-10": External VBUS voltage divider circuit should be 1/10
104                   for SPR application. The divided voltage compares with
105                   400mV to set or clean VBUS Present bit.
106    enum:
107      - "divide-20"
108      - "divide-10"
109
110  dead-battery:
111    type: boolean
112    description: |
113      Determine if USB-C Dead Battery pull-down resistor should be
114      applied to the CC lines.
115
116  pinctrl-0:
117    required: true
118
119  pinctrl-names:
120    required: true
121
122  gpios:
123    type: phandle-array
124    required: true
125
126  gpio-names:
127    type: string-array
128    required: true
129    description: |
130      Valid names of GPIO:
131      "vbus-detect": GPIO for VBUS detect (must)
132      "vbus-discharge": GPIO for VBUS discharge (option)
133      "vconn-discharge": GPIO for VCONN discharge (option)
134
135  io-channels:
136    type: phandle-array
137    description: |
138      EADC channels for measuring VBUS/VCONN voltage
139
140  io-channel-names:
141    type: string-array
142    description: |
143      Valid names of EADC channels:
144      "chn-vbus": EADC channel for measuring VBUS voltage (option)
145      "chn-vconn": EADC channel for measuring VCONN voltage (option)
146
147  adc-measure-timer-trigger-rate:
148    type: int
149    description: |
150      Rate of timer-triggered EADC measurement (Hz).
151      This is ignored when none of above is specified.
152      The default is chosen by following BSP sample,
153      and is to update UTCPD in a proper rate.
154    default: 100
155