1 // SPDX-License-Identifier: (GPL-2.0+ OR MIT)
3 * Google Gru-Chromebook shared properties
5 * Copyright 2018 Google, Inc
8 #include "rk3399-gru.dtsi"
12 compatible = "regulator-fixed";
13 regulator-name = "pp900_ap";
15 /* EC turns on w/ pp900_ap_en; always on for AP */
18 regulator-min-microvolt = <900000>;
19 regulator-max-microvolt = <900000>;
21 vin-supply = <&ppvar_sys>;
24 /* EC turns on w/ pp900_usb_en */
28 /* EC turns on w/ pp900_pcie_en */
29 pp900_pcie: pp900-ap {
33 compatible = "regulator-fixed";
34 regulator-name = "pp3000";
35 pinctrl-names = "default";
36 pinctrl-0 = <&pp3000_en>;
39 gpio = <&gpio0 12 GPIO_ACTIVE_HIGH>;
43 regulator-min-microvolt = <3000000>;
44 regulator-max-microvolt = <3000000>;
46 vin-supply = <&ppvar_sys>;
49 ppvar_centerlogic_pwm: ppvar-centerlogic-pwm {
50 compatible = "pwm-regulator";
51 regulator-name = "ppvar_centerlogic_pwm";
53 pwms = <&pwm3 0 3337 0>;
54 pwm-supply = <&ppvar_sys>;
55 pwm-dutycycle-range = <100 0>;
56 pwm-dutycycle-unit = <100>;
58 /* EC turns on w/ ppvar_centerlogic_en; always on for AP */
61 regulator-min-microvolt = <799434>;
62 regulator-max-microvolt = <1049925>;
65 ppvar_centerlogic: ppvar-centerlogic {
66 compatible = "vctrl-regulator";
67 regulator-name = "ppvar_centerlogic";
69 regulator-min-microvolt = <799434>;
70 regulator-max-microvolt = <1049925>;
72 ctrl-supply = <&ppvar_centerlogic_pwm>;
73 ctrl-voltage-range = <799434 1049925>;
75 regulator-settling-time-up-us = <378>;
76 min-slew-down-rate = <225>;
77 ovp-threshold-percent = <16>;
80 /* Schematics call this PPVAR even though it's fixed */
81 ppvar_logic: ppvar-logic {
82 compatible = "regulator-fixed";
83 regulator-name = "ppvar_logic";
85 /* EC turns on w/ ppvar_logic_en; always on for AP */
88 regulator-min-microvolt = <900000>;
89 regulator-max-microvolt = <900000>;
91 vin-supply = <&ppvar_sys>;
94 pp1800_audio: pp1800-audio {
95 compatible = "regulator-fixed";
96 regulator-name = "pp1800_audio";
97 pinctrl-names = "default";
98 pinctrl-0 = <&pp1800_audio_en>;
101 gpio = <&gpio0 2 GPIO_ACTIVE_HIGH>;
106 vin-supply = <&pp1800>;
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>;
117 gpio = <&gpio0 4 GPIO_ACTIVE_HIGH>;
120 * Need to wait 1ms + ramp-up time before we can power on WiFi.
121 * This has been approximated as 8ms total.
123 regulator-enable-ramp-delay = <8000>;
125 vin-supply = <&pp1800>;
128 /* Always on; plain and simple */
129 pp3000_ap: pp3000_emmc: pp3000 {
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>;
139 gpio = <&gpio0 10 GPIO_ACTIVE_HIGH>;
143 regulator-min-microvolt = <1500000>;
144 regulator-max-microvolt = <1500000>;
146 vin-supply = <&pp1800>;
149 pp3300_disp: pp3300-disp {
150 compatible = "regulator-fixed";
151 regulator-name = "pp3300_disp";
152 pinctrl-names = "default";
153 pinctrl-0 = <&pp3300_disp_en>;
156 gpio = <&gpio4 27 GPIO_ACTIVE_HIGH>;
158 startup-delay-us = <2000>;
159 vin-supply = <&pp3300>;
162 /* EC turns on w/ pp3300_usb_en_l */
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";
172 gpio = <&gpio0 4 GPIO_ACTIVE_HIGH>;
174 vin-supply = <&pp3300>;
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.
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>;
190 gpio = <&gpio1 11 GPIO_ACTIVE_HIGH>;
192 vin-supply = <&pp1800_pcie>;
195 backlight: backlight {
196 compatible = "pwm-backlight";
197 brightness-levels = <0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
198 17 18 19 20 21 22 23 24 25 26 27 28 29 30
199 31 32 33 34 35 36 37 38 39 40 41 42 43 44
200 45 46 47 48 49 50 51 52 53 54 55 56 57 58
201 59 60 61 62 63 64 65 66 67 68 69 70 71 72
202 73 74 75 76 77 78 79 80 81 82 83 84 85 86
203 87 88 89 90 91 92 93 94 95 96 97 98 99 100>;
204 default-brightness-level = <51>;
205 enable-gpios = <&gpio1 17 GPIO_ACTIVE_HIGH>;
206 power-supply = <&pp3300_disp>;
207 pinctrl-names = "default";
208 pinctrl-0 = <&bl_en>;
209 pwm-delay-us = <10000>;
214 min-slew-down-rate = <225>;
215 ovp-threshold-percent = <16>;
219 min-slew-down-rate = <225>;
220 ovp-threshold-percent = <16>;
224 min-slew-down-rate = <225>;
225 ovp-threshold-percent = <16>;
229 extcon = <&usbc_extcon0>, <&usbc_extcon1>;
235 rockchip,panel = <&edp_panel>;
239 #address-cells = <1>;
242 edp_out_panel: endpoint@0 {
244 remote-endpoint = <&panel_in_edp>;
253 clock-frequency = <400000>;
255 /* These are relatively safe rise/fall times */
256 i2c-scl-falling-time-ns = <50>;
257 i2c-scl-rising-time-ns = <300>;
259 headsetcodec: rt5514@57 {
260 compatible = "realtek,rt5514";
262 realtek,dmic-init-delay-ms = <20>;
269 clock-frequency = <400000>;
271 /* These are relatively safe rise/fall times */
272 i2c-scl-falling-time-ns = <50>;
273 i2c-scl-rising-time-ns = <300>;
276 * Note strange pullup enable. Apparently this avoids leakage but
277 * still allows us to get nice 4.7K pullups for high speed i2c
278 * transfers. Basically we want the pullup on whenever the ap is
279 * alive, so the "en" pin just gets set to output high.
281 pinctrl-0 = <&i2c5_xfer &ap_i2c_tp_pu_en>;
285 cros_ec_pwm: ec-pwm {
286 compatible = "google,cros-ec-pwm";
290 usbc_extcon1: extcon@1 {
291 compatible = "google,extcon-usbc-cros-ec";
292 google,usb-port-id = <1>;
299 rockchip,codec = <&max98357a &headsetcodec
300 &codec &wacky_spi_audio &cdn_dp>;
304 wacky_spi_audio: spi2@0 {
305 compatible = "realtek,rt5514";
307 interrupt-parent = <&gpio1>;
308 interrupts = <13 IRQ_TYPE_LEVEL_HIGH>;
309 pinctrl-names = "default";
310 pinctrl-0 = <&mic_int>;
311 /* May run faster once verified. */
312 spi-max-frequency = <10000000>;
319 compatible = "pci1b4b,2b42";
320 reg = <0x83010000 0x0 0x00000000 0x0 0x00100000
321 0x83010000 0x0 0x00100000 0x0 0x00100000>;
322 interrupt-parent = <&gpio0>;
323 interrupts = <8 IRQ_TYPE_LEVEL_LOW>;
324 pinctrl-names = "default";
325 pinctrl-0 = <&wlan_host_wake_l>;
332 extcon = <&usbc_extcon1>;
353 extcon = <&usbc_extcon1>;
362 discrete-regulators {
363 pp1500_en: pp1500-en {
364 rockchip,pins = <RK_GPIO0 10 RK_FUNC_GPIO
368 pp1800_audio_en: pp1800-audio-en {
369 rockchip,pins = <RK_GPIO0 2 RK_FUNC_GPIO
373 pp3000_en: pp3000-en {
374 rockchip,pins = <RK_GPIO0 12 RK_FUNC_GPIO
378 pp3300_disp_en: pp3300-disp-en {
379 rockchip,pins = <RK_GPIO4 27 RK_FUNC_GPIO
383 wlan_module_pd_l: wlan-module-pd-l {
384 rockchip,pins = <RK_GPIO0 4 RK_FUNC_GPIO
391 wifi_perst_l: wifi-perst-l {
392 rockchip,pins = <2 27 RK_FUNC_GPIO &pcfg_pull_none>;
395 wlan_host_wake_l: wlan-host-wake-l {
396 rockchip,pins = <0 8 RK_FUNC_GPIO &pcfg_pull_none>;