1 // SPDX-License-Identifier: (GPL-2.0+ OR MIT) 1 // SPDX-License-Identifier: (GPL-2.0+ OR MIT) 2 /* 2 /* 3 * Google Gru-Chromebook shared properties 3 * Google Gru-Chromebook shared properties 4 * 4 * 5 * Copyright 2018 Google, Inc 5 * Copyright 2018 Google, Inc 6 */ 6 */ 7 7 8 #include "rk3399-gru.dtsi" 8 #include "rk3399-gru.dtsi" 9 9 10 / { 10 / { 11 pp900_ap: pp900-ap { 11 pp900_ap: pp900-ap { 12 compatible = "regulator-fixed" 12 compatible = "regulator-fixed"; 13 regulator-name = "pp900_ap"; 13 regulator-name = "pp900_ap"; 14 14 15 /* EC turns on w/ pp900_ap_en; 15 /* EC turns on w/ pp900_ap_en; always on for AP */ 16 regulator-always-on; 16 regulator-always-on; 17 regulator-boot-on; 17 regulator-boot-on; 18 regulator-min-microvolt = <900 18 regulator-min-microvolt = <900000>; 19 regulator-max-microvolt = <900 19 regulator-max-microvolt = <900000>; 20 20 21 vin-supply = <&ppvar_sys>; 21 vin-supply = <&ppvar_sys>; 22 }; 22 }; 23 23 24 /* EC turns on w/ pp900_usb_en */ 24 /* EC turns on w/ pp900_usb_en */ 25 pp900_usb: pp900-ap { 25 pp900_usb: pp900-ap { 26 }; 26 }; 27 27 28 /* EC turns on w/ pp900_pcie_en */ 28 /* EC turns on w/ pp900_pcie_en */ 29 pp900_pcie: pp900-ap { 29 pp900_pcie: pp900-ap { 30 }; 30 }; 31 31 32 pp3000: pp3000 { 32 pp3000: pp3000 { 33 compatible = "regulator-fixed" 33 compatible = "regulator-fixed"; 34 regulator-name = "pp3000"; 34 regulator-name = "pp3000"; 35 pinctrl-names = "default"; 35 pinctrl-names = "default"; 36 pinctrl-0 = <&pp3000_en>; 36 pinctrl-0 = <&pp3000_en>; 37 37 38 enable-active-high; 38 enable-active-high; 39 gpio = <&gpio0 12 GPIO_ACTIVE_ 39 gpio = <&gpio0 12 GPIO_ACTIVE_HIGH>; 40 40 41 regulator-always-on; 41 regulator-always-on; 42 regulator-boot-on; 42 regulator-boot-on; 43 regulator-min-microvolt = <300 43 regulator-min-microvolt = <3000000>; 44 regulator-max-microvolt = <300 44 regulator-max-microvolt = <3000000>; 45 45 46 vin-supply = <&ppvar_sys>; 46 vin-supply = <&ppvar_sys>; 47 }; 47 }; 48 48 49 ppvar_centerlogic_pwm: ppvar-centerlog 49 ppvar_centerlogic_pwm: ppvar-centerlogic-pwm { 50 compatible = "pwm-regulator"; 50 compatible = "pwm-regulator"; 51 regulator-name = "ppvar_center 51 regulator-name = "ppvar_centerlogic_pwm"; 52 52 53 pwms = <&pwm3 0 3337 0>; 53 pwms = <&pwm3 0 3337 0>; 54 pwm-supply = <&ppvar_sys>; 54 pwm-supply = <&ppvar_sys>; 55 pwm-dutycycle-range = <100 0>; 55 pwm-dutycycle-range = <100 0>; 56 pwm-dutycycle-unit = <100>; 56 pwm-dutycycle-unit = <100>; 57 57 58 /* EC turns on w/ ppvar_center 58 /* EC turns on w/ ppvar_centerlogic_en; always on for AP */ 59 regulator-always-on; 59 regulator-always-on; 60 regulator-boot-on; 60 regulator-boot-on; 61 regulator-min-microvolt = <799 61 regulator-min-microvolt = <799434>; 62 regulator-max-microvolt = <104 62 regulator-max-microvolt = <1049925>; 63 }; 63 }; 64 64 65 ppvar_centerlogic: ppvar-centerlogic { 65 ppvar_centerlogic: ppvar-centerlogic { 66 compatible = "vctrl-regulator" 66 compatible = "vctrl-regulator"; 67 regulator-name = "ppvar_center 67 regulator-name = "ppvar_centerlogic"; 68 68 69 regulator-min-microvolt = <799 69 regulator-min-microvolt = <799434>; 70 regulator-max-microvolt = <104 70 regulator-max-microvolt = <1049925>; 71 71 72 ctrl-supply = <&ppvar_centerlo 72 ctrl-supply = <&ppvar_centerlogic_pwm>; 73 ctrl-voltage-range = <799434 1 73 ctrl-voltage-range = <799434 1049925>; 74 74 75 regulator-settling-time-up-us 75 regulator-settling-time-up-us = <378>; 76 min-slew-down-rate = <225>; 76 min-slew-down-rate = <225>; 77 ovp-threshold-percent = <16>; 77 ovp-threshold-percent = <16>; 78 }; 78 }; 79 79 80 /* Schematics call this PPVAR even tho 80 /* Schematics call this PPVAR even though it's fixed */ 81 ppvar_logic: ppvar-logic { 81 ppvar_logic: ppvar-logic { 82 compatible = "regulator-fixed" 82 compatible = "regulator-fixed"; 83 regulator-name = "ppvar_logic" 83 regulator-name = "ppvar_logic"; 84 84 85 /* EC turns on w/ ppvar_logic_ 85 /* EC turns on w/ ppvar_logic_en; always on for AP */ 86 regulator-always-on; 86 regulator-always-on; 87 regulator-boot-on; 87 regulator-boot-on; 88 regulator-min-microvolt = <900 88 regulator-min-microvolt = <900000>; 89 regulator-max-microvolt = <900 89 regulator-max-microvolt = <900000>; 90 90 91 vin-supply = <&ppvar_sys>; 91 vin-supply = <&ppvar_sys>; 92 }; 92 }; 93 93 94 pp1800_audio: pp1800-audio { 94 pp1800_audio: pp1800-audio { 95 compatible = "regulator-fixed" 95 compatible = "regulator-fixed"; 96 regulator-name = "pp1800_audio 96 regulator-name = "pp1800_audio"; 97 pinctrl-names = "default"; 97 pinctrl-names = "default"; 98 pinctrl-0 = <&pp1800_audio_en> 98 pinctrl-0 = <&pp1800_audio_en>; 99 99 100 enable-active-high; 100 enable-active-high; 101 gpio = <&gpio0 2 GPIO_ACTIVE_H 101 gpio = <&gpio0 2 GPIO_ACTIVE_HIGH>; 102 102 103 regulator-always-on; 103 regulator-always-on; 104 regulator-boot-on; 104 regulator-boot-on; 105 105 106 vin-supply = <&pp1800>; 106 vin-supply = <&pp1800>; 107 }; 107 }; 108 108 109 /* gpio is shared with pp3300_wifi_bt 109 /* gpio is shared with pp3300_wifi_bt */ 110 pp1800_pcie: pp1800-pcie { 110 pp1800_pcie: pp1800-pcie { 111 compatible = "regulator-fixed" 111 compatible = "regulator-fixed"; 112 regulator-name = "pp1800_pcie" 112 regulator-name = "pp1800_pcie"; 113 pinctrl-names = "default"; 113 pinctrl-names = "default"; 114 pinctrl-0 = <&wlan_module_pd_l 114 pinctrl-0 = <&wlan_module_pd_l>; 115 115 116 enable-active-high; 116 enable-active-high; 117 gpio = <&gpio0 4 GPIO_ACTIVE_H 117 gpio = <&gpio0 4 GPIO_ACTIVE_HIGH>; 118 118 119 /* 119 /* 120 * Need to wait 1ms + ramp-up 120 * Need to wait 1ms + ramp-up time before we can power on WiFi. 121 * This has been approximated 121 * This has been approximated as 8ms total. 122 */ 122 */ 123 regulator-enable-ramp-delay = 123 regulator-enable-ramp-delay = <8000>; 124 124 125 vin-supply = <&pp1800>; 125 vin-supply = <&pp1800>; 126 }; 126 }; 127 127 128 /* Always on; plain and simple */ 128 /* Always on; plain and simple */ 129 pp3000_ap: pp3000_emmc: pp3000 { 129 pp3000_ap: pp3000_emmc: pp3000 { 130 }; 130 }; 131 131 132 pp1500_ap_io: pp1500-ap-io { 132 pp1500_ap_io: pp1500-ap-io { 133 compatible = "regulator-fixed" 133 compatible = "regulator-fixed"; 134 regulator-name = "pp1500_ap_io 134 regulator-name = "pp1500_ap_io"; 135 pinctrl-names = "default"; 135 pinctrl-names = "default"; 136 pinctrl-0 = <&pp1500_en>; 136 pinctrl-0 = <&pp1500_en>; 137 137 138 enable-active-high; 138 enable-active-high; 139 gpio = <&gpio0 10 GPIO_ACTIVE_ 139 gpio = <&gpio0 10 GPIO_ACTIVE_HIGH>; 140 140 141 regulator-always-on; 141 regulator-always-on; 142 regulator-boot-on; 142 regulator-boot-on; 143 regulator-min-microvolt = <150 143 regulator-min-microvolt = <1500000>; 144 regulator-max-microvolt = <150 144 regulator-max-microvolt = <1500000>; 145 145 146 vin-supply = <&pp1800>; 146 vin-supply = <&pp1800>; 147 }; 147 }; 148 148 149 pp3300_disp: pp3300-disp { 149 pp3300_disp: pp3300-disp { 150 compatible = "regulator-fixed" 150 compatible = "regulator-fixed"; 151 regulator-name = "pp3300_disp" 151 regulator-name = "pp3300_disp"; 152 pinctrl-names = "default"; 152 pinctrl-names = "default"; 153 pinctrl-0 = <&pp3300_disp_en>; 153 pinctrl-0 = <&pp3300_disp_en>; 154 154 155 enable-active-high; 155 enable-active-high; 156 gpio = <&gpio4 27 GPIO_ACTIVE_ 156 gpio = <&gpio4 27 GPIO_ACTIVE_HIGH>; 157 157 158 startup-delay-us = <2000>; 158 startup-delay-us = <2000>; 159 vin-supply = <&pp3300>; 159 vin-supply = <&pp3300>; 160 }; 160 }; 161 161 162 /* EC turns on w/ pp3300_usb_en_l */ 162 /* EC turns on w/ pp3300_usb_en_l */ 163 pp3300_usb: pp3300 { 163 pp3300_usb: pp3300 { 164 }; 164 }; 165 165 166 /* gpio is shared with pp1800_pcie and 166 /* gpio is shared with pp1800_pcie and pinctrl is set there */ 167 pp3300_wifi_bt: pp3300-wifi-bt { 167 pp3300_wifi_bt: pp3300-wifi-bt { 168 compatible = "regulator-fixed" 168 compatible = "regulator-fixed"; 169 regulator-name = "pp3300_wifi_ 169 regulator-name = "pp3300_wifi_bt"; 170 170 171 enable-active-high; 171 enable-active-high; 172 gpio = <&gpio0 4 GPIO_ACTIVE_H 172 gpio = <&gpio0 4 GPIO_ACTIVE_HIGH>; 173 173 174 vin-supply = <&pp3300>; 174 vin-supply = <&pp3300>; 175 }; 175 }; 176 176 177 /* 177 /* 178 * This is a bit of a hack. The WiFi m 178 * This is a bit of a hack. The WiFi module should be reset at least 179 * 1ms after its regulators have rampe 179 * 1ms after its regulators have ramped up (max rampup time is ~7ms). 180 * With some stretching of the imagina 180 * With some stretching of the imagination, we can call the 1.8V 181 * regulator a supply. 181 * regulator a supply. 182 */ 182 */ 183 wlan_pd_n: wlan-pd-n { 183 wlan_pd_n: wlan-pd-n { 184 compatible = "regulator-fixed" 184 compatible = "regulator-fixed"; 185 regulator-name = "wlan_pd_n"; 185 regulator-name = "wlan_pd_n"; 186 pinctrl-names = "default"; 186 pinctrl-names = "default"; 187 pinctrl-0 = <&wlan_module_rese 187 pinctrl-0 = <&wlan_module_reset_l>; 188 188 189 enable-active-high; 189 enable-active-high; 190 gpio = <&gpio1 11 GPIO_ACTIVE_ 190 gpio = <&gpio1 11 GPIO_ACTIVE_HIGH>; 191 191 192 vin-supply = <&pp1800_pcie>; 192 vin-supply = <&pp1800_pcie>; 193 }; 193 }; 194 194 195 backlight: backlight { 195 backlight: backlight { 196 compatible = "pwm-backlight"; 196 compatible = "pwm-backlight"; 197 enable-gpios = <&gpio1 17 GPIO 197 enable-gpios = <&gpio1 17 GPIO_ACTIVE_HIGH>; 198 power-supply = <&pp3300_disp>; 198 power-supply = <&pp3300_disp>; 199 pinctrl-names = "default"; 199 pinctrl-names = "default"; 200 pinctrl-0 = <&bl_en>; 200 pinctrl-0 = <&bl_en>; 201 }; 201 }; 202 202 203 gpio_keys: gpio-keys { 203 gpio_keys: gpio-keys { 204 compatible = "gpio-keys"; 204 compatible = "gpio-keys"; 205 pinctrl-names = "default"; 205 pinctrl-names = "default"; 206 pinctrl-0 = <&bt_host_wake_l>; 206 pinctrl-0 = <&bt_host_wake_l>; 207 207 208 wake_on_bt: key-wake-on-bt { 208 wake_on_bt: key-wake-on-bt { 209 label = "Wake-on-Bluet 209 label = "Wake-on-Bluetooth"; 210 gpios = <&gpio0 3 GPIO 210 gpios = <&gpio0 3 GPIO_ACTIVE_LOW>; 211 linux,code = <KEY_WAKE 211 linux,code = <KEY_WAKEUP>; 212 wakeup-source; 212 wakeup-source; 213 }; 213 }; 214 }; 214 }; 215 }; 215 }; 216 216 217 &ppvar_bigcpu { 217 &ppvar_bigcpu { 218 min-slew-down-rate = <225>; 218 min-slew-down-rate = <225>; 219 ovp-threshold-percent = <16>; 219 ovp-threshold-percent = <16>; 220 }; 220 }; 221 221 222 &ppvar_litcpu { 222 &ppvar_litcpu { 223 min-slew-down-rate = <225>; 223 min-slew-down-rate = <225>; 224 ovp-threshold-percent = <16>; 224 ovp-threshold-percent = <16>; 225 }; 225 }; 226 226 227 &ppvar_gpu { 227 &ppvar_gpu { 228 min-slew-down-rate = <225>; 228 min-slew-down-rate = <225>; 229 ovp-threshold-percent = <16>; 229 ovp-threshold-percent = <16>; 230 }; 230 }; 231 231 232 &cdn_dp { 232 &cdn_dp { 233 extcon = <&usbc_extcon0>, <&usbc_extco 233 extcon = <&usbc_extcon0>, <&usbc_extcon1>; 234 }; 234 }; 235 235 236 &dmc { 236 &dmc { 237 center-supply = <&ppvar_centerlogic>; 237 center-supply = <&ppvar_centerlogic>; 238 rockchip,pd-idle-dis-freq-hz = <800000 238 rockchip,pd-idle-dis-freq-hz = <800000000>; 239 rockchip,sr-idle-dis-freq-hz = <800000 239 rockchip,sr-idle-dis-freq-hz = <800000000>; 240 rockchip,sr-mc-gate-idle-dis-freq-hz = 240 rockchip,sr-mc-gate-idle-dis-freq-hz = <800000000>; 241 }; 241 }; 242 242 243 &edp { 243 &edp { 244 status = "okay"; 244 status = "okay"; 245 245 246 /* 246 /* 247 * eDP PHY/clk don't sync reliably at 247 * eDP PHY/clk don't sync reliably at anything other than 24 MHz. Only 248 * set this here, because rk3399-gru.d 248 * set this here, because rk3399-gru.dtsi ensures we can generate this 249 * off GPLL=600MHz, whereas some other 249 * off GPLL=600MHz, whereas some other RK3399 boards may not. 250 */ 250 */ 251 assigned-clocks = <&cru PCLK_EDP>; 251 assigned-clocks = <&cru PCLK_EDP>; 252 assigned-clock-rates = <24000000>; 252 assigned-clock-rates = <24000000>; 253 253 254 ports { 254 ports { 255 edp_out: port@1 { 255 edp_out: port@1 { 256 reg = <1>; 256 reg = <1>; 257 #address-cells = <1>; 257 #address-cells = <1>; 258 #size-cells = <0>; 258 #size-cells = <0>; 259 259 260 edp_out_panel: endpoin 260 edp_out_panel: endpoint@0 { 261 reg = <0>; 261 reg = <0>; 262 remote-endpoin 262 remote-endpoint = <&panel_in_edp>; 263 }; 263 }; 264 }; 264 }; 265 }; 265 }; 266 }; 266 }; 267 267 268 &gpio0 { 268 &gpio0 { 269 gpio-line-names = /* GPIO0 A 0-7 */ 269 gpio-line-names = /* GPIO0 A 0-7 */ 270 "AP_RTC_CLK_IN", 270 "AP_RTC_CLK_IN", 271 "EC_AP_INT_L", 271 "EC_AP_INT_L", 272 "PP1800_AUDIO_EN", 272 "PP1800_AUDIO_EN", 273 "BT_HOST_WAKE_L", 273 "BT_HOST_WAKE_L", 274 "WLAN_MODULE_PD_L", 274 "WLAN_MODULE_PD_L", 275 "H1_INT_OD_L", 275 "H1_INT_OD_L", 276 "CENTERLOGIC_DVS_PWM 276 "CENTERLOGIC_DVS_PWM", 277 "", 277 "", 278 278 279 /* GPIO0 B 0-4 */ 279 /* GPIO0 B 0-4 */ 280 "WIFI_HOST_WAKE_L", 280 "WIFI_HOST_WAKE_L", 281 "PMUIO2_33_18_L", 281 "PMUIO2_33_18_L", 282 "PP1500_EN", 282 "PP1500_EN", 283 "AP_EC_WARM_RESET_RE 283 "AP_EC_WARM_RESET_REQ", 284 "PP3000_EN"; 284 "PP3000_EN"; 285 }; 285 }; 286 286 287 &gpio1 { 287 &gpio1 { 288 gpio-line-names = /* GPIO1 A 0-7 */ 288 gpio-line-names = /* GPIO1 A 0-7 */ 289 "", 289 "", 290 "", 290 "", 291 "SPK_PA_EN", 291 "SPK_PA_EN", 292 "", 292 "", 293 "TRACKPAD_INT_L", 293 "TRACKPAD_INT_L", 294 "AP_EC_S3_S0_L", 294 "AP_EC_S3_S0_L", 295 "AP_EC_OVERTEMP", 295 "AP_EC_OVERTEMP", 296 "AP_SPI_FLASH_MISO", 296 "AP_SPI_FLASH_MISO", 297 297 298 /* GPIO1 B 0-7 */ 298 /* GPIO1 B 0-7 */ 299 "AP_SPI_FLASH_MOSI_R 299 "AP_SPI_FLASH_MOSI_R", 300 "AP_SPI_FLASH_CLK_R" 300 "AP_SPI_FLASH_CLK_R", 301 "AP_SPI_FLASH_CS_L_R 301 "AP_SPI_FLASH_CS_L_R", 302 "WLAN_MODULE_RESET_L 302 "WLAN_MODULE_RESET_L", 303 "WIFI_DISABLE_L", 303 "WIFI_DISABLE_L", 304 "MIC_INT", 304 "MIC_INT", 305 "", 305 "", 306 "AP_I2C_DVS_SDA", 306 "AP_I2C_DVS_SDA", 307 307 308 /* GPIO1 C 0-7 */ 308 /* GPIO1 C 0-7 */ 309 "AP_I2C_DVS_SCL", 309 "AP_I2C_DVS_SCL", 310 "AP_BL_EN", 310 "AP_BL_EN", 311 /* 311 /* 312 * AP_FLASH_WP is cr 312 * AP_FLASH_WP is crossystem ABI. Schematics call it 313 * AP_FW_WP or CPU1_ 313 * AP_FW_WP or CPU1_FW_WP, depending on the variant. 314 */ 314 */ 315 "AP_FLASH_WP", 315 "AP_FLASH_WP", 316 "LITCPU_DVS_PWM", 316 "LITCPU_DVS_PWM", 317 "AP_I2C_AUDIO_SDA", 317 "AP_I2C_AUDIO_SDA", 318 "AP_I2C_AUDIO_SCL", 318 "AP_I2C_AUDIO_SCL", 319 "", 319 "", 320 "HEADSET_INT_L"; 320 "HEADSET_INT_L"; 321 }; 321 }; 322 322 323 &gpio2 { 323 &gpio2 { 324 gpio-line-names = /* GPIO2 A 0-7 */ 324 gpio-line-names = /* GPIO2 A 0-7 */ 325 "", 325 "", 326 "", 326 "", 327 "SD_IO_PWR_EN", 327 "SD_IO_PWR_EN", 328 "", 328 "", 329 "", 329 "", 330 "", 330 "", 331 "", 331 "", 332 "", 332 "", 333 333 334 /* GPIO2 B 0-7 */ 334 /* GPIO2 B 0-7 */ 335 "", 335 "", 336 "", 336 "", 337 "", 337 "", 338 "", 338 "", 339 "", 339 "", 340 "", 340 "", 341 "", 341 "", 342 "", 342 "", 343 343 344 /* GPIO2 C 0-7 */ 344 /* GPIO2 C 0-7 */ 345 "", 345 "", 346 "", 346 "", 347 "", 347 "", 348 "", 348 "", 349 "AP_SPI_EC_MISO", 349 "AP_SPI_EC_MISO", 350 "AP_SPI_EC_MOSI", 350 "AP_SPI_EC_MOSI", 351 "AP_SPI_EC_CLK", 351 "AP_SPI_EC_CLK", 352 "AP_SPI_EC_CS_L", 352 "AP_SPI_EC_CS_L", 353 353 354 /* GPIO2 D 0-4 */ 354 /* GPIO2 D 0-4 */ 355 "BT_DEV_WAKE_L", 355 "BT_DEV_WAKE_L", 356 "", 356 "", 357 "WIFI_PCIE_CLKREQ_L" 357 "WIFI_PCIE_CLKREQ_L", 358 "WIFI_PERST_L", 358 "WIFI_PERST_L", 359 "SD_PWR_3000_1800_L" 359 "SD_PWR_3000_1800_L"; 360 }; 360 }; 361 361 362 &gpio3 { 362 &gpio3 { 363 gpio-line-names = /* GPIO3 A 0-7 */ 363 gpio-line-names = /* GPIO3 A 0-7 */ 364 "", 364 "", 365 "", 365 "", 366 "", 366 "", 367 "", 367 "", 368 "AP_SPI_TPM_MISO", 368 "AP_SPI_TPM_MISO", 369 "AP_SPI_TPM_MOSI_R", 369 "AP_SPI_TPM_MOSI_R", 370 "AP_SPI_TPM_CLK_R", 370 "AP_SPI_TPM_CLK_R", 371 "AP_SPI_TPM_CS_L_R", 371 "AP_SPI_TPM_CS_L_R", 372 372 373 /* GPIO3 B 0-7 */ 373 /* GPIO3 B 0-7 */ 374 "EC_IN_RW", 374 "EC_IN_RW", 375 "", 375 "", 376 "AP_I2C_TP_SDA", 376 "AP_I2C_TP_SDA", 377 "AP_I2C_TP_SCL", 377 "AP_I2C_TP_SCL", 378 "AP_I2C_TP_PU_EN", 378 "AP_I2C_TP_PU_EN", 379 "TOUCH_INT_L", 379 "TOUCH_INT_L", 380 "", 380 "", 381 "", 381 "", 382 382 383 /* GPIO3 C 0-7 */ 383 /* GPIO3 C 0-7 */ 384 "", 384 "", 385 "", 385 "", 386 "", 386 "", 387 "", 387 "", 388 "", 388 "", 389 "", 389 "", 390 "", 390 "", 391 "", 391 "", 392 392 393 /* GPIO3 D 0-7 */ 393 /* GPIO3 D 0-7 */ 394 "I2S0_SCLK", 394 "I2S0_SCLK", 395 "I2S0_LRCK_RX", 395 "I2S0_LRCK_RX", 396 "I2S0_LRCK_TX", 396 "I2S0_LRCK_TX", 397 "I2S0_SDI_0", 397 "I2S0_SDI_0", 398 "I2S0_SDI_1", 398 "I2S0_SDI_1", 399 "", 399 "", 400 "I2S0_SDO_1", 400 "I2S0_SDO_1", 401 "I2S0_SDO_0"; 401 "I2S0_SDO_0"; 402 }; 402 }; 403 403 404 &gpio4 { 404 &gpio4 { 405 gpio-line-names = /* GPIO4 A 0-7 */ 405 gpio-line-names = /* GPIO4 A 0-7 */ 406 "I2S_MCLK", 406 "I2S_MCLK", 407 "AP_I2C_MIC_SDA", 407 "AP_I2C_MIC_SDA", 408 "AP_I2C_MIC_SCL", 408 "AP_I2C_MIC_SCL", 409 "", 409 "", 410 "", 410 "", 411 "", 411 "", 412 "", 412 "", 413 "", 413 "", 414 414 415 /* GPIO4 B 0-7 */ 415 /* GPIO4 B 0-7 */ 416 "", 416 "", 417 "", 417 "", 418 "", 418 "", 419 "", 419 "", 420 "", 420 "", 421 "", 421 "", 422 "", 422 "", 423 "", 423 "", 424 424 425 /* GPIO4 C 0-7 */ 425 /* GPIO4 C 0-7 */ 426 "AP_I2C_TS_SDA", 426 "AP_I2C_TS_SDA", 427 "AP_I2C_TS_SCL", 427 "AP_I2C_TS_SCL", 428 "GPU_DVS_PWM", 428 "GPU_DVS_PWM", 429 "UART_DBG_TX_AP_RX", 429 "UART_DBG_TX_AP_RX", 430 "UART_AP_TX_DBG_RX", 430 "UART_AP_TX_DBG_RX", 431 "", 431 "", 432 "BIGCPU_DVS_PWM", 432 "BIGCPU_DVS_PWM", 433 "EDP_HPD_3V0", 433 "EDP_HPD_3V0", 434 434 435 /* GPIO4 D 0-5 */ 435 /* GPIO4 D 0-5 */ 436 "SD_CARD_DET_L", 436 "SD_CARD_DET_L", 437 "USB_DP_HPD", 437 "USB_DP_HPD", 438 "TOUCH_RESET_L", 438 "TOUCH_RESET_L", 439 "PP3300_DISP_EN", 439 "PP3300_DISP_EN", 440 "", 440 "", 441 "SD_SLOT_PWR_EN"; 441 "SD_SLOT_PWR_EN"; 442 }; 442 }; 443 443 444 ap_i2c_mic: &i2c1 { 444 ap_i2c_mic: &i2c1 { 445 status = "okay"; 445 status = "okay"; 446 446 447 clock-frequency = <400000>; 447 clock-frequency = <400000>; 448 448 449 /* These are relatively safe rise/fall 449 /* These are relatively safe rise/fall times */ 450 i2c-scl-falling-time-ns = <50>; 450 i2c-scl-falling-time-ns = <50>; 451 i2c-scl-rising-time-ns = <300>; 451 i2c-scl-rising-time-ns = <300>; 452 452 453 headsetcodec: rt5514@57 { 453 headsetcodec: rt5514@57 { 454 compatible = "realtek,rt5514"; 454 compatible = "realtek,rt5514"; 455 reg = <0x57>; 455 reg = <0x57>; 456 realtek,dmic-init-delay-ms = < 456 realtek,dmic-init-delay-ms = <20>; 457 }; 457 }; 458 }; 458 }; 459 459 460 ap_i2c_tp: &i2c5 { 460 ap_i2c_tp: &i2c5 { 461 status = "okay"; 461 status = "okay"; 462 462 463 clock-frequency = <400000>; 463 clock-frequency = <400000>; 464 464 465 /* These are relatively safe rise/fall 465 /* These are relatively safe rise/fall times */ 466 i2c-scl-falling-time-ns = <50>; 466 i2c-scl-falling-time-ns = <50>; 467 i2c-scl-rising-time-ns = <300>; 467 i2c-scl-rising-time-ns = <300>; 468 468 469 /* 469 /* 470 * Note strange pullup enable. Appare 470 * Note strange pullup enable. Apparently this avoids leakage but 471 * still allows us to get nice 4.7K pu 471 * still allows us to get nice 4.7K pullups for high speed i2c 472 * transfers. Basically we want the p 472 * transfers. Basically we want the pullup on whenever the ap is 473 * alive, so the "en" pin just gets se 473 * alive, so the "en" pin just gets set to output high. 474 */ 474 */ 475 pinctrl-0 = <&i2c5_xfer &ap_i2c_tp_pu_ 475 pinctrl-0 = <&i2c5_xfer &ap_i2c_tp_pu_en>; 476 }; 476 }; 477 477 478 &cros_ec { 478 &cros_ec { 479 cros_ec_pwm: pwm { 479 cros_ec_pwm: pwm { 480 compatible = "google,cros-ec-p 480 compatible = "google,cros-ec-pwm"; 481 #pwm-cells = <1>; 481 #pwm-cells = <1>; 482 }; 482 }; 483 483 484 usbc_extcon1: extcon1 { 484 usbc_extcon1: extcon1 { 485 compatible = "google,extcon-us 485 compatible = "google,extcon-usbc-cros-ec"; 486 google,usb-port-id = <1>; 486 google,usb-port-id = <1>; 487 }; 487 }; 488 }; 488 }; 489 489 490 &sound { 490 &sound { 491 rockchip,codec = <&max98357a &headsetc 491 rockchip,codec = <&max98357a &headsetcodec 492 &codec &wacky_spi_au 492 &codec &wacky_spi_audio &cdn_dp>; 493 }; 493 }; 494 494 495 &spi2 { 495 &spi2 { 496 wacky_spi_audio: spi2@0 { 496 wacky_spi_audio: spi2@0 { 497 compatible = "realtek,rt5514"; 497 compatible = "realtek,rt5514"; 498 reg = <0>; 498 reg = <0>; 499 interrupt-parent = <&gpio1>; 499 interrupt-parent = <&gpio1>; 500 interrupts = <13 IRQ_TYPE_LEVE 500 interrupts = <13 IRQ_TYPE_LEVEL_HIGH>; 501 pinctrl-names = "default"; 501 pinctrl-names = "default"; 502 pinctrl-0 = <&mic_int>; 502 pinctrl-0 = <&mic_int>; 503 /* May run faster once verifie 503 /* May run faster once verified. */ 504 spi-max-frequency = <10000000> 504 spi-max-frequency = <10000000>; 505 wakeup-source; 505 wakeup-source; 506 }; 506 }; 507 }; 507 }; 508 508 509 &pci_rootport { 509 &pci_rootport { 510 mvl_wifi: wifi@0,0 { 510 mvl_wifi: wifi@0,0 { 511 compatible = "pci1b4b,2b42"; 511 compatible = "pci1b4b,2b42"; 512 reg = <0x0000 0x0 0x0 0x0 0x0> 512 reg = <0x0000 0x0 0x0 0x0 0x0>; 513 interrupt-parent = <&gpio0>; 513 interrupt-parent = <&gpio0>; 514 interrupts = <8 IRQ_TYPE_LEVEL 514 interrupts = <8 IRQ_TYPE_LEVEL_LOW>; 515 pinctrl-names = "default"; 515 pinctrl-names = "default"; 516 pinctrl-0 = <&wlan_host_wake_l 516 pinctrl-0 = <&wlan_host_wake_l>; 517 wakeup-source; 517 wakeup-source; 518 }; 518 }; 519 }; 519 }; 520 520 521 &tcphy1 { 521 &tcphy1 { 522 status = "okay"; 522 status = "okay"; 523 extcon = <&usbc_extcon1>; 523 extcon = <&usbc_extcon1>; 524 }; 524 }; 525 525 526 &u2phy1 { 526 &u2phy1 { 527 status = "okay"; 527 status = "okay"; 528 }; 528 }; 529 529 530 &usb_host0_ehci { 530 &usb_host0_ehci { 531 status = "okay"; 531 status = "okay"; 532 }; 532 }; 533 533 534 &usb_host1_ehci { 534 &usb_host1_ehci { 535 status = "okay"; 535 status = "okay"; 536 }; 536 }; 537 537 538 &usb_host1_ohci { 538 &usb_host1_ohci { 539 status = "okay"; 539 status = "okay"; 540 }; 540 }; 541 541 542 &usbdrd3_1 { 542 &usbdrd3_1 { 543 status = "okay"; 543 status = "okay"; 544 extcon = <&usbc_extcon1>; 544 extcon = <&usbc_extcon1>; 545 }; 545 }; 546 546 547 &usbdrd_dwc3_1 { 547 &usbdrd_dwc3_1 { 548 status = "okay"; 548 status = "okay"; 549 dr_mode = "host"; 549 dr_mode = "host"; 550 }; 550 }; 551 551 552 &pinctrl { 552 &pinctrl { 553 discrete-regulators { 553 discrete-regulators { 554 pp1500_en: pp1500-en { 554 pp1500_en: pp1500-en { 555 rockchip,pins = <0 RK_ 555 rockchip,pins = <0 RK_PB2 RK_FUNC_GPIO 556 &pcfg 556 &pcfg_pull_none>; 557 }; 557 }; 558 558 559 pp1800_audio_en: pp1800-audio- 559 pp1800_audio_en: pp1800-audio-en { 560 rockchip,pins = <0 RK_ 560 rockchip,pins = <0 RK_PA2 RK_FUNC_GPIO 561 &pcfg 561 &pcfg_pull_down>; 562 }; 562 }; 563 563 564 pp3000_en: pp3000-en { 564 pp3000_en: pp3000-en { 565 rockchip,pins = <0 RK_ 565 rockchip,pins = <0 RK_PB4 RK_FUNC_GPIO 566 &pcfg 566 &pcfg_pull_none>; 567 }; 567 }; 568 568 569 pp3300_disp_en: pp3300-disp-en 569 pp3300_disp_en: pp3300-disp-en { 570 rockchip,pins = <4 RK_ 570 rockchip,pins = <4 RK_PD3 RK_FUNC_GPIO 571 &pcfg 571 &pcfg_pull_none>; 572 }; 572 }; 573 573 574 wlan_module_pd_l: wlan-module- 574 wlan_module_pd_l: wlan-module-pd-l { 575 rockchip,pins = <0 RK_ 575 rockchip,pins = <0 RK_PA4 RK_FUNC_GPIO 576 &pcfg 576 &pcfg_pull_down>; 577 }; 577 }; 578 }; 578 }; 579 }; 579 }; 580 580 581 &wifi { 581 &wifi { 582 wifi_perst_l: wifi-perst-l { 582 wifi_perst_l: wifi-perst-l { 583 rockchip,pins = <2 RK_PD3 RK_F 583 rockchip,pins = <2 RK_PD3 RK_FUNC_GPIO &pcfg_pull_none>; 584 }; 584 }; 585 585 586 wlan_host_wake_l: wlan-host-wake-l { 586 wlan_host_wake_l: wlan-host-wake-l { 587 /* Kevin has an external pull 587 /* Kevin has an external pull up, but Bob does not */ 588 rockchip,pins = <0 RK_PB0 RK_F 588 rockchip,pins = <0 RK_PB0 RK_FUNC_GPIO &pcfg_pull_none>; 589 }; 589 }; 590 }; 590 };
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.