1// SPDX-License-Identifier: (GPL-2.0+ OR MIT) 2/* 3 * Google Gru-Chromebook shared properties 4 * 5 * Copyright 2018 Google, Inc 6 */ 7 8#include "rk3399-gru.dtsi" 9 10/ { 11 pp900_ap: pp900-ap { 12 compatible = "regulator-fixed"; 13 regulator-name = "pp900_ap"; 14 15 /* EC turns on w/ pp900_ap_en; always on for AP */ 16 regulator-always-on; 17 regulator-boot-on; 18 regulator-min-microvolt = <900000>; 19 regulator-max-microvolt = <900000>; 20 21 vin-supply = <&ppvar_sys>; 22 }; 23 24 /* EC turns on w/ pp900_usb_en */ 25 pp900_usb: pp900-ap { 26 }; 27 28 /* EC turns on w/ pp900_pcie_en */ 29 pp900_pcie: pp900-ap { 30 }; 31 32 pp3000: pp3000 { 33 compatible = "regulator-fixed"; 34 regulator-name = "pp3000"; 35 pinctrl-names = "default"; 36 pinctrl-0 = <&pp3000_en>; 37 38 enable-active-high; 39 gpio = <&gpio0 12 GPIO_ACTIVE_HIGH>; 40 41 regulator-always-on; 42 regulator-boot-on; 43 regulator-min-microvolt = <3000000>; 44 regulator-max-microvolt = <3000000>; 45 46 vin-supply = <&ppvar_sys>; 47 }; 48 49 ppvar_centerlogic_pwm: ppvar-centerlogic-pwm { 50 compatible = "pwm-regulator"; 51 regulator-name = "ppvar_centerlogic_pwm"; 52 53 pwms = <&pwm3 0 3337 0>; 54 pwm-supply = <&ppvar_sys>; 55 pwm-dutycycle-range = <100 0>; 56 pwm-dutycycle-unit = <100>; 57 58 /* EC turns on w/ ppvar_centerlogic_en; always on for AP */ 59 regulator-always-on; 60 regulator-boot-on; 61 regulator-min-microvolt = <799434>; 62 regulator-max-microvolt = <1049925>; 63 }; 64 65 ppvar_centerlogic: ppvar-centerlogic { 66 compatible = "vctrl-regulator"; 67 regulator-name = "ppvar_centerlogic"; 68 69 regulator-min-microvolt = <799434>; 70 regulator-max-microvolt = <1049925>; 71 72 ctrl-supply = <&ppvar_centerlogic_pwm>; 73 ctrl-voltage-range = <799434 1049925>; 74 75 regulator-settling-time-up-us = <378>; 76 min-slew-down-rate = <225>; 77 ovp-threshold-percent = <16>; 78 }; 79 80 /* Schematics call this PPVAR even though it's fixed */ 81 ppvar_logic: ppvar-logic { 82 compatible = "regulator-fixed"; 83 regulator-name = "ppvar_logic"; 84 85 /* EC turns on w/ ppvar_logic_en; always on for AP */ 86 regulator-always-on; 87 regulator-boot-on; 88 regulator-min-microvolt = <900000>; 89 regulator-max-microvolt = <900000>; 90 91 vin-supply = <&ppvar_sys>; 92 }; 93 94 pp1800_audio: pp1800-audio { 95 compatible = "regulator-fixed"; 96 regulator-name = "pp1800_audio"; 97 pinctrl-names = "default"; 98 pinctrl-0 = <&pp1800_audio_en>; 99 100 enable-active-high; 101 gpio = <&gpio0 2 GPIO_ACTIVE_HIGH>; 102 103 regulator-always-on; 104 regulator-boot-on; 105 106 vin-supply = <&pp1800>; 107 }; 108 109 /* gpio is shared with pp3300_wifi_bt */ 110 pp1800_pcie: pp1800-pcie { 111 compatible = "regulator-fixed"; 112 regulator-name = "pp1800_pcie"; 113 pinctrl-names = "default"; 114 pinctrl-0 = <&wlan_module_pd_l>; 115 116 enable-active-high; 117 gpio = <&gpio0 4 GPIO_ACTIVE_HIGH>; 118 119 /* 120 * Need to wait 1ms + ramp-up time before we can power on WiFi. 121 * This has been approximated as 8ms total. 122 */ 123 regulator-enable-ramp-delay = <8000>; 124 125 vin-supply = <&pp1800>; 126 }; 127 128 /* Always on; plain and simple */ 129 pp3000_ap: pp3000_emmc: pp3000 { 130 }; 131 132 pp1500_ap_io: pp1500-ap-io { 133 compatible = "regulator-fixed"; 134 regulator-name = "pp1500_ap_io"; 135 pinctrl-names = "default"; 136 pinctrl-0 = <&pp1500_en>; 137 138 enable-active-high; 139 gpio = <&gpio0 10 GPIO_ACTIVE_HIGH>; 140 141 regulator-always-on; 142 regulator-boot-on; 143 regulator-min-microvolt = <1500000>; 144 regulator-max-microvolt = <1500000>; 145 146 vin-supply = <&pp1800>; 147 }; 148 149 pp3300_disp: pp3300-disp { 150 compatible = "regulator-fixed"; 151 regulator-name = "pp3300_disp"; 152 pinctrl-names = "default"; 153 pinctrl-0 = <&pp3300_disp_en>; 154 155 enable-active-high; 156 gpio = <&gpio4 27 GPIO_ACTIVE_HIGH>; 157 158 startup-delay-us = <2000>; 159 vin-supply = <&pp3300>; 160 }; 161 162 /* EC turns on w/ pp3300_usb_en_l */ 163 pp3300_usb: pp3300 { 164 }; 165 166 /* gpio is shared with pp1800_pcie and pinctrl is set there */ 167 pp3300_wifi_bt: pp3300-wifi-bt { 168 compatible = "regulator-fixed"; 169 regulator-name = "pp3300_wifi_bt"; 170 171 enable-active-high; 172 gpio = <&gpio0 4 GPIO_ACTIVE_HIGH>; 173 174 vin-supply = <&pp3300>; 175 }; 176 177 /* 178 * This is a bit of a hack. The WiFi module should be reset at least 179 * 1ms after its regulators have ramped up (max rampup time is ~7ms). 180 * With some stretching of the imagination, we can call the 1.8V 181 * regulator a supply. 182 */ 183 wlan_pd_n: wlan-pd-n { 184 compatible = "regulator-fixed"; 185 regulator-name = "wlan_pd_n"; 186 pinctrl-names = "default"; 187 pinctrl-0 = <&wlan_module_reset_l>; 188 189 enable-active-high; 190 gpio = <&gpio1 11 GPIO_ACTIVE_HIGH>; 191 192 vin-supply = <&pp1800_pcie>; 193 }; 194 195 backlight: backlight { 196 compatible = "pwm-backlight"; 197 enable-gpios = <&gpio1 17 GPIO_ACTIVE_HIGH>; 198 power-supply = <&pp3300_disp>; 199 pinctrl-names = "default"; 200 pinctrl-0 = <&bl_en>; 201 pwm-delay-us = <10000>; 202 }; 203}; 204 205&ppvar_bigcpu { 206 min-slew-down-rate = <225>; 207 ovp-threshold-percent = <16>; 208}; 209 210&ppvar_litcpu { 211 min-slew-down-rate = <225>; 212 ovp-threshold-percent = <16>; 213}; 214 215&ppvar_gpu { 216 min-slew-down-rate = <225>; 217 ovp-threshold-percent = <16>; 218}; 219 220&cdn_dp { 221 extcon = <&usbc_extcon0>, <&usbc_extcon1>; 222}; 223 224&edp { 225 status = "okay"; 226 227 ports { 228 edp_out: port@1 { 229 reg = <1>; 230 #address-cells = <1>; 231 #size-cells = <0>; 232 233 edp_out_panel: endpoint@0 { 234 reg = <0>; 235 remote-endpoint = <&panel_in_edp>; 236 }; 237 }; 238 }; 239}; 240 241ap_i2c_mic: &i2c1 { 242 status = "okay"; 243 244 clock-frequency = <400000>; 245 246 /* These are relatively safe rise/fall times */ 247 i2c-scl-falling-time-ns = <50>; 248 i2c-scl-rising-time-ns = <300>; 249 250 headsetcodec: rt5514@57 { 251 compatible = "realtek,rt5514"; 252 reg = <0x57>; 253 realtek,dmic-init-delay-ms = <20>; 254 }; 255}; 256 257ap_i2c_tp: &i2c5 { 258 status = "okay"; 259 260 clock-frequency = <400000>; 261 262 /* These are relatively safe rise/fall times */ 263 i2c-scl-falling-time-ns = <50>; 264 i2c-scl-rising-time-ns = <300>; 265 266 /* 267 * Note strange pullup enable. Apparently this avoids leakage but 268 * still allows us to get nice 4.7K pullups for high speed i2c 269 * transfers. Basically we want the pullup on whenever the ap is 270 * alive, so the "en" pin just gets set to output high. 271 */ 272 pinctrl-0 = <&i2c5_xfer &ap_i2c_tp_pu_en>; 273}; 274 275&cros_ec { 276 cros_ec_pwm: ec-pwm { 277 compatible = "google,cros-ec-pwm"; 278 #pwm-cells = <1>; 279 }; 280 281 usbc_extcon1: extcon@1 { 282 compatible = "google,extcon-usbc-cros-ec"; 283 google,usb-port-id = <1>; 284 285 #extcon-cells = <0>; 286 }; 287}; 288 289&sound { 290 rockchip,codec = <&max98357a &headsetcodec 291 &codec &wacky_spi_audio &cdn_dp>; 292}; 293 294&spi2 { 295 wacky_spi_audio: spi2@0 { 296 compatible = "realtek,rt5514"; 297 reg = <0>; 298 interrupt-parent = <&gpio1>; 299 interrupts = <13 IRQ_TYPE_LEVEL_HIGH>; 300 pinctrl-names = "default"; 301 pinctrl-0 = <&mic_int>; 302 /* May run faster once verified. */ 303 spi-max-frequency = <10000000>; 304 wakeup-source; 305 }; 306}; 307 308&pci_rootport { 309 mvl_wifi: wifi@0,0 { 310 compatible = "pci1b4b,2b42"; 311 reg = <0x83010000 0x0 0x00000000 0x0 0x00100000 312 0x83010000 0x0 0x00100000 0x0 0x00100000>; 313 interrupt-parent = <&gpio0>; 314 interrupts = <8 IRQ_TYPE_LEVEL_LOW>; 315 pinctrl-names = "default"; 316 pinctrl-0 = <&wlan_host_wake_l>; 317 wakeup-source; 318 }; 319}; 320 321&tcphy1 { 322 status = "okay"; 323 extcon = <&usbc_extcon1>; 324}; 325 326&u2phy1 { 327 status = "okay"; 328}; 329 330&usb_host0_ehci { 331 status = "okay"; 332}; 333 334&usb_host1_ehci { 335 status = "okay"; 336}; 337 338&usb_host1_ohci { 339 status = "okay"; 340}; 341 342&usbdrd3_1 { 343 status = "okay"; 344 extcon = <&usbc_extcon1>; 345}; 346 347&usbdrd_dwc3_1 { 348 status = "okay"; 349 dr_mode = "host"; 350}; 351 352&pinctrl { 353 discrete-regulators { 354 pp1500_en: pp1500-en { 355 rockchip,pins = <RK_GPIO0 10 RK_FUNC_GPIO 356 &pcfg_pull_none>; 357 }; 358 359 pp1800_audio_en: pp1800-audio-en { 360 rockchip,pins = <RK_GPIO0 2 RK_FUNC_GPIO 361 &pcfg_pull_down>; 362 }; 363 364 pp3000_en: pp3000-en { 365 rockchip,pins = <RK_GPIO0 12 RK_FUNC_GPIO 366 &pcfg_pull_none>; 367 }; 368 369 pp3300_disp_en: pp3300-disp-en { 370 rockchip,pins = <RK_GPIO4 27 RK_FUNC_GPIO 371 &pcfg_pull_none>; 372 }; 373 374 wlan_module_pd_l: wlan-module-pd-l { 375 rockchip,pins = <RK_GPIO0 4 RK_FUNC_GPIO 376 &pcfg_pull_down>; 377 }; 378 }; 379}; 380 381&wifi { 382 wifi_perst_l: wifi-perst-l { 383 rockchip,pins = <2 27 RK_FUNC_GPIO &pcfg_pull_none>; 384 }; 385 386 wlan_host_wake_l: wlan-host-wake-l { 387 rockchip,pins = <0 8 RK_FUNC_GPIO &pcfg_pull_none>; 388 }; 389}; 390