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 <kenjc.bian@rock-chips.com>
Signed-off-by: Hao Xiaowei <hxw@rock-chips.com>
This commit is contained in:
Bian Jin chen
2018-08-17 15:34:43 +08:00
committed by Tao Huang
parent dcf8989b7d
commit 4ea55de3a8
4 changed files with 639 additions and 669 deletions

View File

@@ -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";
};
};
};

View File

@@ -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 * Copyright (c) 2017 Fuzhou Rockchip Electronics Co., Ltd
* 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.
*/ */
/dts-v1/; /dts-v1/;
#include <dt-bindings/gpio/gpio.h> #include "rk3126-bnd-d708.dtsi"
#include <dt-bindings/input/input.h>
#include <dt-bindings/pinctrl/rockchip.h>
#include <dt-bindings/pwm/pwm.h>
#include <dt-bindings/sensor-dev.h>
#include "rk3126.dtsi"
#include "rk312x-android.dtsi"
#include "rk3126-m708-cif-sensor.dtsi"
/ { / {
model = "Rockchip RK3126 bnd-d708 board"; model = "Rockchip RK3126 bnd-d708 board";
compatible = "rockchip,rk3126"; 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 = <KEY_VOLUMEUP>;
press-threshold-microvolt = <0>;
};
button-down {
label = "Volume Down";
linux,code = <KEY_VOLUMEDOWN>;
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 { &firmware_android {
#sound-dai-cells = <0>; compatible = "android,firmware";
hp-ctl-gpios = <&gpio2 17 GPIO_ACTIVE_HIGH>; fstab {
spk-ctl-gpios = <&gpio2 10 GPIO_ACTIVE_HIGH>; compatible = "android,fstab";
spk-mute-delay = <200>; system {
hp-mute-delay = <100>; compatible = "android,system";
is_rk3128 = <0>; dev = "/dev/block/by-name/system";
spk_volume = <25>; type = "ext4";
hp_volume = <25>; mnt_flags = "ro,barrier=1,inode_readahead_blks=8";
capture_volume = <26>; fsmgr_flags = "wait";
gpio_debug = <1>; };
codec_hp_det = <0>; vendor {
status = "okay"; compatible = "android,vendor";
}; dev = "/dev/block/by-name/vendor";
type = "ext4";
&cif { mnt_flags = "ro,barrier=1,inode_readahead_blks=8";
status = "okay"; fsmgr_flags = "wait";
};
&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 = <MIPI_DSI_FMT_RGB888>;
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 = <SENSOR_TYPE_ACCEL>;
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";
};

View File

@@ -0,0 +1,583 @@
// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
/*
* Copyright (c) 2017 Fuzhou Rockchip Electronics Co., Ltd
*/
/dts-v1/;
#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/input/input.h>
#include <dt-bindings/pinctrl/rockchip.h>
#include <dt-bindings/pwm/pwm.h>
#include <dt-bindings/sensor-dev.h>
#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 = <KEY_VOLUMEUP>;
press-threshold-microvolt = <0>;
};
button-down {
label = "Volume Down";
linux,code = <KEY_VOLUMEDOWN>;
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 = <MIPI_DSI_FMT_RGB888>;
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 = <SENSOR_TYPE_ACCEL>;
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";
};

View File

@@ -1,43 +1,6 @@
// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
/* /*
* Copyright (c) 2017 Fuzhou Rockchip Electronics Co., Ltd * 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 <dt-bindings/display/mipi_dsi.h> #include <dt-bindings/display/mipi_dsi.h>
@@ -67,6 +30,10 @@
status = "okay"; status = "okay";
}; };
firmware {
firmware_android: android {};
};
reserved-memory { reserved-memory {
#address-cells = <1>; #address-cells = <1>;
#size-cells = <1>; #size-cells = <1>;