// SPDX-License-Identifier: (GPL-2.0+ OR MIT) /* * Copyright (c) 2017 Fuzhou Rockchip Electronics Co., Ltd */ /dts-v1/; #include #include #include #include #include #include "rk3126.dtsi" #include "rk312x-android.dtsi" / { adc-keys { compatible = "adc-keys"; io-channels = <&saradc 2>; io-channel-names = "buttons"; poll-interval = <100>; keyup-threshold-microvolt = <3300000>; button-up { label = "Volume Up"; linux,code = ; press-threshold-microvolt = <0>; }; button-down { label = "Volume Down"; linux,code = ; press-threshold-microvolt = <1650000>; }; }; backlight: backlight { compatible = "pwm-backlight"; pwms = <&pwm0 0 25000 0>; brightness-levels = < 255 169 168 168 167 166 166 165 164 164 163 162 162 161 160 160 159 158 158 157 156 156 155 154 154 153 152 152 151 150 150 149 148 148 147 146 146 145 144 144 143 142 142 141 140 140 139 138 138 137 136 136 135 134 134 133 132 132 131 130 130 129 128 128 127 126 126 125 124 124 123 122 122 121 120 120 119 118 118 117 116 116 115 114 114 113 112 112 111 110 110 109 108 108 107 106 106 105 104 104 103 102 102 101 100 100 99 98 98 97 96 96 95 94 94 93 92 92 91 90 90 89 88 88 87 86 86 85 84 84 83 82 82 81 80 80 79 78 78 77 76 76 75 74 74 73 72 72 71 70 70 69 68 68 67 66 66 65 64 64 63 62 62 61 60 60 59 58 58 57 56 56 55 54 54 53 52 52 51 50 50 49 48 48 47 46 46 45 44 44 43 42 42 41 40 40 39 38 38 37 36 36 35 34 34 33 32 32 31 30 30 29 28 28 27 26 26 25 24 24 23 22 22 21 20 20 19 18 18 17 16 16 15 14 14 13 12 12 11 10 10 9 8 8 7 6 6 5 4 4 3 2 1 1 1 0>; default-brightness-level = <128>; enable-gpios = <&gpio2 RK_PB6 GPIO_ACTIVE_HIGH>; }; charge-animation { compatible = "rockchip,uboot-charge"; rockchip,uboot-charge-on = <1>; rockchip,android-charge-on = <0>; rockchip,uboot-low-power-voltage = <3500>; rockchip,screen-on-voltage = <3600>; status = "okay"; }; rockchip_headset { compatible = "rockchip_headset"; headset_gpio = <&gpio2 18 GPIO_ACTIVE_LOW>; }; sound { compatible = "simple-audio-card"; simple-audio-card,format = "i2s"; simple-audio-card,mclk-fs = <256>; simple-audio-card,name = "rockchip,rk312x"; simple-audio-card,cpu { sound-dai = <&i2s_2ch>; }; simple-audio-card,codec { sound-dai = <&codec>; }; }; vccadc_ref: vccadc-ref { compatible = "regulator-fixed"; regulator-name = "SARADC_AVDD33"; regulator-always-on; regulator-boot-on; regulator-min-microvolt = <3300000>; regulator-max-microvolt = <3300000>; }; vcc_sys: vcc-sys { compatible = "regulator-fixed"; regulator-name = "vcc_sys"; regulator-min-microvolt = <4000000>; regulator-max-microvolt = <4000000>; regulator-always-on; }; xin32k: xin32k { compatible = "fixed-clock"; clock-frequency = <32768>; clock-output-names = "xin32k"; #clock-cells = <0>; }; wireless-bluetooth { compatible = "bluetooth-platdata"; /* wifi-bt-power-toggle; */ keep_wifi_power_on = <1>; uart_rts_gpios = <&gpio1 11 GPIO_ACTIVE_LOW>; /* GPIO1_B3 */ pinctrl-names = "default","rts_gpio"; pinctrl-0 = <&uart1_rts>; pinctrl-1 = <&uart1_rts_gpio>; BT,reset_gpio = <&gpio2 9 GPIO_ACTIVE_HIGH>; /* GPIO2_B1 */ BT,wake_gpio = <&gpio0 27 GPIO_ACTIVE_HIGH>; /* GPIO0_D3 */ BT,wake_host_irq = <&gpio2 21 GPIO_ACTIVE_LOW>; /* GPIO2_C5 */ status = "okay"; }; wireless-wlan { compatible = "wlan-platdata"; wifi_chip_type = "rtl8723cs"; WIFI,host_wake_irq = <&gpio2 13 GPIO_ACTIVE_HIGH>; status = "okay"; }; }; &codec { #sound-dai-cells = <0>; hp-ctl-gpios = <&gpio2 17 GPIO_ACTIVE_HIGH>; spk-ctl-gpios = <&gpio2 10 GPIO_ACTIVE_HIGH>; spk-mute-delay = <200>; hp-mute-delay = <100>; is_rk3128 = <0>; spk_volume = <25>; hp_volume = <25>; capture_volume = <26>; gpio_debug = <1>; codec_hp_det = <0>; status = "okay"; }; &cif_new { status = "okay"; ports { port@0 { cif_in_fcam: endpoint@0 { remote-endpoint = <&gc0329_out>; vsync-active = <1>; hsync-active = <1>; }; cif_in_bcam: endpoint@1 { remote-endpoint = <&gc2145_out>; vsync-active = <0>; hsync-active = <1>; }; }; }; }; &cpu0 { cpu-supply = <&vdd_arm>; }; &dsi { status = "okay"; panel@0 { compatible = "fc,fy07018dh26d372-d", "simple-panel-dsi"; reg = <0>; backlight = <&backlight>; power-supply = <&ldo6>; power-invert; enable-gpios = <&gpio2 RK_PC3 GPIO_ACTIVE_HIGH>; reset-gpios = <&gpio2 RK_PC0 GPIO_ACTIVE_LOW>; prepare-delay-ms = <20>; reset-delay-ms = <20>; init-delay-ms = <20>; enable-delay-ms = <120>; disable-delay-ms = <20>; unprepare-delay-ms = <20>; width-mm = <153>; height-mm = <85>; dsi,flags = <(MIPI_DSI_MODE_VIDEO | MIPI_DSI_MODE_VIDEO_BURST | MIPI_DSI_MODE_LPM | MIPI_DSI_MODE_NO_EOT_PACKET)>; dsi,format = ; dsi,lanes = <4>; panel-init-sequence = [ 05 1e 01 01 15 00 02 80 47 15 00 02 81 40 15 00 02 82 04 15 00 02 83 77 15 00 02 84 0f 15 00 02 85 70 15 78 02 86 70 ]; display-timings { native-mode = <&timing0>; timing0: timing0 { clock-frequency = <49500000>; hactive = <1024>; hfront-porch = <120>; hsync-len = <40>; hback-porch = <120>; vactive = <600>; vfront-porch = <14>; vsync-len = <4>; vback-porch = <14>; hsync-active = <0>; vsync-active = <0>; de-active = <0>; pixelclk-active = <0>; }; }; ports { #address-cells = <1>; #size-cells = <0>; port@0 { reg = <0>; panel_in_dsi: endpoint { remote-endpoint = <&dsi_out_panel>; }; }; }; }; ports { #address-cells = <1>; #size-cells = <0>; port@1 { reg = <1>; dsi_out_panel: endpoint { remote-endpoint = <&panel_in_dsi>; }; }; }; }; &route_dsi { status = "okay"; }; &dmc { center-supply = <&vdd_log>; }; &emmc { bus-width = <8>; cap-mmc-highspeed; no-sdio; no-sd; disable-wp; non-removable; num-slots = <1>; status = "okay"; }; &gpu { status = "okay"; mali-supply = <&vdd_log>; }; &i2c0 { status = "okay"; clock-frequency = <400000>; gc0329@31 { compatible = "galaxycore,gc0329"; reg = <0x31>; pinctrl-names = "default"; pinctrl-0 = <&fcam_pd>; clocks = <&cru SCLK_CIF_OUT>; clock-names = "xvclk"; avdd-supply = <&vcc28_cif>; dovdd-supply = <&vcc18_cif>; dvdd-supply = <&vcc18_cif>; pwdn-gpios = <&gpio3 RK_PB3 GPIO_ACTIVE_HIGH>; rockchip,camera-module-index = <1>; rockchip,camera-module-facing = "front"; rockchip,camera-module-name = "default"; rockchip,camera-module-lens-name = "default"; port { gc0329_out: endpoint { remote-endpoint = <&cif_in_fcam>; }; }; }; gc2145@3c { compatible = "galaxycore,gc2145"; reg = <0x3c>; pinctrl-names = "default"; pinctrl-0 = <&bcam_pd>; clocks = <&cru SCLK_CIF_OUT>; clock-names = "xvclk"; avdd-supply = <&vcc28_cif>; dovdd-supply = <&vcc18_cif>; dvdd-supply = <&vcc18_cif>; pwdn-gpios = <&gpio2 RK_PB7 GPIO_ACTIVE_HIGH>; rockchip,camera-module-index = <0>; rockchip,camera-module-facing = "back"; rockchip,camera-module-name = "default"; rockchip,camera-module-lens-name = "default"; port { gc2145_out: endpoint { remote-endpoint = <&cif_in_bcam>; }; }; }; ts@40 { compatible = "gslX680-d708"; reg = <0x40>; touch-gpio = <&gpio2 20 IRQ_TYPE_LEVEL_LOW>; wake-gpio = <&gpio2 12 IRQ_TYPE_LEVEL_LOW>; screen_max_x = <800>; screen_max_y = <480>; status = "okay"; }; rk816: pmic@1a { compatible = "rockchip,rk816"; reg = <0x1a>; interrupt-parent = <&gpio0>; interrupts = <2 IRQ_TYPE_LEVEL_LOW>; pinctrl-names = "default"; pinctrl-0 = <&pmic_int_l>; rockchip,system-power-controller; wakeup-source; gpio-controller; #gpio-cells = <2>; #clock-cells = <1>; clock-output-names = "rk816-clkout1", "rk816-clkout2"; extcon = <&u2phy>; vcc1-supply = <&vcc_sys>; vcc2-supply = <&vcc_sys>; vcc3-supply = <&vcc_sys>; vcc4-supply = <&vcc_sys>; vcc5-supply = <&vcc_io>; vcc6-supply = <&vcc_sys>; gpio { status = "okay"; }; pwrkey { status = "okay"; }; rtc { status = "okay"; }; battery { compatible = "rk816-battery"; ocv_table = < 3500 3625 3685 3697 3718 3735 3748 3760 3774 3788 3802 3816 3834 3853 3877 3908 3946 3975 4018 4071 4106>; design_capacity = <2500>; design_qmax = <2750>; bat_res = <100>; max_input_current = <1500>; max_chrg_current = <1300>; max_chrg_voltage = <4200>; sleep_enter_current = <300>; sleep_exit_current = <300>; sleep_filter_current = <100>; power_off_thresd = <3500>; zero_algorithm_vol = <3850>; max_soc_offset = <60>; monitor_sec = <5>; virtual_power = <0>; power_dc2otg = <0>; dc_det_adc = <0>; }; regulators { vdd_arm: DCDC_REG1{ regulator-name= "vdd_arm"; regulator-min-microvolt = <750000>; regulator-max-microvolt = <1500000>; regulator-ramp-delay = <6001>; regulator-initial-mode = <1>; regulator-always-on; regulator-boot-on; regulator-state-mem { regulator-off-in-suspend; regulator-suspend-microvolt = <900000>; }; }; vdd_log: DCDC_REG2 { regulator-name= "vdd_logic"; regulator-min-microvolt = <750000>; regulator-max-microvolt = <1500000>; regulator-ramp-delay = <6001>; regulator-initial-mode = <1>; regulator-always-on; regulator-boot-on; regulator-state-mem { regulator-on-in-suspend; regulator-suspend-microvolt = <1000000>; }; }; vcc_ddr: DCDC_REG3 { regulator-name = "vcc_ddr"; regulator-always-on; regulator-boot-on; }; vcc_io: DCDC_REG4 { regulator-name = "vcc_io"; regulator-min-microvolt = <3300000>; regulator-max-microvolt = <3300000>; regulator-initial-mode = <1>; regulator-always-on; regulator-boot-on; regulator-state-mem { regulator-on-in-suspend; regulator-suspend-microvolt = <3000000>; }; }; vcc28_cif: LDO_REG1 { regulator-name = "vcc28_cif"; regulator-min-microvolt = <2800000>; regulator-max-microvolt = <2800000>; regulator-always-on; regulator-boot-on; regulator-state-mem { regulator-off-in-suspend; }; }; vcc18_cif: LDO_REG2 { regulator-name = "vcc18_cif"; regulator-min-microvolt = <1800000>; regulator-max-microvolt = <1800000>; regulator-always-on; regulator-boot-on; regulator-state-mem { regulator-off-in-suspend; }; }; vdd_11: LDO_REG3 { regulator-name = "vdd_11"; regulator-min-microvolt = <1100000>; regulator-max-microvolt = <1100000>; regulator-always-on; regulator-boot-on; regulator-state-mem { regulator-on-in-suspend; regulator-suspend-microvolt = <1100000>; }; }; ldo4: LDO_REG4 { regulator-name= "ldo4"; regulator-min-microvolt = <3300000>; regulator-max-microvolt = <3300000>; regulator-always-on; regulator-boot-on; regulator-state-mem { regulator-off-in-suspend; }; }; ldo5: LDO_REG5 { regulator-name= "ldo5"; regulator-min-microvolt = <3000000>; regulator-max-microvolt = <3000000>; regulator-always-on; regulator-boot-on; regulator-state-mem { regulator-on-in-suspend; }; }; ldo6: LDO_REG6 { regulator-name= "ldo6"; regulator-min-microvolt = <3300000>; regulator-max-microvolt = <3300000>; regulator-state-mem { regulator-on-in-suspend; regulator-suspend-microvolt = <3300000>; }; }; }; }; sensor@4c { compatible = "gs_mc3230"; reg = <0x4c>; type = ; irq_enable = <0>; poll_delay_ms = <30>; layout = <3>; reprobe_en = <1>; }; }; &i2s_2ch { #sound-dai-cells = <0>; status = "okay"; }; &iep { status = "okay"; }; &iep_mmu { status = "okay"; }; &mpp_srv { status = "okay"; }; &nandc { status = "okay"; }; &pinctrl { camera { fcam_pd: fcam-pd { rockchip,pins = <3 RK_PB3 RK_FUNC_GPIO &pcfg_pull_none>; }; bcam_pd: bcam-pd { rockchip,pins = <2 RK_PB7 RK_FUNC_GPIO &pcfg_pull_none>; }; }; lcdc { lcdc_lcdc: lcdc-lcdc { rockchip,pins = /* depend on the hardware */ <2 RK_PB0 1 &pcfg_pull_none>, /* DCLK */ /* <2 RK_PB1 1 &pcfg_pull_none>, *//* HSYNC */ /* <2 RK_PB2 1 &pcfg_pull_none>, *//* VSYNC */ <2 RK_PB3 1 &pcfg_pull_none>, /* DEN */ <2 RK_PB4 1 &pcfg_pull_none>, /* DATA10 */ <2 RK_PB5 1 &pcfg_pull_none>, /* DATA11 */ <2 RK_PB6 1 &pcfg_pull_none>, /* DATA12 */ <2 RK_PB7 1 &pcfg_pull_none>, /* DATA13 */ <2 RK_PC0 1 &pcfg_pull_none>, /* DATA14 */ <2 RK_PC1 1 &pcfg_pull_none>, /* DATA15 */ <2 RK_PC2 1 &pcfg_pull_none>, /* DATA16 */ <2 RK_PC3 1 &pcfg_pull_none>; /* DATA17 */ /* <2 RK_PC4 1 &pcfg_pull_none>, *//* DATA18 */ /* <2 RK_PC5 1 &pcfg_pull_none>, *//* DATA19 */ /* <2 RK_PC6 1 &pcfg_pull_none>, *//* DATA20 */ /* <2 RK_PC7 1 &pcfg_pull_none>, *//* DATA21 */ /* <2 RK_PD0 1 &pcfg_pull_none>, *//* DATA22 */ /* <2 RK_PD1 1 &pcfg_pull_none>; *//* DATA23 */ }; }; pmic { pmic_int_l: pmic-int-l { rockchip,pins = <0 RK_PA2 RK_FUNC_GPIO &pcfg_pull_default>; }; }; uart1 { uart1_xfer: uart1-xfer { rockchip,pins = <1 RK_PB1 2 &pcfg_pull_default>, <1 RK_PB2 2 &pcfg_pull_default>; }; }; wireless-bluetooth { uart1_rts_gpio: uart1-rts-gpio { rockchip,pins = <1 RK_PB3 RK_FUNC_GPIO &pcfg_pull_none>; }; }; }; &pwm0 { status = "okay"; }; &rga { status = "okay"; }; &saradc { status = "okay"; vref-supply = <&vccadc_ref>; }; &sdmmc { cap-mmc-highspeed; no-sdio; no-mmc; card-detect-delay = <800>; ignore-pm-notify; keep-power-in-suspend; cd-gpios = <&gpio2 7 GPIO_ACTIVE_LOW>; /* CD GPIO */ status = "disabled"; }; &sdio { max-frequency = <50000000>; cap-sd-highspeed; no-sd; no-mmc; ignore-pm-notify; keep-power-in-suspend; non-removable; vmmc-supply = <&ldo5>; status = "okay"; }; &tsadc { status = "okay"; }; &u2phy { status = "okay"; u2phy_otg: otg-port { status = "okay"; }; u2phy_host: host-port { status = "okay"; }; }; &uart1 { pinctrl-names = "default"; pinctrl-0 = <&uart1_xfer &uart1_cts>; status = "okay"; }; &usb_otg { status = "okay"; }; &vop { status = "okay"; }; &vop_mmu { status = "okay"; }; &vdpu { status = "okay"; }; &vepu { status = "okay"; }; &vpu_mmu { status = "okay"; };