1c66ec88fSEmmanuel Vadot// SPDX-License-Identifier: (GPL-2.0+ OR MIT) 2c66ec88fSEmmanuel Vadot/* 3c66ec88fSEmmanuel Vadot * Copyright (c) 2018 Fuzhou Rockchip Electronics Co., Ltd 4c66ec88fSEmmanuel Vadot */ 5c66ec88fSEmmanuel Vadot 6c66ec88fSEmmanuel Vadot/dts-v1/; 7c66ec88fSEmmanuel Vadot#include <dt-bindings/gpio/gpio.h> 8c66ec88fSEmmanuel Vadot#include <dt-bindings/input/input.h> 9c66ec88fSEmmanuel Vadot#include <dt-bindings/pinctrl/rockchip.h> 10c66ec88fSEmmanuel Vadot#include "px30.dtsi" 11c66ec88fSEmmanuel Vadot 12c66ec88fSEmmanuel Vadot/ { 13c66ec88fSEmmanuel Vadot model = "Rockchip PX30 EVB"; 14c66ec88fSEmmanuel Vadot compatible = "rockchip,px30-evb", "rockchip,px30"; 15c66ec88fSEmmanuel Vadot 162eb4d8dcSEmmanuel Vadot aliases { 17*8d13bc63SEmmanuel Vadot ethernet0 = &gmac; 182eb4d8dcSEmmanuel Vadot mmc0 = &sdmmc; 192eb4d8dcSEmmanuel Vadot mmc1 = &sdio; 202eb4d8dcSEmmanuel Vadot mmc2 = &emmc; 212eb4d8dcSEmmanuel Vadot }; 222eb4d8dcSEmmanuel Vadot 23c66ec88fSEmmanuel Vadot chosen { 24c66ec88fSEmmanuel Vadot stdout-path = "serial5:115200n8"; 25c66ec88fSEmmanuel Vadot }; 26c66ec88fSEmmanuel Vadot 27c66ec88fSEmmanuel Vadot adc-keys { 28c66ec88fSEmmanuel Vadot compatible = "adc-keys"; 29c66ec88fSEmmanuel Vadot io-channels = <&saradc 2>; 30c66ec88fSEmmanuel Vadot io-channel-names = "buttons"; 31c66ec88fSEmmanuel Vadot keyup-threshold-microvolt = <1800000>; 32c66ec88fSEmmanuel Vadot poll-interval = <100>; 33c66ec88fSEmmanuel Vadot 347ef62cebSEmmanuel Vadot button-esc { 35c66ec88fSEmmanuel Vadot label = "esc"; 36c66ec88fSEmmanuel Vadot linux,code = <KEY_ESC>; 37c66ec88fSEmmanuel Vadot press-threshold-microvolt = <1310000>; 38c66ec88fSEmmanuel Vadot }; 39c66ec88fSEmmanuel Vadot 407ef62cebSEmmanuel Vadot button-home { 41c66ec88fSEmmanuel Vadot label = "home"; 42c66ec88fSEmmanuel Vadot linux,code = <KEY_HOME>; 43c66ec88fSEmmanuel Vadot press-threshold-microvolt = <624000>; 44c66ec88fSEmmanuel Vadot }; 45c66ec88fSEmmanuel Vadot 467ef62cebSEmmanuel Vadot button-menu { 47c66ec88fSEmmanuel Vadot label = "menu"; 48c66ec88fSEmmanuel Vadot linux,code = <KEY_MENU>; 49c66ec88fSEmmanuel Vadot press-threshold-microvolt = <987000>; 50c66ec88fSEmmanuel Vadot }; 51c66ec88fSEmmanuel Vadot 527ef62cebSEmmanuel Vadot button-down { 53c66ec88fSEmmanuel Vadot label = "volume down"; 54c66ec88fSEmmanuel Vadot linux,code = <KEY_VOLUMEDOWN>; 55c66ec88fSEmmanuel Vadot press-threshold-microvolt = <300000>; 56c66ec88fSEmmanuel Vadot }; 57c66ec88fSEmmanuel Vadot 587ef62cebSEmmanuel Vadot button-up { 59c66ec88fSEmmanuel Vadot label = "volume up"; 60c66ec88fSEmmanuel Vadot linux,code = <KEY_VOLUMEUP>; 61c66ec88fSEmmanuel Vadot press-threshold-microvolt = <17000>; 62c66ec88fSEmmanuel Vadot }; 63c66ec88fSEmmanuel Vadot }; 64c66ec88fSEmmanuel Vadot 65c66ec88fSEmmanuel Vadot backlight: backlight { 66c66ec88fSEmmanuel Vadot compatible = "pwm-backlight"; 67c66ec88fSEmmanuel Vadot pwms = <&pwm1 0 25000 0>; 68c66ec88fSEmmanuel Vadot power-supply = <&vcc3v3_lcd>; 69c66ec88fSEmmanuel Vadot }; 70c66ec88fSEmmanuel Vadot 71c66ec88fSEmmanuel Vadot emmc_pwrseq: emmc-pwrseq { 72c66ec88fSEmmanuel Vadot compatible = "mmc-pwrseq-emmc"; 73c66ec88fSEmmanuel Vadot pinctrl-0 = <&emmc_reset>; 74c66ec88fSEmmanuel Vadot pinctrl-names = "default"; 75c66ec88fSEmmanuel Vadot reset-gpios = <&gpio1 RK_PB3 GPIO_ACTIVE_HIGH>; 76c66ec88fSEmmanuel Vadot }; 77c66ec88fSEmmanuel Vadot 78c66ec88fSEmmanuel Vadot sdio_pwrseq: sdio-pwrseq { 79c66ec88fSEmmanuel Vadot compatible = "mmc-pwrseq-simple"; 80c66ec88fSEmmanuel Vadot pinctrl-names = "default"; 81c66ec88fSEmmanuel Vadot pinctrl-0 = <&wifi_enable_h>; 82c66ec88fSEmmanuel Vadot 83c66ec88fSEmmanuel Vadot /* 84c66ec88fSEmmanuel Vadot * On the module itself this is one of these (depending 85c66ec88fSEmmanuel Vadot * on the actual card populated): 86c66ec88fSEmmanuel Vadot * - SDIO_RESET_L_WL_REG_ON 87c66ec88fSEmmanuel Vadot * - PDN (power down when low) 88c66ec88fSEmmanuel Vadot */ 89c66ec88fSEmmanuel Vadot reset-gpios = <&gpio0 RK_PA2 GPIO_ACTIVE_LOW>; /* GPIO3_A4 */ 90c66ec88fSEmmanuel Vadot }; 91c66ec88fSEmmanuel Vadot 92c66ec88fSEmmanuel Vadot vcc5v0_sys: vccsys { 93c66ec88fSEmmanuel Vadot compatible = "regulator-fixed"; 94c66ec88fSEmmanuel Vadot regulator-name = "vcc5v0_sys"; 95c66ec88fSEmmanuel Vadot regulator-always-on; 96c66ec88fSEmmanuel Vadot regulator-boot-on; 97c66ec88fSEmmanuel Vadot regulator-min-microvolt = <5000000>; 98c66ec88fSEmmanuel Vadot regulator-max-microvolt = <5000000>; 99c66ec88fSEmmanuel Vadot }; 100c66ec88fSEmmanuel Vadot}; 101c66ec88fSEmmanuel Vadot 102c66ec88fSEmmanuel Vadot&cpu0 { 103c66ec88fSEmmanuel Vadot cpu-supply = <&vdd_arm>; 104c66ec88fSEmmanuel Vadot}; 105c66ec88fSEmmanuel Vadot 106c66ec88fSEmmanuel Vadot&cpu1 { 107c66ec88fSEmmanuel Vadot cpu-supply = <&vdd_arm>; 108c66ec88fSEmmanuel Vadot}; 109c66ec88fSEmmanuel Vadot 110c66ec88fSEmmanuel Vadot&cpu2 { 111c66ec88fSEmmanuel Vadot cpu-supply = <&vdd_arm>; 112c66ec88fSEmmanuel Vadot}; 113c66ec88fSEmmanuel Vadot 114c66ec88fSEmmanuel Vadot&cpu3 { 115c66ec88fSEmmanuel Vadot cpu-supply = <&vdd_arm>; 116c66ec88fSEmmanuel Vadot}; 117c66ec88fSEmmanuel Vadot 1188cc087a1SEmmanuel Vadot&csi_dphy { 1198cc087a1SEmmanuel Vadot status = "okay"; 1208cc087a1SEmmanuel Vadot}; 1218cc087a1SEmmanuel Vadot 122c66ec88fSEmmanuel Vadot&display_subsystem { 123c66ec88fSEmmanuel Vadot status = "okay"; 124c66ec88fSEmmanuel Vadot}; 125c66ec88fSEmmanuel Vadot 126c66ec88fSEmmanuel Vadot&dsi { 127c66ec88fSEmmanuel Vadot status = "okay"; 128c66ec88fSEmmanuel Vadot 129c66ec88fSEmmanuel Vadot ports { 130c66ec88fSEmmanuel Vadot mipi_out: port@1 { 131c66ec88fSEmmanuel Vadot reg = <1>; 132c66ec88fSEmmanuel Vadot 133c66ec88fSEmmanuel Vadot mipi_out_panel: endpoint { 134c66ec88fSEmmanuel Vadot remote-endpoint = <&mipi_in_panel>; 135c66ec88fSEmmanuel Vadot }; 136c66ec88fSEmmanuel Vadot }; 137c66ec88fSEmmanuel Vadot }; 138c66ec88fSEmmanuel Vadot 139c66ec88fSEmmanuel Vadot panel@0 { 140c66ec88fSEmmanuel Vadot compatible = "xinpeng,xpp055c272"; 141c66ec88fSEmmanuel Vadot reg = <0>; 142c66ec88fSEmmanuel Vadot backlight = <&backlight>; 143c66ec88fSEmmanuel Vadot iovcc-supply = <&vcc_1v8>; 144c66ec88fSEmmanuel Vadot vci-supply = <&vcc3v3_lcd>; 145c66ec88fSEmmanuel Vadot 146c66ec88fSEmmanuel Vadot port { 147c66ec88fSEmmanuel Vadot mipi_in_panel: endpoint { 148c66ec88fSEmmanuel Vadot remote-endpoint = <&mipi_out_panel>; 149c66ec88fSEmmanuel Vadot }; 150c66ec88fSEmmanuel Vadot }; 151c66ec88fSEmmanuel Vadot }; 152c66ec88fSEmmanuel Vadot}; 153c66ec88fSEmmanuel Vadot 154c66ec88fSEmmanuel Vadot&dsi_dphy { 155c66ec88fSEmmanuel Vadot status = "okay"; 156c66ec88fSEmmanuel Vadot}; 157c66ec88fSEmmanuel Vadot 158c66ec88fSEmmanuel Vadot&emmc { 159c66ec88fSEmmanuel Vadot cap-mmc-highspeed; 160c66ec88fSEmmanuel Vadot mmc-hs200-1_8v; 161c66ec88fSEmmanuel Vadot non-removable; 162c66ec88fSEmmanuel Vadot mmc-pwrseq = <&emmc_pwrseq>; 163c66ec88fSEmmanuel Vadot vmmc-supply = <&vcc_3v0>; 164c66ec88fSEmmanuel Vadot vqmmc-supply = <&vccio_flash>; 165c66ec88fSEmmanuel Vadot status = "okay"; 166c66ec88fSEmmanuel Vadot}; 167c66ec88fSEmmanuel Vadot 168c66ec88fSEmmanuel Vadot&gmac { 169c66ec88fSEmmanuel Vadot clock_in_out = "output"; 170c66ec88fSEmmanuel Vadot phy-supply = <&vcc_rmii>; 171c66ec88fSEmmanuel Vadot snps,reset-gpio = <&gpio2 13 GPIO_ACTIVE_LOW>; 172c66ec88fSEmmanuel Vadot snps,reset-active-low; 173c66ec88fSEmmanuel Vadot snps,reset-delays-us = <0 50000 50000>; 174c66ec88fSEmmanuel Vadot status = "okay"; 175c66ec88fSEmmanuel Vadot}; 176c66ec88fSEmmanuel Vadot 177c66ec88fSEmmanuel Vadot&gpu { 178c66ec88fSEmmanuel Vadot mali-supply = <&vdd_log>; 179c66ec88fSEmmanuel Vadot status = "okay"; 180c66ec88fSEmmanuel Vadot}; 181c66ec88fSEmmanuel Vadot 182c66ec88fSEmmanuel Vadot&i2c0 { 183c66ec88fSEmmanuel Vadot status = "okay"; 184c66ec88fSEmmanuel Vadot 185c66ec88fSEmmanuel Vadot rk809: pmic@20 { 186c66ec88fSEmmanuel Vadot compatible = "rockchip,rk809"; 187c66ec88fSEmmanuel Vadot reg = <0x20>; 188c66ec88fSEmmanuel Vadot interrupt-parent = <&gpio0>; 189c66ec88fSEmmanuel Vadot interrupts = <7 IRQ_TYPE_LEVEL_LOW>; 190c66ec88fSEmmanuel Vadot pinctrl-names = "default"; 191c66ec88fSEmmanuel Vadot pinctrl-0 = <&pmic_int>; 192c66ec88fSEmmanuel Vadot rockchip,system-power-controller; 193c66ec88fSEmmanuel Vadot wakeup-source; 194c66ec88fSEmmanuel Vadot #clock-cells = <0>; 195c66ec88fSEmmanuel Vadot clock-output-names = "xin32k"; 196c66ec88fSEmmanuel Vadot 197c66ec88fSEmmanuel Vadot vcc1-supply = <&vcc5v0_sys>; 198c66ec88fSEmmanuel Vadot vcc2-supply = <&vcc5v0_sys>; 199c66ec88fSEmmanuel Vadot vcc3-supply = <&vcc5v0_sys>; 200c66ec88fSEmmanuel Vadot vcc4-supply = <&vcc5v0_sys>; 201c66ec88fSEmmanuel Vadot vcc5-supply = <&vcc3v3_sys>; 202c66ec88fSEmmanuel Vadot vcc6-supply = <&vcc3v3_sys>; 203c66ec88fSEmmanuel Vadot vcc7-supply = <&vcc3v3_sys>; 204c66ec88fSEmmanuel Vadot vcc8-supply = <&vcc3v3_sys>; 205c66ec88fSEmmanuel Vadot vcc9-supply = <&vcc5v0_sys>; 206c66ec88fSEmmanuel Vadot 207c66ec88fSEmmanuel Vadot regulators { 208c66ec88fSEmmanuel Vadot vdd_log: DCDC_REG1 { 209c66ec88fSEmmanuel Vadot regulator-name = "vdd_log"; 210c66ec88fSEmmanuel Vadot regulator-min-microvolt = <950000>; 211c66ec88fSEmmanuel Vadot regulator-max-microvolt = <1350000>; 212c66ec88fSEmmanuel Vadot regulator-ramp-delay = <6001>; 213c66ec88fSEmmanuel Vadot regulator-always-on; 214c66ec88fSEmmanuel Vadot regulator-boot-on; 215c66ec88fSEmmanuel Vadot 216c66ec88fSEmmanuel Vadot regulator-state-mem { 217c66ec88fSEmmanuel Vadot regulator-on-in-suspend; 218c66ec88fSEmmanuel Vadot regulator-suspend-microvolt = <950000>; 219c66ec88fSEmmanuel Vadot }; 220c66ec88fSEmmanuel Vadot }; 221c66ec88fSEmmanuel Vadot 222c66ec88fSEmmanuel Vadot vdd_arm: DCDC_REG2 { 223c66ec88fSEmmanuel Vadot regulator-name = "vdd_arm"; 224c66ec88fSEmmanuel Vadot regulator-min-microvolt = <950000>; 225c66ec88fSEmmanuel Vadot regulator-max-microvolt = <1350000>; 226c66ec88fSEmmanuel Vadot regulator-ramp-delay = <6001>; 227c66ec88fSEmmanuel Vadot regulator-always-on; 228c66ec88fSEmmanuel Vadot regulator-boot-on; 229c66ec88fSEmmanuel Vadot 230c66ec88fSEmmanuel Vadot regulator-state-mem { 231c66ec88fSEmmanuel Vadot regulator-off-in-suspend; 232c66ec88fSEmmanuel Vadot regulator-suspend-microvolt = <950000>; 233c66ec88fSEmmanuel Vadot }; 234c66ec88fSEmmanuel Vadot }; 235c66ec88fSEmmanuel Vadot 236c66ec88fSEmmanuel Vadot vcc_ddr: DCDC_REG3 { 237c66ec88fSEmmanuel Vadot regulator-name = "vcc_ddr"; 238c66ec88fSEmmanuel Vadot regulator-always-on; 239c66ec88fSEmmanuel Vadot regulator-boot-on; 240c66ec88fSEmmanuel Vadot 241c66ec88fSEmmanuel Vadot regulator-state-mem { 242c66ec88fSEmmanuel Vadot regulator-on-in-suspend; 243c66ec88fSEmmanuel Vadot }; 244c66ec88fSEmmanuel Vadot }; 245c66ec88fSEmmanuel Vadot 246c66ec88fSEmmanuel Vadot vcc_3v0: vcc_rmii: DCDC_REG4 { 247c66ec88fSEmmanuel Vadot regulator-name = "vcc_3v0"; 248c66ec88fSEmmanuel Vadot regulator-min-microvolt = <3000000>; 249c66ec88fSEmmanuel Vadot regulator-max-microvolt = <3000000>; 250c66ec88fSEmmanuel Vadot regulator-always-on; 251c66ec88fSEmmanuel Vadot regulator-boot-on; 252c66ec88fSEmmanuel Vadot 253c66ec88fSEmmanuel Vadot regulator-state-mem { 254c66ec88fSEmmanuel Vadot regulator-on-in-suspend; 255c66ec88fSEmmanuel Vadot regulator-suspend-microvolt = <3000000>; 256c66ec88fSEmmanuel Vadot }; 257c66ec88fSEmmanuel Vadot }; 258c66ec88fSEmmanuel Vadot 259c66ec88fSEmmanuel Vadot vcc3v3_sys: DCDC_REG5 { 260c66ec88fSEmmanuel Vadot regulator-name = "vcc3v3_sys"; 261c66ec88fSEmmanuel Vadot regulator-min-microvolt = <3300000>; 262c66ec88fSEmmanuel Vadot regulator-max-microvolt = <3300000>; 263c66ec88fSEmmanuel Vadot regulator-always-on; 264c66ec88fSEmmanuel Vadot regulator-boot-on; 265c66ec88fSEmmanuel Vadot 266c66ec88fSEmmanuel Vadot regulator-state-mem { 267c66ec88fSEmmanuel Vadot regulator-on-in-suspend; 268c66ec88fSEmmanuel Vadot regulator-suspend-microvolt = <3300000>; 269c66ec88fSEmmanuel Vadot }; 270c66ec88fSEmmanuel Vadot }; 271c66ec88fSEmmanuel Vadot 272c66ec88fSEmmanuel Vadot vcc_1v0: LDO_REG1 { 273c66ec88fSEmmanuel Vadot regulator-name = "vcc_1v0"; 274c66ec88fSEmmanuel Vadot regulator-min-microvolt = <1000000>; 275c66ec88fSEmmanuel Vadot regulator-max-microvolt = <1000000>; 276c66ec88fSEmmanuel Vadot regulator-always-on; 277c66ec88fSEmmanuel Vadot regulator-boot-on; 278c66ec88fSEmmanuel Vadot 279c66ec88fSEmmanuel Vadot regulator-state-mem { 280c66ec88fSEmmanuel Vadot regulator-on-in-suspend; 281c66ec88fSEmmanuel Vadot regulator-suspend-microvolt = <1000000>; 282c66ec88fSEmmanuel Vadot }; 283c66ec88fSEmmanuel Vadot }; 284c66ec88fSEmmanuel Vadot 285c66ec88fSEmmanuel Vadot vcc_1v8: vccio_flash: vccio_sdio: LDO_REG2 { 286c66ec88fSEmmanuel Vadot regulator-name = "vcc_1v8"; 287c66ec88fSEmmanuel Vadot regulator-min-microvolt = <1800000>; 288c66ec88fSEmmanuel Vadot regulator-max-microvolt = <1800000>; 289c66ec88fSEmmanuel Vadot regulator-always-on; 290c66ec88fSEmmanuel Vadot regulator-boot-on; 291c66ec88fSEmmanuel Vadot 292c66ec88fSEmmanuel Vadot regulator-state-mem { 293c66ec88fSEmmanuel Vadot regulator-on-in-suspend; 294c66ec88fSEmmanuel Vadot regulator-suspend-microvolt = <1800000>; 295c66ec88fSEmmanuel Vadot }; 296c66ec88fSEmmanuel Vadot }; 297c66ec88fSEmmanuel Vadot 298c66ec88fSEmmanuel Vadot vdd_1v0: LDO_REG3 { 299c66ec88fSEmmanuel Vadot regulator-name = "vdd_1v0"; 300c66ec88fSEmmanuel Vadot regulator-min-microvolt = <1000000>; 301c66ec88fSEmmanuel Vadot regulator-max-microvolt = <1000000>; 302c66ec88fSEmmanuel Vadot regulator-always-on; 303c66ec88fSEmmanuel Vadot regulator-boot-on; 304c66ec88fSEmmanuel Vadot 305c66ec88fSEmmanuel Vadot regulator-state-mem { 306c66ec88fSEmmanuel Vadot regulator-on-in-suspend; 307c66ec88fSEmmanuel Vadot regulator-suspend-microvolt = <1000000>; 308c66ec88fSEmmanuel Vadot }; 309c66ec88fSEmmanuel Vadot }; 310c66ec88fSEmmanuel Vadot 311c66ec88fSEmmanuel Vadot vcc3v0_pmu: LDO_REG4 { 312c66ec88fSEmmanuel Vadot regulator-name = "vcc3v0_pmu"; 313c66ec88fSEmmanuel Vadot regulator-min-microvolt = <3000000>; 314c66ec88fSEmmanuel Vadot regulator-max-microvolt = <3000000>; 315c66ec88fSEmmanuel Vadot regulator-always-on; 316c66ec88fSEmmanuel Vadot regulator-boot-on; 317c66ec88fSEmmanuel Vadot 318c66ec88fSEmmanuel Vadot regulator-state-mem { 319c66ec88fSEmmanuel Vadot regulator-on-in-suspend; 320c66ec88fSEmmanuel Vadot regulator-suspend-microvolt = <3000000>; 321c66ec88fSEmmanuel Vadot }; 322c66ec88fSEmmanuel Vadot }; 323c66ec88fSEmmanuel Vadot 324c66ec88fSEmmanuel Vadot vccio_sd: LDO_REG5 { 325c66ec88fSEmmanuel Vadot regulator-name = "vccio_sd"; 326c66ec88fSEmmanuel Vadot regulator-min-microvolt = <1800000>; 327c66ec88fSEmmanuel Vadot regulator-max-microvolt = <3300000>; 328c66ec88fSEmmanuel Vadot regulator-always-on; 329c66ec88fSEmmanuel Vadot regulator-boot-on; 330c66ec88fSEmmanuel Vadot 331c66ec88fSEmmanuel Vadot regulator-state-mem { 332c66ec88fSEmmanuel Vadot regulator-on-in-suspend; 333c66ec88fSEmmanuel Vadot regulator-suspend-microvolt = <3300000>; 334c66ec88fSEmmanuel Vadot }; 335c66ec88fSEmmanuel Vadot }; 336c66ec88fSEmmanuel Vadot 337c66ec88fSEmmanuel Vadot vcc_sd: LDO_REG6 { 338c66ec88fSEmmanuel Vadot regulator-name = "vcc_sd"; 339c66ec88fSEmmanuel Vadot regulator-min-microvolt = <3300000>; 340c66ec88fSEmmanuel Vadot regulator-max-microvolt = <3300000>; 341c66ec88fSEmmanuel Vadot regulator-boot-on; 342c66ec88fSEmmanuel Vadot 343c66ec88fSEmmanuel Vadot regulator-state-mem { 344c66ec88fSEmmanuel Vadot regulator-on-in-suspend; 345c66ec88fSEmmanuel Vadot regulator-suspend-microvolt = <3300000>; 346c66ec88fSEmmanuel Vadot }; 347c66ec88fSEmmanuel Vadot }; 348c66ec88fSEmmanuel Vadot 349c66ec88fSEmmanuel Vadot vcc2v8_dvp: LDO_REG7 { 350c66ec88fSEmmanuel Vadot regulator-name = "vcc2v8_dvp"; 351c66ec88fSEmmanuel Vadot regulator-min-microvolt = <2800000>; 352c66ec88fSEmmanuel Vadot regulator-max-microvolt = <2800000>; 353c66ec88fSEmmanuel Vadot regulator-boot-on; 354c66ec88fSEmmanuel Vadot 355c66ec88fSEmmanuel Vadot regulator-state-mem { 356c66ec88fSEmmanuel Vadot regulator-off-in-suspend; 357c66ec88fSEmmanuel Vadot regulator-suspend-microvolt = <2800000>; 358c66ec88fSEmmanuel Vadot }; 359c66ec88fSEmmanuel Vadot }; 360c66ec88fSEmmanuel Vadot 361c66ec88fSEmmanuel Vadot vcc1v8_dvp: LDO_REG8 { 362c66ec88fSEmmanuel Vadot regulator-name = "vcc1v8_dvp"; 363c66ec88fSEmmanuel Vadot regulator-min-microvolt = <1800000>; 364c66ec88fSEmmanuel Vadot regulator-max-microvolt = <1800000>; 365c66ec88fSEmmanuel Vadot regulator-boot-on; 366c66ec88fSEmmanuel Vadot 367c66ec88fSEmmanuel Vadot regulator-state-mem { 368c66ec88fSEmmanuel Vadot regulator-on-in-suspend; 369c66ec88fSEmmanuel Vadot regulator-suspend-microvolt = <1800000>; 370c66ec88fSEmmanuel Vadot }; 371c66ec88fSEmmanuel Vadot }; 372c66ec88fSEmmanuel Vadot 373c66ec88fSEmmanuel Vadot vcc1v5_dvp: LDO_REG9 { 374c66ec88fSEmmanuel Vadot regulator-name = "vcc1v5_dvp"; 375c66ec88fSEmmanuel Vadot regulator-min-microvolt = <1500000>; 376c66ec88fSEmmanuel Vadot regulator-max-microvolt = <1500000>; 377c66ec88fSEmmanuel Vadot regulator-boot-on; 378c66ec88fSEmmanuel Vadot 379c66ec88fSEmmanuel Vadot regulator-state-mem { 380c66ec88fSEmmanuel Vadot regulator-off-in-suspend; 381c66ec88fSEmmanuel Vadot regulator-suspend-microvolt = <1500000>; 382c66ec88fSEmmanuel Vadot }; 383c66ec88fSEmmanuel Vadot }; 384c66ec88fSEmmanuel Vadot 385c66ec88fSEmmanuel Vadot vcc3v3_lcd: SWITCH_REG1 { 386c66ec88fSEmmanuel Vadot regulator-name = "vcc3v3_lcd"; 387c66ec88fSEmmanuel Vadot regulator-boot-on; 388c66ec88fSEmmanuel Vadot }; 389c66ec88fSEmmanuel Vadot 390c66ec88fSEmmanuel Vadot vcc5v0_host: SWITCH_REG2 { 391c66ec88fSEmmanuel Vadot regulator-name = "vcc5v0_host"; 392c66ec88fSEmmanuel Vadot regulator-always-on; 393c66ec88fSEmmanuel Vadot regulator-boot-on; 394c66ec88fSEmmanuel Vadot }; 395c66ec88fSEmmanuel Vadot }; 396c66ec88fSEmmanuel Vadot }; 397c66ec88fSEmmanuel Vadot}; 398c66ec88fSEmmanuel Vadot 399c66ec88fSEmmanuel Vadot&i2c1 { 400c66ec88fSEmmanuel Vadot status = "okay"; 401c66ec88fSEmmanuel Vadot 402c66ec88fSEmmanuel Vadot sensor@d { 403c66ec88fSEmmanuel Vadot compatible = "asahi-kasei,ak8963"; 404c66ec88fSEmmanuel Vadot reg = <0x0d>; 405c66ec88fSEmmanuel Vadot gpios = <&gpio0 RK_PB7 GPIO_ACTIVE_HIGH>; 406c66ec88fSEmmanuel Vadot vdd-supply = <&vcc3v0_pmu>; 407c66ec88fSEmmanuel Vadot mount-matrix = "1", /* x0 */ 408c66ec88fSEmmanuel Vadot "0", /* y0 */ 409c66ec88fSEmmanuel Vadot "0", /* z0 */ 410c66ec88fSEmmanuel Vadot "0", /* x1 */ 411c66ec88fSEmmanuel Vadot "1", /* y1 */ 412c66ec88fSEmmanuel Vadot "0", /* z1 */ 413c66ec88fSEmmanuel Vadot "0", /* x2 */ 414c66ec88fSEmmanuel Vadot "0", /* y2 */ 415c66ec88fSEmmanuel Vadot "1"; /* z2 */ 416c66ec88fSEmmanuel Vadot }; 417c66ec88fSEmmanuel Vadot 418c66ec88fSEmmanuel Vadot touchscreen@14 { 419c66ec88fSEmmanuel Vadot compatible = "goodix,gt1151"; 420c66ec88fSEmmanuel Vadot reg = <0x14>; 421c66ec88fSEmmanuel Vadot interrupt-parent = <&gpio0>; 422c66ec88fSEmmanuel Vadot interrupts = <RK_PA5 IRQ_TYPE_LEVEL_LOW>; 423c66ec88fSEmmanuel Vadot irq-gpios = <&gpio0 RK_PA5 GPIO_ACTIVE_LOW>; 424c66ec88fSEmmanuel Vadot reset-gpios = <&gpio0 RK_PB4 GPIO_ACTIVE_HIGH>; 425c66ec88fSEmmanuel Vadot VDDIO-supply = <&vcc3v3_lcd>; 426c66ec88fSEmmanuel Vadot }; 427c66ec88fSEmmanuel Vadot 428c66ec88fSEmmanuel Vadot sensor@4c { 429c66ec88fSEmmanuel Vadot compatible = "fsl,mma7660"; 430c66ec88fSEmmanuel Vadot reg = <0x4c>; 431c66ec88fSEmmanuel Vadot interrupt-parent = <&gpio0>; 432c66ec88fSEmmanuel Vadot interrupts = <RK_PB7 IRQ_TYPE_LEVEL_LOW>; 433c66ec88fSEmmanuel Vadot }; 434c66ec88fSEmmanuel Vadot}; 435c66ec88fSEmmanuel Vadot 4368cc087a1SEmmanuel Vadot&i2c2 { 4378cc087a1SEmmanuel Vadot status = "okay"; 4388cc087a1SEmmanuel Vadot 4398cc087a1SEmmanuel Vadot clock-frequency = <100000>; 4408cc087a1SEmmanuel Vadot 4418cc087a1SEmmanuel Vadot /* These are relatively safe rise/fall times; TODO: measure */ 4428cc087a1SEmmanuel Vadot i2c-scl-falling-time-ns = <50>; 4438cc087a1SEmmanuel Vadot i2c-scl-rising-time-ns = <300>; 4448cc087a1SEmmanuel Vadot 4458cc087a1SEmmanuel Vadot ov5695: ov5695@36 { 4468cc087a1SEmmanuel Vadot compatible = "ovti,ov5695"; 4478cc087a1SEmmanuel Vadot reg = <0x36>; 4488cc087a1SEmmanuel Vadot avdd-supply = <&vcc2v8_dvp>; 4498cc087a1SEmmanuel Vadot clocks = <&cru SCLK_CIF_OUT>; 4508cc087a1SEmmanuel Vadot clock-names = "xvclk"; 4518cc087a1SEmmanuel Vadot dvdd-supply = <&vcc1v5_dvp>; 4528cc087a1SEmmanuel Vadot dovdd-supply = <&vcc1v8_dvp>; 4538cc087a1SEmmanuel Vadot pinctrl-names = "default"; 4547ef62cebSEmmanuel Vadot pinctrl-0 = <&cif_clkout_m0 &mipi_pdn>; 4557ef62cebSEmmanuel Vadot reset-gpios = <&gpio2 RK_PB6 GPIO_ACTIVE_LOW>; 4568cc087a1SEmmanuel Vadot 4578cc087a1SEmmanuel Vadot port { 4588cc087a1SEmmanuel Vadot ucam_out: endpoint { 4598cc087a1SEmmanuel Vadot remote-endpoint = <&mipi_in_ucam>; 4608cc087a1SEmmanuel Vadot data-lanes = <1 2>; 4618cc087a1SEmmanuel Vadot }; 4628cc087a1SEmmanuel Vadot }; 4638cc087a1SEmmanuel Vadot }; 4648cc087a1SEmmanuel Vadot}; 4658cc087a1SEmmanuel Vadot 466c66ec88fSEmmanuel Vadot&i2s1_2ch { 467c66ec88fSEmmanuel Vadot status = "okay"; 468c66ec88fSEmmanuel Vadot}; 469c66ec88fSEmmanuel Vadot 470c66ec88fSEmmanuel Vadot&io_domains { 471c66ec88fSEmmanuel Vadot status = "okay"; 472c66ec88fSEmmanuel Vadot 473c66ec88fSEmmanuel Vadot vccio1-supply = <&vccio_sdio>; 474c66ec88fSEmmanuel Vadot vccio2-supply = <&vccio_sd>; 475c66ec88fSEmmanuel Vadot vccio3-supply = <&vcc_3v0>; 476c66ec88fSEmmanuel Vadot vccio4-supply = <&vcc3v0_pmu>; 477c66ec88fSEmmanuel Vadot vccio5-supply = <&vcc_3v0>; 478c66ec88fSEmmanuel Vadot vccio6-supply = <&vccio_flash>; 479c66ec88fSEmmanuel Vadot}; 480c66ec88fSEmmanuel Vadot 4818cc087a1SEmmanuel Vadot&isp { 4828cc087a1SEmmanuel Vadot status = "okay"; 4838cc087a1SEmmanuel Vadot 4848cc087a1SEmmanuel Vadot ports { 4858cc087a1SEmmanuel Vadot port@0 { 4868cc087a1SEmmanuel Vadot mipi_in_ucam: endpoint@0 { 4878cc087a1SEmmanuel Vadot reg = <0>; 4888cc087a1SEmmanuel Vadot data-lanes = <1 2>; 4898cc087a1SEmmanuel Vadot remote-endpoint = <&ucam_out>; 4908cc087a1SEmmanuel Vadot }; 4918cc087a1SEmmanuel Vadot }; 4928cc087a1SEmmanuel Vadot }; 4938cc087a1SEmmanuel Vadot}; 4948cc087a1SEmmanuel Vadot 4958cc087a1SEmmanuel Vadot&isp_mmu { 4968cc087a1SEmmanuel Vadot status = "okay"; 4978cc087a1SEmmanuel Vadot}; 4988cc087a1SEmmanuel Vadot 499c66ec88fSEmmanuel Vadot&pinctrl { 500c66ec88fSEmmanuel Vadot headphone { 501c66ec88fSEmmanuel Vadot hp_det: hp-det { 502c66ec88fSEmmanuel Vadot rockchip,pins = 503c66ec88fSEmmanuel Vadot <2 RK_PB0 RK_FUNC_GPIO &pcfg_pull_down>; 504c66ec88fSEmmanuel Vadot }; 505c66ec88fSEmmanuel Vadot }; 506c66ec88fSEmmanuel Vadot 507c66ec88fSEmmanuel Vadot emmc { 508c66ec88fSEmmanuel Vadot emmc_reset: emmc-reset { 509c66ec88fSEmmanuel Vadot rockchip,pins = <1 RK_PB3 RK_FUNC_GPIO &pcfg_pull_none>; 510c66ec88fSEmmanuel Vadot }; 511c66ec88fSEmmanuel Vadot }; 512c66ec88fSEmmanuel Vadot 513c66ec88fSEmmanuel Vadot pmic { 514c66ec88fSEmmanuel Vadot pmic_int: pmic_int { 515c66ec88fSEmmanuel Vadot rockchip,pins = 516c66ec88fSEmmanuel Vadot <0 RK_PA7 RK_FUNC_GPIO &pcfg_pull_up>; 517c66ec88fSEmmanuel Vadot }; 518c66ec88fSEmmanuel Vadot 519c66ec88fSEmmanuel Vadot soc_slppin_gpio: soc_slppin_gpio { 520c66ec88fSEmmanuel Vadot rockchip,pins = 521c66ec88fSEmmanuel Vadot <0 RK_PA4 RK_FUNC_GPIO &pcfg_output_low>; 522c66ec88fSEmmanuel Vadot }; 523c66ec88fSEmmanuel Vadot 524c66ec88fSEmmanuel Vadot soc_slppin_slp: soc_slppin_slp { 525c66ec88fSEmmanuel Vadot rockchip,pins = 526c66ec88fSEmmanuel Vadot <0 RK_PA4 1 &pcfg_pull_none>; 527c66ec88fSEmmanuel Vadot }; 528c66ec88fSEmmanuel Vadot 529c66ec88fSEmmanuel Vadot soc_slppin_rst: soc_slppin_rst { 530c66ec88fSEmmanuel Vadot rockchip,pins = 531c66ec88fSEmmanuel Vadot <0 RK_PA4 2 &pcfg_pull_none>; 532c66ec88fSEmmanuel Vadot }; 533c66ec88fSEmmanuel Vadot }; 534c66ec88fSEmmanuel Vadot 535c66ec88fSEmmanuel Vadot sdio-pwrseq { 536c66ec88fSEmmanuel Vadot wifi_enable_h: wifi-enable-h { 537c66ec88fSEmmanuel Vadot rockchip,pins = 538c66ec88fSEmmanuel Vadot <0 RK_PA2 RK_FUNC_GPIO &pcfg_pull_none>; 539c66ec88fSEmmanuel Vadot }; 540c66ec88fSEmmanuel Vadot }; 5417ef62cebSEmmanuel Vadot 5427ef62cebSEmmanuel Vadot cif-m0 { 5437ef62cebSEmmanuel Vadot cif_clkout_m0: cif-clkout-m0 { 5447ef62cebSEmmanuel Vadot rockchip,pins = 5457ef62cebSEmmanuel Vadot <2 RK_PB3 1 &pcfg_pull_none_12ma>; 5467ef62cebSEmmanuel Vadot }; 5477ef62cebSEmmanuel Vadot }; 5487ef62cebSEmmanuel Vadot 5497ef62cebSEmmanuel Vadot mipi { 5507ef62cebSEmmanuel Vadot mipi_pdn: mipi-pdn { 5517ef62cebSEmmanuel Vadot rockchip,pins = <2 RK_PB6 RK_FUNC_GPIO &pcfg_pull_none>; 5527ef62cebSEmmanuel Vadot }; 5537ef62cebSEmmanuel Vadot }; 554c66ec88fSEmmanuel Vadot}; 555c66ec88fSEmmanuel Vadot 556c66ec88fSEmmanuel Vadot&pmu_io_domains { 557c66ec88fSEmmanuel Vadot status = "okay"; 558c66ec88fSEmmanuel Vadot 559c66ec88fSEmmanuel Vadot pmuio1-supply = <&vcc3v0_pmu>; 560c66ec88fSEmmanuel Vadot pmuio2-supply = <&vcc3v0_pmu>; 561c66ec88fSEmmanuel Vadot}; 562c66ec88fSEmmanuel Vadot 563c66ec88fSEmmanuel Vadot&pwm1 { 564c66ec88fSEmmanuel Vadot status = "okay"; 565c66ec88fSEmmanuel Vadot}; 566c66ec88fSEmmanuel Vadot 567c66ec88fSEmmanuel Vadot&saradc { 568c66ec88fSEmmanuel Vadot vref-supply = <&vcc_1v8>; 569c66ec88fSEmmanuel Vadot status = "okay"; 570c66ec88fSEmmanuel Vadot}; 571c66ec88fSEmmanuel Vadot 572c66ec88fSEmmanuel Vadot&sdmmc { 573c66ec88fSEmmanuel Vadot cap-mmc-highspeed; 574c66ec88fSEmmanuel Vadot cap-sd-highspeed; 575c66ec88fSEmmanuel Vadot card-detect-delay = <800>; 576c66ec88fSEmmanuel Vadot sd-uhs-sdr12; 577c66ec88fSEmmanuel Vadot sd-uhs-sdr25; 578c66ec88fSEmmanuel Vadot sd-uhs-sdr50; 579c66ec88fSEmmanuel Vadot sd-uhs-sdr104; 580c66ec88fSEmmanuel Vadot vmmc-supply = <&vcc_sd>; 581c66ec88fSEmmanuel Vadot vqmmc-supply = <&vccio_sd>; 582c66ec88fSEmmanuel Vadot status = "okay"; 583c66ec88fSEmmanuel Vadot}; 584c66ec88fSEmmanuel Vadot 585c66ec88fSEmmanuel Vadot&sdio { 586c66ec88fSEmmanuel Vadot cap-sd-highspeed; 587c66ec88fSEmmanuel Vadot keep-power-in-suspend; 588c66ec88fSEmmanuel Vadot non-removable; 589c66ec88fSEmmanuel Vadot mmc-pwrseq = <&sdio_pwrseq>; 590c66ec88fSEmmanuel Vadot sd-uhs-sdr104; 591c66ec88fSEmmanuel Vadot status = "okay"; 592c66ec88fSEmmanuel Vadot}; 593c66ec88fSEmmanuel Vadot 594c66ec88fSEmmanuel Vadot&tsadc { 595c66ec88fSEmmanuel Vadot rockchip,hw-tshut-mode = <1>; 596c66ec88fSEmmanuel Vadot rockchip,hw-tshut-polarity = <1>; 597c66ec88fSEmmanuel Vadot status = "okay"; 598c66ec88fSEmmanuel Vadot}; 599c66ec88fSEmmanuel Vadot 600c66ec88fSEmmanuel Vadot&u2phy { 601c66ec88fSEmmanuel Vadot status = "okay"; 602c66ec88fSEmmanuel Vadot 603c66ec88fSEmmanuel Vadot u2phy_host: host-port { 604c66ec88fSEmmanuel Vadot status = "okay"; 605c66ec88fSEmmanuel Vadot }; 606c66ec88fSEmmanuel Vadot 607c66ec88fSEmmanuel Vadot u2phy_otg: otg-port { 608c66ec88fSEmmanuel Vadot status = "okay"; 609c66ec88fSEmmanuel Vadot }; 610c66ec88fSEmmanuel Vadot}; 611c66ec88fSEmmanuel Vadot 612c66ec88fSEmmanuel Vadot&uart1 { 613c66ec88fSEmmanuel Vadot pinctrl-names = "default"; 614c66ec88fSEmmanuel Vadot pinctrl-0 = <&uart1_xfer &uart1_cts>; 615c66ec88fSEmmanuel Vadot status = "okay"; 616c66ec88fSEmmanuel Vadot}; 617c66ec88fSEmmanuel Vadot 618c66ec88fSEmmanuel Vadot&uart5 { 619c66ec88fSEmmanuel Vadot status = "okay"; 620c66ec88fSEmmanuel Vadot}; 621c66ec88fSEmmanuel Vadot 622c66ec88fSEmmanuel Vadot&usb20_otg { 623c66ec88fSEmmanuel Vadot status = "okay"; 624c66ec88fSEmmanuel Vadot}; 625c66ec88fSEmmanuel Vadot 626c66ec88fSEmmanuel Vadot&usb_host0_ehci { 627c66ec88fSEmmanuel Vadot status = "okay"; 628c66ec88fSEmmanuel Vadot}; 629c66ec88fSEmmanuel Vadot 630c66ec88fSEmmanuel Vadot&usb_host0_ohci { 631c66ec88fSEmmanuel Vadot status = "okay"; 632c66ec88fSEmmanuel Vadot}; 633c66ec88fSEmmanuel Vadot 634c66ec88fSEmmanuel Vadot&vopb { 635c66ec88fSEmmanuel Vadot status = "okay"; 636c66ec88fSEmmanuel Vadot}; 637c66ec88fSEmmanuel Vadot 638c66ec88fSEmmanuel Vadot&vopb_mmu { 639c66ec88fSEmmanuel Vadot status = "okay"; 640c66ec88fSEmmanuel Vadot}; 641c66ec88fSEmmanuel Vadot 642c66ec88fSEmmanuel Vadot&vopl { 643c66ec88fSEmmanuel Vadot status = "okay"; 644c66ec88fSEmmanuel Vadot}; 645c66ec88fSEmmanuel Vadot 646c66ec88fSEmmanuel Vadot&vopl_mmu { 647c66ec88fSEmmanuel Vadot status = "okay"; 648c66ec88fSEmmanuel Vadot}; 649