// SPDX-License-Identifier: (GPL-2.0+ OR MIT) /* * Copyright (c) 2020 Rockchip Electronics Co., Ltd. * */ #include #include #include #include #include #include #include #include "../rk3568.dtsi" / { rpdzkj:rpdzkj_config { compatible = "rp_config"; user_version = "rpdzkj"; system_rotate = "0"; csi_camera_rotate = "0"; //all csi camera rotation //0 90 180 270 //no effect csi_camera_facing = "0"; //0:auto 1:all front 2:all back //no effect usb_camera_rotate = "0"; //all usb camera rotation //0 90 180 270 usb_camera_facing = "0"; //0:auto 1:all front 2:all back lcd_density = "160"; language = "zh-CN"; //zh-CN //en-US time_zone = "Asia/Shanghai"; //Asia/Shanghai = +8 //Europe/London = +1 //Africa/Casablanca = +0; not_navigation_bar = "false"; not_status_bar = "false"; default_launcher = "true"; has_root = "true"; usb_not_permission = "true"; gps_use = "false"; gps_serial_port = "/dev/ttyS4"; primary_device = "DSI"; extend_device = "HDMI-A"; extend_rotate = "0"; rotation_efull = "false"; home_apk = "null"; status = "okay"; }; edp_panel:panel { status = "disabled"; }; lvds_panel: panel@0 { status = "disabled"; }; audiopwmout_diff: audiopwmout-diff { status = "disabled"; compatible = "simple-audio-card"; simple-audio-card,format = "i2s"; simple-audio-card,name = "rockchip,audiopwmout-diff"; simple-audio-card,mclk-fs = <256>; simple-audio-card,bitclock-master = <&master>; simple-audio-card,frame-master = <&master>; simple-audio-card,cpu { sound-dai = <&i2s3_2ch>; }; master: simple-audio-card,codec { sound-dai = <&dig_acodec>; }; }; rk_headset: rk-headset { compatible = "rockchip_headset"; // headset_gpio = <&gpio1 RK_PB0 GPIO_ACTIVE_HIGH>; }; dc_12v: dc-12v { compatible = "regulator-fixed"; regulator-name = "dc_12v"; regulator-always-on; regulator-boot-on; regulator-min-microvolt = <12000000>; regulator-max-microvolt = <12000000>; }; hdmi_sound: hdmi-sound { status = "disabled"; compatible = "rockchip,hdmi"; rockchip,mclk-fs = <128>; rockchip,card-name = "rockchip,hdmi"; rockchip,cpu = <&i2s0_8ch>; rockchip,codec = <&hdmi>; }; /* leds: leds { compatible = "gpio-leds"; work_led: work { gpios = <&gpio0 RK_PC0 GPIO_ACTIVE_HIGH>; linux,default-trigger = "heartbeat"; }; }; */ pdmics: dummy-codec { status = "disabled"; compatible = "rockchip,dummy-codec"; #sound-dai-cells = <0>; }; pdm_mic_array: pdm-mic-array { status = "disabled"; compatible = "simple-audio-card"; simple-audio-card,name = "rockchip,pdm-mic-array"; simple-audio-card,cpu { sound-dai = <&pdm>; }; simple-audio-card,codec { sound-dai = <&pdmics>; }; }; spdif-sound { status = "disabled"; compatible = "simple-audio-card"; simple-audio-card,name = "ROCKCHIP,SPDIF"; simple-audio-card,cpu { sound-dai = <&spdif_8ch>; }; simple-audio-card,codec { sound-dai = <&spdif_out>; }; }; spdif_out: spdif-out { status = "disabled"; compatible = "linux,spdif-dit"; #sound-dai-cells = <0>; }; vcc3v3_sys: vcc3v3-sys { compatible = "regulator-fixed"; regulator-name = "vcc3v3_sys"; regulator-always-on; regulator-boot-on; regulator-min-microvolt = <3300000>; regulator-max-microvolt = <3300000>; vin-supply = <&dc_12v>; }; vcc5v0_sys: vcc5v0-sys { compatible = "regulator-fixed"; regulator-name = "vcc5v0_sys"; regulator-always-on; regulator-boot-on; regulator-min-microvolt = <5000000>; regulator-max-microvolt = <5000000>; vin-supply = <&dc_12v>; }; vcc3v3_lcd0_n: vcc3v3-lcd0-n { compatible = "regulator-fixed"; regulator-name = "vcc3v3_lcd0_n"; regulator-boot-on; regulator-min-microvolt = <3300000>; regulator-max-microvolt = <3300000>; enable-active-high; // gpio = <&gpio0 RK_PC7 GPIO_ACTIVE_HIGH>; vin-supply = <&vcc3v3_sys>; regulator-state-mem { regulator-off-in-suspend; }; }; vcc3v3_lcd1_n: vcc3v3-lcd1-n { compatible = "regulator-fixed"; regulator-name = "vcc3v3_lcd1_n"; regulator-boot-on; regulator-min-microvolt = <3300000>; regulator-max-microvolt = <3300000>; enable-active-high; // gpio = <&gpio0 RK_PC5 GPIO_ACTIVE_HIGH>; vin-supply = <&vcc3v3_sys>; regulator-state-mem { regulator-off-in-suspend; }; }; vcc2v5_sys: vcc2v5-ddr { compatible = "regulator-fixed"; regulator-name = "vcc2v5-sys"; regulator-always-on; regulator-boot-on; regulator-min-microvolt = <2500000>; regulator-max-microvolt = <2500000>; vin-supply = <&vcc3v3_sys>; }; sdio_pwrseq: sdio-pwrseq { compatible = "mmc-pwrseq-simple"; //clocks = <&rk809 1>; clock-names = "ext_clock"; pinctrl-names = "default"; pinctrl-0 = <&wifi_enable_h>; /* * On the module itself this is one of these (depending * on the actual card populated): * - SDIO_RESET_L_WL_REG_ON * - PDN (power down when low) */ post-power-on-delay-ms = <200>; reset-gpios = <&gpio3 RK_PD5 GPIO_ACTIVE_LOW>; }; wireless_wlan: wireless-wlan { compatible = "wlan-platdata"; rockchip,grf = <&grf>; wifi_chip_type = "ap6398s"; status = "okay"; }; wireless_bluetooth: wireless-bluetooth { compatible = "bluetooth-platdata"; //clocks = <&rk809 1>; //clock-names = "ext_clock"; //wifi-bt-power-toggle; uart_rts_gpios = <&gpio2 RK_PB1 GPIO_ACTIVE_LOW>; pinctrl-names = "default", "rts_gpio"; pinctrl-0 = <&uart8m0_rtsn>; pinctrl-1 = <&uart8_gpios>; BT,reset_gpio = <&gpio3 RK_PA0 GPIO_ACTIVE_HIGH>; BT,wake_gpio = <&gpio3 RK_PA1 GPIO_ACTIVE_HIGH>; BT,wake_host_irq = <&gpio3 RK_PA2 GPIO_ACTIVE_HIGH>; status = "okay"; }; test-power { status = "okay"; }; /** * configuration of regulator that no rk809 */ vcc3v3_pmu: vcc3v3-pmu { compatible = "regulator-fixed"; regulator-name = "vcc3v3_pmu"; regulator-always-on; regulator-boot-on; regulator-min-microvolt = <3300000>; regulator-max-microvolt = <3300000>; vin-supply = <&vcc3v3_sys>; regulator-state-mem { regulator-on-in-suspend; }; }; vdda_0v9: vdda-0v9 { compatible = "regulator-fixed"; regulator-name = "vdda_0v9"; regulator-always-on; regulator-boot-on; regulator-min-microvolt = <900000>; regulator-max-microvolt = <900000>; vin-supply = <&vcc3v3_sys>; regulator-state-mem { regulator-off-in-suspend; }; }; vcc_ddr: vcc-ddr { compatible = "regulator-fixed"; regulator-name = "vcc_ddr"; regulator-always-on; regulator-boot-on; regulator-min-microvolt = <1100000>; regulator-max-microvolt = <1100000>; vin-supply = <&vcc3v3_sys>; regulator-state-mem { regulator-on-in-suspend; }; }; vcc_3v3: vcc-3v3 { compatible = "regulator-fixed"; regulator-name = "vcc_3v3"; regulator-always-on; regulator-boot-on; regulator-min-microvolt = <3300000>; regulator-max-microvolt = <3300000>; vin-supply = <&vcc3v3_sys>; regulator-state-mem { regulator-off-in-suspend; }; }; vccio_sd: vccio-sd { compatible = "regulator-fixed"; regulator-name = "vccio_sd"; regulator-always-on; regulator-boot-on; regulator-min-microvolt = <3300000>; regulator-max-microvolt = <3300000>; vin-supply = <&vcc_3v3>; regulator-state-mem { regulator-off-in-suspend; }; }; vcc3v3_sd: vcc3v3-sd { compatible = "regulator-fixed"; regulator-name = "vcc3v3_sd"; regulator-always-on; regulator-boot-on; regulator-min-microvolt = <3300000>; regulator-max-microvolt = <3300000>; vin-supply = <&vcc_3v3>; regulator-state-mem { regulator-off-in-suspend; }; }; vcc_1v8: vcc-1v8 { compatible = "regulator-fixed"; regulator-name = "vcc_1v8"; regulator-always-on; regulator-boot-on; regulator-min-microvolt = <1800000>; regulator-max-microvolt = <1800000>; vin-supply = <&vcc3v3_sys>; regulator-state-mem { regulator-off-in-suspend; }; }; vcca_1v8: vcca-1v8 { compatible = "regulator-fixed"; regulator-name = "vcca_1v8"; regulator-always-on; regulator-boot-on; regulator-min-microvolt = <1800000>; regulator-max-microvolt = <1800000>; vin-supply = <&vcc3v3_sys>; regulator-state-mem { regulator-off-in-suspend; }; }; vdd_logic: vdd-logic { compatible = "pwm-regulator"; regulator-always-on; regulator-boot-on; rockchip,pwm_id = <1>; pwms = <&pwm1 0 25000 1>; regulator-min-microvolt = <810000>; regulator-max-microvolt = <1000000>; regulator-init-microvolt = <950000>; regulator-ramp-delay = <6001>; regulator-initial-mode = <0x2>; regulator-name = "vdd_logic"; pwm-supply = <&vcc3v3_sys>; regulator-state-mem { regulator-off-in-suspend; }; }; vdd_gpu_npu: vdd-gpu-npu { compatible = "pwm-regulator"; rockchip,pwm_id = <2>; pwms = <&pwm2 0 25000 1>; regulator-min-microvolt = <800000>; regulator-max-microvolt = <1125000>; regulator-init-microvolt = <1000000>; regulator-always-on; regulator-boot-on; regulator-name = "vdd_gpu_npu"; pwm-supply = <&vcc3v3_sys>; regulator-state-mem { regulator-off-in-suspend; }; }; vdd_3v3: vdd-3v3 { compatible = "regulator-fixed"; regulator-name = "vdd_3v3"; regulator-boot-on; regulator-always-on; regulator-min-microvolt = <3300000>; regulator-max-microvolt = <3300000>; vin-supply = <&vcc3v3_sys>; }; vdd_fixed: vdd-fixed { compatible = "regulator-fixed"; regulator-name = "vdd_fixed"; regulator-min-microvolt = <1000000>; regulator-max-microvolt = <1000000>; regulator-always-on; regulator-boot-on; vin-supply = <&vcc3v3_sys>; }; }; &bus_npu { bus-supply = <&vdd_logic>; pvtm-supply = <&vdd_cpu>; status = "okay"; }; &cpu0 { cpu-supply = <&vdd_cpu>; }; &dfi { status = "disabled"; }; &dmc { center-supply = <&vdd_logic>; status = "disabled"; }; &gpu { mali-supply = <&vdd_fixed>; status = "okay"; }; &i2s1_8ch { status = "okay"; rockchip,clk-trcm = <1>; pinctrl-names = "default"; pinctrl-0 = <&i2s1m0_sclktx &i2s1m0_lrcktx &i2s1m0_sdi0 &i2s1m0_sdo0>; }; &iep { status = "okay"; }; &iep_mmu { status = "okay"; }; &jpegd { status = "okay"; }; &jpegd_mmu { status = "okay"; }; &mpp_srv { status = "okay"; }; &nandc0 { #address-cells = <1>; #size-cells = <0>; status = "okay"; nand@0 { reg = <0>; nand-bus-width = <8>; nand-ecc-mode = "hw"; nand-ecc-strength = <16>; nand-ecc-step-size = <1024>; }; }; &rk_rga { status = "okay"; }; &rkvdec { status = "okay"; }; &rkvdec_mmu { status = "okay"; }; &rkvenc { venc-supply = <&vdd_logic>; status = "okay"; }; &rkvenc_mmu { status = "okay"; }; &rknpu { rknpu-supply = <&vdd_fixed>; status = "okay"; }; &rknpu_mmu { status = "okay"; }; &route_hdmi { status = "okay"; connect = <&vp0_out_hdmi>; }; &saradc { status = "okay"; vref-supply = <&vcca_1v8>; }; &sdhci { bus-width = <8>; supports-emmc; non-removable; max-frequency = <200000000>; status = "okay"; }; &sdmmc0 { max-frequency = <150000000>; supports-sd; bus-width = <4>; cap-mmc-highspeed; cap-sd-highspeed; disable-wp; sd-uhs-sdr104; vmmc-supply = <&vcc3v3_sd>; vqmmc-supply = <&vccio_sd>; pinctrl-names = "default"; pinctrl-0 = <&sdmmc0_bus4 &sdmmc0_clk &sdmmc0_cmd &sdmmc0_det>; status = "okay"; }; &sdmmc2 { max-frequency = <150000000>; supports-sdio; bus-width = <4>; disable-wp; cap-sd-highspeed; cap-sdio-irq; keep-power-in-suspend; mmc-pwrseq = <&sdio_pwrseq>; non-removable; pinctrl-names = "default"; pinctrl-0 = <&sdmmc2m0_bus4 &sdmmc2m0_cmd &sdmmc2m0_clk>; sd-uhs-sdr104; status = "okay"; }; &sfc { status = "okay"; }; &spdif_8ch { status = "disabled"; }; &tsadc { status = "okay"; }; &u2phy0_host { // phy-supply = <&vcc5v0_host>; status = "okay"; }; &u2phy0_otg { // vbus-supply = <&vcc5v0_otg>; status = "okay"; }; &u2phy1_host { // phy-supply = <&vcc5v0_host>; status = "okay"; }; &u2phy1_otg { // phy-supply = <&vcc5v0_host>; status = "okay"; }; &usb2phy0 { status = "okay"; }; &usb2phy1 { status = "okay"; }; &usb_host0_ehci { status = "okay"; }; &usb_host0_ohci { status = "okay"; }; &usb_host1_ehci { status = "okay"; }; &usb_host1_ohci { status = "okay"; }; &usbdrd_dwc3 { dr_mode = "otg"; extcon = <&usb2phy0>; status = "okay"; }; &usbdrd30 { status = "okay"; }; &usbhost_dwc3 { status = "okay"; }; &usbhost30 { status = "okay"; }; &vad { rockchip,audio-src = <&i2s1_8ch>; rockchip,buffer-time-ms = <128>; rockchip,det-channel = <0>; rockchip,mode = <0>; }; &vdpu { status = "okay"; }; &vdpu_mmu { status = "okay"; }; &vepu { status = "okay"; }; &vepu_mmu { status = "okay"; }; &vop { status = "okay"; assigned-clocks = <&cru DCLK_VOP0>, <&cru DCLK_VOP1>; assigned-clock-parents = <&pmucru PLL_HPLL>, <&cru PLL_VPLL>; }; &vop_mmu { status = "okay"; }; &dsi0 { dsi0_panel: panel@0 { status = "disabled"; }; }; &dsi1 { dsi1_panel: panel@0 { status = "disabled"; }; }; // sata usb30 pcie phys &combphy0_us { status = "okay"; }; &combphy1_usq { status = "okay"; }; &combphy2_psq { status = "okay"; }; //gpio0_b0 for hub reset pin /delete-node/ &xin32k; &spdif_8ch { status = "disabled"; pinctrl-names = "default"; pinctrl-0 = <&spdifm1_tx>; }; &uart8 { status = "okay"; pinctrl-names = "default"; pinctrl-0 = <&uart8m0_xfer &uart8m0_ctsn>; }; &wireless_wlan { pinctrl-names = "default"; pinctrl-0 = <&wifi_host_wake_irq>; WIFI,host_wake_irq = <&gpio3 RK_PD4 GPIO_ACTIVE_HIGH>; }; &wireless_bluetooth { compatible = "bluetooth-platdata"; //clocks = <&rk809 1>; //clock-names = "ext_clock"; //wifi-bt-power-toggle; uart_rts_gpios = <&gpio2 RK_PB1 GPIO_ACTIVE_LOW>; pinctrl-names = "default", "rts_gpio"; pinctrl-0 = <&uart8m0_rtsn>; pinctrl-1 = <&uart8_gpios>; BT,reset_gpio = <&gpio4 RK_PC4 GPIO_ACTIVE_HIGH>; BT,wake_gpio = <&gpio0 RK_PD5 GPIO_ACTIVE_HIGH>; BT,wake_host_irq = <&gpio0 RK_PD4 GPIO_ACTIVE_HIGH>; status = "okay"; }; &pwm0 { status = "okay"; pinctrl-names = "active"; }; &pwm1 { status = "okay"; pinctrl-names = "active"; pinctrl-0 = <&pwm1m0_pins>; }; &pwm2 { status = "okay"; pinctrl-names = "active"; pinctrl-0 = <&pwm2m0_pins>; }; &i2c0 { status = "okay"; vdd_cpu: syr837@40 { compatible = "silergy,syr827"; reg = <0x40>; vin-supply = <&vcc3v3_sys>; regulator-compatible = "fan53555-reg"; // pinctrl-names = "default"; // pinctrl-0 = <&vsel1_gpio>; // vsel-gpios = <&gpio0 RK_PA2 GPIO_ACTIVE_HIGH>; regulator-name = "vdd_cpu"; regulator-min-microvolt = <712500>; regulator-max-microvolt = <1390000>; regulator-ramp-delay = <2300>; fcs,suspend-voltage-selector = <1>; regulator-always-on; regulator-boot-on; regulator-initial-state = <3>; regulator-state-mem { regulator-off-in-suspend; }; }; };