From 4ea55de3a8edac868a9da37126caa9ace7bf8efa Mon Sep 17 00:00:00 2001 From: Bian Jin chen Date: Fri, 17 Aug 2018 15:34:43 +0800 Subject: [PATCH] arm: dts: rk312x: rk3126-bnd-d708: Separate android fireware. Split DT source files to separate out android fireware for Android Pip & Oreo Change-Id: I6fe9ad626ea05d2f5ae29ff2e8ee314d9833bbca Signed-off-by: Bian Jin chen Signed-off-by: Hao Xiaowei --- arch/arm/boot/dts/rk3126-bnd-d708-avb.dts | 31 ++ arch/arm/boot/dts/rk3126-bnd-d708.dts | 651 +--------------------- arch/arm/boot/dts/rk3126-bnd-d708.dtsi | 583 +++++++++++++++++++ arch/arm/boot/dts/rk312x-android.dtsi | 43 +- 4 files changed, 639 insertions(+), 669 deletions(-) create mode 100644 arch/arm/boot/dts/rk3126-bnd-d708-avb.dts create mode 100644 arch/arm/boot/dts/rk3126-bnd-d708.dtsi diff --git a/arch/arm/boot/dts/rk3126-bnd-d708-avb.dts b/arch/arm/boot/dts/rk3126-bnd-d708-avb.dts new file mode 100644 index 000000000000..c207c9df28dc --- /dev/null +++ b/arch/arm/boot/dts/rk3126-bnd-d708-avb.dts @@ -0,0 +1,31 @@ +// SPDX-License-Identifier: (GPL-2.0+ OR MIT) +/* + * Copyright (c) 2017 Fuzhou Rockchip Electronics Co., Ltd + */ + +/dts-v1/; +#include "rk3126-bnd-d708.dtsi" + +/ { + model = "Rockchip RK3126 bnd-d708 board"; + compatible = "rockchip,rk3126"; +}; + +&firmware_android { + compatible = "android,firmware"; + boot_devices = "10500000.nandc"; + vbmeta { + compatible = "android,vbmeta"; + parts = "vbmeta,boot,system,vendor,dtbo"; + }; + fstab { + compatible = "android,fstab"; + vendor { + compatible = "android,vendor"; + dev = "/dev/block/by-name/vendor"; + type = "ext4"; + mnt_flags = "ro,barrier=1,inode_readahead_blks=8"; + fsmgr_flags = "wait"; + }; + }; +}; diff --git a/arch/arm/boot/dts/rk3126-bnd-d708.dts b/arch/arm/boot/dts/rk3126-bnd-d708.dts index 6428c7d5a979..94f81e7bd0e4 100644 --- a/arch/arm/boot/dts/rk3126-bnd-d708.dts +++ b/arch/arm/boot/dts/rk3126-bnd-d708.dts @@ -1,644 +1,33 @@ +// SPDX-License-Identifier: (GPL-2.0+ OR MIT) /* - * This file is dual-licensed: you can use it either under the terms - * of the GPL or the X11 license, at your option. Note that this dual - * licensing only applies to this file, and not this project as a - * whole. - * - * a) This file is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License as - * published by the Free Software Foundation; either version 2 of the - * License, or (at your option) any later version. - * - * This file is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * Or, alternatively, - * - * b) Permission is hereby granted, free of charge, to any person - * obtaining a copy of this software and associated documentation - * files (the "Software"), to deal in the Software without - * restriction, including without limitation the rights to use, - * copy, modify, merge, publish, distribute, sublicense, and/or - * sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following - * conditions: - * - * The above copyright notice and this permission notice shall be - * included in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, - * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES - * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND - * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT - * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, - * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - * OTHER DEALINGS IN THE SOFTWARE. + * Copyright (c) 2017 Fuzhou Rockchip Electronics Co., Ltd */ /dts-v1/; -#include -#include -#include -#include -#include -#include "rk3126.dtsi" -#include "rk312x-android.dtsi" -#include "rk3126-m708-cif-sensor.dtsi" +#include "rk3126-bnd-d708.dtsi" / { model = "Rockchip RK3126 bnd-d708 board"; compatible = "rockchip,rk3126"; - - 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>; - }; - - firmware { - android { - compatible = "android,firmware"; - fstab { - compatible = "android,fstab"; - system { - compatible = "android,system"; - dev = "/dev/block/by-name/system"; - type = "ext4"; - mnt_flags = "ro,barrier=1,inode_readahead_blks=8"; - fsmgr_flags = "wait"; - }; - vendor { - compatible = "android,vendor"; - dev = "/dev/block/by-name/vendor"; - type = "ext4"; - mnt_flags = "ro,barrier=1,inode_readahead_blks=8"; - fsmgr_flags = "wait"; - }; - }; - }; - }; - - 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 { - status = "okay"; -}; - -&cif_sensor { - status = "okay"; -}; - -&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_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>; - }; +&firmware_android { + compatible = "android,firmware"; + fstab { + compatible = "android,fstab"; + system { + compatible = "android,system"; + dev = "/dev/block/by-name/system"; + type = "ext4"; + mnt_flags = "ro,barrier=1,inode_readahead_blks=8"; + fsmgr_flags = "wait"; + }; + vendor { + compatible = "android,vendor"; + dev = "/dev/block/by-name/vendor"; + type = "ext4"; + mnt_flags = "ro,barrier=1,inode_readahead_blks=8"; + fsmgr_flags = "wait"; }; }; }; - -&dmc { - center-supply = <&vdd_log>; -}; - -&emmc { - bus-width = <8>; - cap-mmc-highspeed; - supports-emmc; - disable-wp; - non-removable; - num-slots = <1>; - status = "okay"; -}; - -&gpu { - status = "okay"; - mali-supply = <&vdd_log>; -}; - -&i2c0 { - status = "okay"; - clock-frequency = <400000>; - - 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; - regulator-initial-mode = <1>; - }; - - 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"; -}; - -&mipi_dphy { - status = "okay"; -}; - -&nandc { - status = "okay"; -}; - -&pinctrl { - 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 2 RK_FUNC_GPIO &pcfg_pull_default>; - }; - }; - - wireless-bluetooth { - uart1_rts_gpio: uart1-rts-gpio { - rockchip,pins = <1 11 RK_FUNC_GPIO &pcfg_pull_none>; - }; - }; -}; - -&pwm0 { - status = "okay"; -}; - -&rga { - status = "okay"; -}; - -&route_dsi { - status = "okay"; -}; - -&saradc { - status = "okay"; - vref-supply = <&vccadc_ref>; -}; - -&sdmmc { - cap-mmc-highspeed; - supports-sd; - 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; - supports-sdio; - 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"; -}; - -&vpu { - status = "okay"; -}; diff --git a/arch/arm/boot/dts/rk3126-bnd-d708.dtsi b/arch/arm/boot/dts/rk3126-bnd-d708.dtsi new file mode 100644 index 000000000000..4817fcfbd008 --- /dev/null +++ b/arch/arm/boot/dts/rk3126-bnd-d708.dtsi @@ -0,0 +1,583 @@ +// 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" +#include "rk3126-m708-cif-sensor.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>; + }; + + 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 { + status = "okay"; +}; + +&cif_sensor { + status = "okay"; +}; + +&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_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>; + }; + }; + }; +}; + +&dmc { + center-supply = <&vdd_log>; +}; + +&emmc { + bus-width = <8>; + cap-mmc-highspeed; + supports-emmc; + disable-wp; + non-removable; + num-slots = <1>; + status = "okay"; +}; + +&gpu { + status = "okay"; + mali-supply = <&vdd_log>; +}; + +&i2c0 { + status = "okay"; + clock-frequency = <400000>; + + 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; + regulator-initial-mode = <1>; + }; + + 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"; +}; + +&mipi_dphy { + status = "okay"; +}; + +&nandc { + status = "okay"; +}; + +&pinctrl { + 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 2 RK_FUNC_GPIO &pcfg_pull_default>; + }; + }; + + wireless-bluetooth { + uart1_rts_gpio: uart1-rts-gpio { + rockchip,pins = <1 11 RK_FUNC_GPIO &pcfg_pull_none>; + }; + }; +}; + +&pwm0 { + status = "okay"; +}; + +&rga { + status = "okay"; +}; + +&route_dsi { + status = "okay"; +}; + +&saradc { + status = "okay"; + vref-supply = <&vccadc_ref>; +}; + +&sdmmc { + cap-mmc-highspeed; + supports-sd; + 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; + supports-sdio; + 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"; +}; + +&vpu { + status = "okay"; +}; diff --git a/arch/arm/boot/dts/rk312x-android.dtsi b/arch/arm/boot/dts/rk312x-android.dtsi index 1cda2dc70a4a..617a20653e5e 100644 --- a/arch/arm/boot/dts/rk312x-android.dtsi +++ b/arch/arm/boot/dts/rk312x-android.dtsi @@ -1,43 +1,6 @@ +// SPDX-License-Identifier: (GPL-2.0+ OR MIT) /* * Copyright (c) 2017 Fuzhou Rockchip Electronics Co., Ltd - * - * This file is dual-licensed: you can use it either under the terms - * of the GPL or the X11 license, at your option. Note that this dual - * licensing only applies to this file, and not this project as a - * whole. - * - * a) This file is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License as - * published by the Free Software Foundation; either version 2 of the - * License, or (at your option) any later version. - * - * This file is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * Or, alternatively, - * - * b) Permission is hereby granted, free of charge, to any person - * obtaining a copy of this software and associated documentation - * files (the "Software"), to deal in the Software without - * restriction, including without limitation the rights to use, - * copy, modify, merge, publish, distribute, sublicense, and/or - * sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following - * conditions: - * - * The above copyright notice and this permission notice shall be - * included in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, - * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES - * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND - * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT - * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, - * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - * OTHER DEALINGS IN THE SOFTWARE. */ #include @@ -67,6 +30,10 @@ status = "okay"; }; + firmware { + firmware_android: android {}; + }; + reserved-memory { #address-cells = <1>; #size-cells = <1>;