Merge tag 'wireless-2022-03-16' of git://git.kernel.org/pub/scm/linux/kernel/git...
[linux-2.6-microblaze.git] / arch / arm64 / boot / dts / rockchip / rk3399-roc-pc-plus.dts
1 // SPDX-License-Identifier: (GPL-2.0+ OR MIT)
2 /*
3  * Copyright (c) 2017 T-Chip Intelligent Technology Co., Ltd
4  */
5
6 /dts-v1/;
7 #include "rk3399-roc-pc.dtsi"
8
9 /*
10  * Notice:
11  * 1. rk3399-roc-pc-plus is powered by dc_12v directly.
12  * 2. rk3399-roc-pc-plus has only vcc_bus_typec0 in schematic, which is coresponding
13  *    to vcc_vbus_typec1 in rk3399-roc-pc.
14  *    For simplicity, reserve the node name of vcc_vbus_typec1.
15  * 3. vcc5v0_host is actually 2 regulators (host0, 1) controlled by the same gpio.
16  */
17
18 /delete-node/ &fusb1;
19 /delete-node/ &hub_rst;
20 /delete-node/ &mp8859;
21 /delete-node/ &vcc_sys_en;
22 /delete-node/ &vcc_vbus_typec0;
23 /delete-node/ &yellow_led;
24
25 / {
26         model = "Firefly ROC-RK3399-PC-PLUS Board";
27         compatible = "firefly,roc-rk3399-pc-plus", "rockchip,rk3399";
28
29         dc_12v: dc-12v {
30                 compatible = "regulator-fixed";
31                 regulator-name = "dc_12v";
32                 regulator-always-on;
33                 regulator-boot-on;
34                 regulator-min-microvolt = <12000000>;
35                 regulator-max-microvolt = <12000000>;
36         };
37
38         es8388-sound {
39                 compatible = "simple-audio-card";
40                 pinctrl-names = "default";
41                 pinctrl-0 = <&hp_det_pin>;
42                 simple-audio-card,name = "rockchip,es8388-codec";
43                 simple-audio-card,format = "i2s";
44                 simple-audio-card,mclk-fs = <256>;
45                 simple-audio-card,widgets =
46                         "Microphone", "Mic Jack",
47                         "Headphone", "Headphones";
48                 simple-audio-card,routing =
49                         "LINPUT1", "Mic Jack",
50                         "Headphone Amp INL", "LOUT2",
51                         "Headphone Amp INR", "ROUT2",
52                         "Headphones", "Headphone Amp OUTL",
53                         "Headphones", "Headphone Amp OUTR";
54                 simple-audio-card,hp-det-gpio = <&gpio2 RK_PA6 GPIO_ACTIVE_HIGH>;
55                 simple-audio-card,aux-devs = <&headphones_amp>;
56                 simple-audio-card,pin-switches = "Headphones";
57
58                 simple-audio-card,codec {
59                         sound-dai = <&es8388>;
60                 };
61
62                 simple-audio-card,cpu {
63                         sound-dai = <&i2s1>;
64                 };
65         };
66
67         gpio-fan {
68                 #cooling-cells = <2>;
69                 compatible = "gpio-fan";
70                 gpio-fan,speed-map = <0 0 3000 1>;
71                 gpios = <&gpio1 RK_PA1 GPIO_ACTIVE_HIGH>;
72         };
73
74         /delete-node/ gpio-keys;
75
76         /* not amplifier, used as switcher only */
77         headphones_amp: headphones-amp {
78                 compatible = "simple-audio-amplifier";
79                 pinctrl-names = "default";
80                 pinctrl-0 = <&ear_ctl_pin>;
81                 enable-gpios = <&gpio0 RK_PA2 GPIO_ACTIVE_HIGH>;
82                 sound-name-prefix = "Headphone Amp";
83                 VCC-supply = <&vcca3v0_codec>;
84         };
85
86         ir-receiver {
87                 linux,rc-map-name = "rc-khadas";
88         };
89
90         leds {
91                 pinctrl-names = "default";
92                 pinctrl-0 = <&work_led_pin>, <&diy_led_pin>;
93         };
94 };
95
96 &fusb0 {
97         vbus-supply = <&vcc_vbus_typec1>;
98 };
99
100 &i2c0 {
101         hym8563: hym8563@51 {
102                 compatible = "haoyu,hym8563";
103                 reg = <0x51>;
104                 interrupt-parent = <&gpio0>;
105                 interrupts = <RK_PA5 IRQ_TYPE_EDGE_FALLING>;
106                 #clock-cells = <0>;
107                 clock-frequency = <32768>;
108                 clock-output-names = "xin32k";
109                 pinctrl-names = "default";
110                 pinctrl-0 = <&hym8563_int>;
111         };
112 };
113
114 &i2c1 {
115         es8388: es8388@11 {
116                 compatible = "everest,es8388";
117                 reg = <0x11>;
118                 clock-names = "mclk";
119                 clocks = <&cru SCLK_I2S_8CH_OUT>;
120                 #sound-dai-cells = <0>;
121         };
122 };
123
124 /* <4 RK_PA0 1 &pcfg_pull_none> is used as i2s_8ch_mclk_pin */
125 &i2s0_8ch_bus {
126         rockchip,pins =
127                 <3 RK_PD0 1 &pcfg_pull_none>,
128                 <3 RK_PD1 1 &pcfg_pull_none>,
129                 <3 RK_PD2 1 &pcfg_pull_none>,
130                 <3 RK_PD3 1 &pcfg_pull_none>,
131                 <3 RK_PD4 1 &pcfg_pull_none>,
132                 <3 RK_PD5 1 &pcfg_pull_none>,
133                 <3 RK_PD6 1 &pcfg_pull_none>,
134                 <3 RK_PD7 1 &pcfg_pull_none>;
135 };
136
137 &i2s1 {
138         pinctrl-names = "default";
139         pinctrl-0 = <&i2s_8ch_mclk_pin>, <&i2s1_2ch_bus>;
140         rockchip,playback-channels = <2>;
141         rockchip,capture-channels = <2>;
142         status = "okay";
143 };
144
145 &pinctrl {
146         es8388 {
147                 ear_ctl_pin: ear-ctl-pin {
148                         rockchip,pins = <0 RK_PA2 RK_FUNC_GPIO &pcfg_output_high>;
149                 };
150
151                 hp_det_pin: hp-det-pin {
152                         rockchip,pins = <2 RK_PA6 RK_FUNC_GPIO &pcfg_pull_down>;
153                 };
154         };
155
156         hym8563 {
157                 hym8563_int: hym8563-int {
158                         rockchip,pins = <0 RK_PA5 RK_FUNC_GPIO &pcfg_pull_up>;
159                 };
160         };
161
162         i2s1 {
163                 i2s_8ch_mclk_pin: i2s-8ch-mclk-pin {
164                         rockchip,pins = <4 RK_PA0 1 &pcfg_pull_none>;
165                 };
166         };
167 };
168
169 &u2phy0 {
170         status = "okay";
171
172         u2phy0_otg: otg-port {
173                 phy-supply = <&vcc_vbus_typec1>;
174                 status = "okay";
175         };
176
177         u2phy0_host: host-port {
178                 phy-supply = <&vcc5v0_host>;
179                 status = "okay";
180         };
181 };
182
183 &u2phy1 {
184         status = "okay";
185
186         u2phy1_otg: otg-port {
187                 phy-supply = <&vcc5v0_host>;
188                 status = "okay";
189         };
190
191         u2phy1_host: host-port {
192                 phy-supply = <&vcc5v0_host>;
193                 status = "okay";
194         };
195 };
196
197 &uart0 {
198         pinctrl-names = "default";
199         pinctrl-0 = <&uart0_xfer &uart0_cts &uart0_rts>;
200         status = "okay";
201 };
202
203 &usbdrd_dwc3_0 {
204         dr_mode = "host";
205         status = "okay";
206 };
207
208 &vcc_sys {
209         /* vcc_sys is fixed, not controlled by any gpio */
210         /delete-property/ gpio;
211         /delete-property/ pinctrl-names;
212         /delete-property/ pinctrl-0;
213 };
214
215 &vcc5v0_host {
216         pinctrl-names = "default";
217         pinctrl-0 = <&vcc5v0_host_en>;
218 };