1// SPDX-License-Identifier: (GPL-2.0+ OR MIT) 2/* 3 * Copyright (c) 2023 Theobroma Systems Design und Consulting GmbH 4 */ 5 6/dts-v1/; 7#include <dt-bindings/input/input.h> 8#include "rk3588-tiger.dtsi" 9 10/ { 11 model = "Theobroma Systems RK3588-Q7 SoM on Haikou devkit"; 12 compatible = "tsd,rk3588-tiger-haikou", "tsd,rk3588-tiger", "rockchip,rk3588"; 13 14 aliases { 15 ethernet0 = &gmac0; 16 mmc1 = &sdmmc; 17 }; 18 19 chosen { 20 stdout-path = "serial2:115200n8"; 21 }; 22 23 dc_12v: dc-12v-regulator { 24 compatible = "regulator-fixed"; 25 regulator-name = "dc_12v"; 26 regulator-always-on; 27 regulator-boot-on; 28 regulator-min-microvolt = <12000000>; 29 regulator-max-microvolt = <12000000>; 30 }; 31 32 gpio-keys { 33 compatible = "gpio-keys"; 34 pinctrl-names = "default"; 35 pinctrl-0 = <&haikou_keys_pin>; 36 37 button-batlow-n { 38 label = "BATLOW#"; 39 linux,code = <KEY_BATTERY>; 40 gpios = <&gpio3 RK_PB5 GPIO_ACTIVE_LOW>; 41 }; 42 43 button-slp-btn-n { 44 label = "SLP_BTN#"; 45 linux,code = <KEY_SLEEP>; 46 gpios = <&gpio4 RK_PB3 GPIO_ACTIVE_LOW>; 47 }; 48 49 button-wake-n { 50 label = "WAKE#"; 51 linux,code = <KEY_WAKEUP>; 52 gpios = <&gpio3 RK_PC6 GPIO_ACTIVE_LOW>; 53 wakeup-source; 54 }; 55 56 switch-lid-btn-n { 57 label = "LID_BTN#"; 58 linux,code = <SW_LID>; 59 linux,input-type = <EV_SW>; 60 gpios = <&gpio3 RK_PD5 GPIO_ACTIVE_LOW>; 61 }; 62 }; 63 64 i2s3-sound { 65 compatible = "simple-audio-card"; 66 simple-audio-card,format = "i2s"; 67 simple-audio-card,name = "Haikou,I2S-codec"; 68 simple-audio-card,mclk-fs = <512>; 69 simple-audio-card,frame-master = <&sgtl5000_codec>; 70 simple-audio-card,bitclock-master = <&sgtl5000_codec>; 71 72 sgtl5000_codec: simple-audio-card,codec { 73 sound-dai = <&sgtl5000>; 74 }; 75 76 simple-audio-card,cpu { 77 sound-dai = <&i2s3_2ch>; 78 }; 79 }; 80 81 sgtl5000_clk: sgtl5000-oscillator { 82 compatible = "fixed-clock"; 83 #clock-cells = <0>; 84 clock-frequency = <24576000>; 85 }; 86 87 vcc3v3_baseboard: vcc3v3-baseboard-regulator { 88 compatible = "regulator-fixed"; 89 regulator-name = "vcc3v3_baseboard"; 90 regulator-always-on; 91 regulator-boot-on; 92 regulator-min-microvolt = <3300000>; 93 regulator-max-microvolt = <3300000>; 94 vin-supply = <&dc_12v>; 95 }; 96 97 vcc3v3_low_noise: vcc3v3-low-noise-regulator { 98 compatible = "regulator-fixed"; 99 regulator-name = "vcc3v3_low_noise"; 100 regulator-boot-on; 101 regulator-min-microvolt = <3300000>; 102 regulator-max-microvolt = <3300000>; 103 vin-supply = <&vcc5v0_usb>; 104 }; 105 106 vcc5v0_baseboard: vcc5v0-baseboard-regulator { 107 compatible = "regulator-fixed"; 108 regulator-name = "vcc5v0_baseboard"; 109 regulator-always-on; 110 regulator-boot-on; 111 regulator-min-microvolt = <5000000>; 112 regulator-max-microvolt = <5000000>; 113 vin-supply = <&dc_12v>; 114 }; 115 116 vcc5v0_otg: vcc5v0-otg-regulator { 117 compatible = "regulator-fixed"; 118 enable-active-high; 119 gpio = <&gpio1 RK_PB5 GPIO_ACTIVE_HIGH>; 120 pinctrl-names = "default"; 121 pinctrl-0 = <&otg_vbus_drv>; 122 regulator-name = "vcc5v0_otg"; 123 regulator-always-on; 124 }; 125 126 vcc5v0_usb: vcc5v0-usb-regulator { 127 compatible = "regulator-fixed"; 128 regulator-name = "vcc5v0_usb"; 129 regulator-always-on; 130 regulator-boot-on; 131 regulator-min-microvolt = <5000000>; 132 regulator-max-microvolt = <5000000>; 133 vin-supply = <&dc_12v>; 134 }; 135 136 vddd_audio_1v6: vddd-audio-1v6-regulator { 137 compatible = "regulator-fixed"; 138 regulator-name = "vddd_audio_1v6"; 139 regulator-boot-on; 140 regulator-min-microvolt = <1600000>; 141 regulator-max-microvolt = <1600000>; 142 vin-supply = <&vcc5v0_usb>; 143 }; 144}; 145 146&combphy2_psu { 147 status = "okay"; 148}; 149 150&extcon_usb3 { 151 status = "okay"; 152}; 153 154&gmac0 { 155 status = "okay"; 156}; 157 158&i2c1 { 159 status = "okay"; 160 161 eeprom@50 { 162 reg = <0x50>; 163 compatible = "atmel,24c01"; 164 pagesize = <8>; 165 size = <128>; 166 vcc-supply = <&vcc3v3_baseboard>; 167 }; 168}; 169 170&i2c5 { 171 clock-frequency = <400000>; 172 status = "okay"; 173 174 sgtl5000: codec@a { 175 compatible = "fsl,sgtl5000"; 176 reg = <0x0a>; 177 clocks = <&sgtl5000_clk>; 178 #sound-dai-cells = <0>; 179 VDDA-supply = <&vcc3v3_low_noise>; 180 VDDIO-supply = <&vcc3v3_baseboard>; 181 VDDD-supply = <&vddd_audio_1v6>; 182 }; 183}; 184 185&i2c8 { 186 status = "okay"; 187}; 188 189&i2s3_2ch { 190 status = "okay"; 191}; 192 193&pcie30phy { 194 status = "okay"; 195}; 196 197&pcie3x4 { 198 vpcie3v3-supply = <&vcc3v3_baseboard>; 199 status = "okay"; 200}; 201 202&pinctrl { 203 haikou { 204 haikou_keys_pin: haikou-keys-pin { 205 rockchip,pins = 206 /* BATLOW# */ 207 <3 RK_PB5 RK_FUNC_GPIO &pcfg_pull_up>, 208 /* SLP_BTN# */ 209 <4 RK_PB3 RK_FUNC_GPIO &pcfg_pull_up>, 210 /* WAKE# */ 211 <3 RK_PC6 RK_FUNC_GPIO &pcfg_pull_up>, 212 /* LID_BTN */ 213 <3 RK_PD5 RK_FUNC_GPIO &pcfg_pull_up>; 214 }; 215 }; 216 217 usb2 { 218 otg_vbus_drv: otg-vbus-drv { 219 rockchip,pins = 220 <1 RK_PB5 RK_FUNC_GPIO &pcfg_pull_none>; 221 }; 222 }; 223}; 224 225&sdmmc { 226 /* while the same pin, sdmmc_det does not detect card changes */ 227 cd-gpios = <&gpio0 RK_PA4 GPIO_ACTIVE_LOW>; 228 disable-wp; 229 pinctrl-0 = <&sdmmc_bus4 &sdmmc_cmd &sdmmc_clk>; 230 sd-uhs-sdr12; 231 sd-uhs-sdr25; 232 sd-uhs-sdr50; 233 sd-uhs-sdr104; 234 vmmc-supply = <&vcc3v3_baseboard>; 235 status = "okay"; 236}; 237 238&u2phy0 { 239 status = "okay"; 240}; 241 242&u2phy0_otg { 243 phy-supply = <&vcc5v0_otg>; 244 status = "okay"; 245}; 246 247&u2phy1 { 248 status = "okay"; 249}; 250 251&u2phy1_otg { 252 status = "okay"; 253}; 254 255&u2phy2 { 256 status = "okay"; 257}; 258 259&u2phy2_host { 260 status = "okay"; 261}; 262 263&u2phy3 { 264 status = "okay"; 265}; 266 267&u2phy3_host { 268 status = "okay"; 269}; 270 271&uart2 { 272 status = "okay"; 273}; 274 275&uart5 { 276 rts-gpios = <&gpio3 RK_PB3 GPIO_ACTIVE_HIGH>; 277}; 278 279&usbdp_phy0 { 280 status = "okay"; 281}; 282 283&usbdp_phy1 { 284 status = "okay"; 285}; 286 287/* host0 on Q7_USB_P2, upper usb3 port */ 288&usb_host0_ehci { 289 status = "okay"; 290}; 291 292/* host0 on Q7_USB_P2, upper usb3 port */ 293&usb_host0_ohci { 294 status = "okay"; 295}; 296 297/* host0_xhci on Q7_USB_P1, usb3-otg port */ 298&usb_host0_xhci { 299 dr_mode = "otg"; 300 extcon = <&extcon_usb3>; 301 status = "okay"; 302}; 303 304/* host1 on Q7_USB_P3, usb2 port */ 305&usb_host1_ehci { 306 status = "okay"; 307}; 308 309/* host1 on Q7_USB_P3, usb2 port */ 310&usb_host1_ohci { 311 status = "okay"; 312}; 313 314/* host1_xhci on Q7_USB_P0, lower usb3 port */ 315&usb_host1_xhci { 316 dr_mode = "host"; 317 status = "okay"; 318}; 319 320/* host2 on Q7_USB_P2, upper usb3 port */ 321&usb_host2_xhci { 322 status = "okay"; 323}; 324