blob: b8bc88cecacfd51f29662688dd44e183ce5336c7 [file] [log] [blame]
// SPDX-License-Identifier: GPL-2.0
/*
* Copyright (C) 2023 ASR Microelectronics Co., Ltd.
*/
/dts-v1/;
#include "asr1806.dtsi"
/ {
model = "ASR 1806(FALCON-T) Board EVB";
compatible = "asr,1803-evb", "asr,1803";
chosen {
bootargs = "root=/dev/mtdblock5 rootfstype=squashfs init=/etc/preinit noinitrd console=ttyS0,115200 mem=128M";
};
memory {
reg = <0x00000000 0x10000000>;
};
firmware {
optee {
compatible = "linaro,optee-tz";
method = "smc";
};
};
soc {
axi@d4200000 { /* AXI */
lcd: lcd@d420a000 {
compatible = "asr,fb";
pinctrl-names = "default";
pinctrl-0 = <&lcd_pmx_func>;
interrupts = <51>;
lpm-qos = <PM_QOS_CPUIDLE_BLOCK_AXI>;
reg = <0xd420a000 0x800>;
//avdd-supply = <&ldo1>;
status = "okay";
};
backlight: pwm_bl {
compatible = "pwm-backlight";
pwms = <&pwm2 50000>;
brightness-levels = <0 4 8 16 32 64 128 255>;
default-brightness-level = <6>;
status = "okay";
};
usbphy: usbphy@d4207000 {
status = "okay";
};
#ifdef CONFIG_USB_DWC2_ASR_OTG /* otg mode */
usb: usb@c0000000 {
dr_mode = "otg";
pinctrl-names = "default","sleep";
pinctrl-0 = <&usb_id_pinmux &usb_host_pinmux>;
pinctrl-1 = <&usb_id_pinmux_slp &usb_host_pinmux>;
usbid_gpio = <99>;
edge_detect_gpio = <99>;
otg,use-gpio-vbus;
gpio-num = <122>;
status = "okay";
};
#else
usb: usb@c0000000 {
status = "okay";
};
#endif
qspi: spi@0xd420b000 {
asr,qspi-freq = <78000000>;
status = "okay";
};
/* SD card */
sdh0: sdh@d4280000 {
pinctrl-names = "default", "slow", "fast";
pinctrl-0 = <&sdh0_pmx_func1 &sdh0_pmx_func2 &sdh0_pmx_func3>;
pinctrl-1 = <&sdh0_pmx_func1_slow &sdh0_pmx_func2_slow &sdh0_pmx_func3>;
pinctrl-2 = <&sdh0_pmx_func1_fast &sdh0_pmx_func2_fast &sdh0_pmx_func3>;
/*
* Genernal use, juse set vmmc-supply and vqmmc-supply
* vmmc-supply = <&supply1>
* vqmmc-supply = <&supply2>
*
* For compatibility, to select one from two supply source
* vmmc-supply = <&supply1 &supply1_backup>;
* vqmmc-supply = <&supply2 &supply2_backup>;
* vmmc2-supply = <&supply1_backup &supply1>;
* vqmmc2-supply = <&supply2_backup &supply2>;
*/
vmmc-supply = <&vcc_sdh1>;
vqmmc-supply = <&pm802ldo6>;
#ifndef CONFIG_ASR_DSDS
vmmc2-supply = <&vcc_sdh1 &pm802ldo4>;
vqmmc2-supply = <&pm803ldo8 &pm802ldo6>;
#endif
bus-width = <4>;
no-mmc;
no-sdio;
non-removable;
broken-cd;
wp-inverted;
asr,sdh-pm-runtime-en;
asr,sdh-host-caps-disable = <(MMC_CAP_UHS_SDR104)>;
asr,sdh-quirks = <(
SDHCI_QUIRK_BROKEN_CARD_DETECTION |
SDHCI_QUIRK_BROKEN_TIMEOUT_VAL
)>;
asr,sdh-quirks2 = <(
SDHCI_QUIRK2_SET_AIB_MMC |
SDHCI_QUIRK2_PRESET_VALUE_BROKEN
)>;
/* prop "sdh-dtr-data":
<timing preset_rate src_rate tx_delay rx_delay tx_dline_reg rx_dline_reg> */
asr,sdh-dtr-data =
<PXA_MMC_TIMING_LEGACY PXA_SDH_DTR_26M PXA_SDH_DTR_104M 0 0 0 0>,
<PXA_MMC_TIMING_SD_HS PXA_SDH_DTR_52M PXA_SDH_DTR_104M 0 0 0 0>,
<PXA_MMC_TIMING_UHS_DDR50 PXA_SDH_DTR_52M PXA_SDH_DTR_104M 0 0 0 3>,
<PXA_MMC_TIMING_UHS_SDR50 PXA_SDH_DTR_104M PXA_SDH_DTR_208M 0 0 0 0>,
<PXA_MMC_TIMING_UHS_SDR104 PXA_SDH_DTR_208M PXA_SDH_DTR_208M 0 0 0 0>,
<PXA_MMC_TIMING_MAX PXA_SDH_DTR_PS_NONE PXA_SDH_DTR_104M 0 0 0 0>;
status = "okay";
};
/* SDIO */
sdh1: sdh@d4280800 {
pinctrl-names = "default", "fast", "sleep";
pinctrl-0 = <&sdh1_pmx_func1 &sdh1_pmx_func2 &sdh1_pmx_func3>;
pinctrl-1 = <&sdh1_pmx_func1_fast &sdh1_pmx_func2_fast &sdh1_pmx_func3>;
pinctrl-2 = <&sdh1_pmx_edge_wakeup>;
bus-width = <4>;
no-mmc;
no-sd;
non-removable;
keep-power-in-suspend;
enable-sdio-wakeup;
/* clk-scaling-config:
<up_threshold down_threshold polling_interval> */
clk-scaling-config = <25 12 200>;
min-ddr-qos = <156000 312000 400000>;
asr,sdh-pm-runtime-en;
asr,sdh-quirks = <(
SDHCI_QUIRK_BROKEN_CARD_DETECTION |
SDHCI_QUIRK_BROKEN_TIMEOUT_VAL
)>;
asr,sdh-quirks2 = <(
SDHCI_QUIRK2_NO_TIMER_RETUNING |
SDHCI_QUIRK2_PRESET_VALUE_BROKEN |
SDHCI_QUIRK2_BASE_CLOCK_ALWAYS_ON
)>;
asr,sdh-pm-caps = <(MMC_PM_KEEP_POWER)>;
asr,sdh-host-caps2 = <(
MMC_CAP2_ONLY_1_8V |
MMC_CAP2_DISABLE_PROBE_CDSCAN |
MMC_CAP2_CLK_SCALE |
MMC_CAP2_BUS_CLK_NO_SCALE
)>;
/* prop "sdh-dtr-data":
<timing preset_rate src_rate tx_delay rx_delay tx_dline_reg rx_dline_reg> */
asr,sdh-dtr-data =
<PXA_MMC_TIMING_LEGACY PXA_SDH_DTR_26M PXA_SDH_DTR_104M 0 0 0 0>,
<PXA_MMC_TIMING_SD_HS PXA_SDH_DTR_45M PXA_SDH_DTR_89M 0 0 0 0>,
<PXA_MMC_TIMING_UHS_DDR50 PXA_SDH_DTR_52M PXA_SDH_DTR_104M 0 0 0 3>,
<PXA_MMC_TIMING_UHS_SDR50 PXA_SDH_DTR_83M PXA_SDH_DTR_83M 0 0 0 3>,
<PXA_MMC_TIMING_UHS_SDR104 PXA_SDH_DTR_208M PXA_SDH_DTR_208M 0 0 0 0>,
<PXA_MMC_TIMING_MAX PXA_SDH_DTR_PS_NONE PXA_SDH_DTR_89M 0 0 0 0>;
status = "okay";
};
pcie0: pcie@0xd4288000{
reset-gpios = <&gpio 42 0 >;
status = "okay";
};
pciephy0: pcie-phy@d4206000 {
status = "okay";
};
camera: camera@d420d000 {
compatible = "asr,camera";
reg = <0xd420d000 0x1000>, /* IPE registers */
<0xd420f000 0x1000>; /* ISP registers */
reg-names = "ipe", "isp";
interrupts = <64>;
pinctrl-names = "default";
pinctrl-0 = <&isp_spi_data>;
lpm-qos = <PM_QOS_CPUIDLE_BLOCK_AXI>;
clock-frequency = <24>;
clocks = <&soc_clocks ASR1803_CLK_CAMERA>;
clock-names = "cam_clk";
status = "okay";
port {
#address-cells = <1>;
#size-cells = <0>;
spi_in_cam: endpoint@0 {
reg = <0>;
remote-endpoint = <&gc0312_out>;
};
};
};
};
apb@d4000000 {
pwm2: pwm@d401a800 {
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_pwm2>;
status = "okay";
};
mfpr: mfpr@d401e000 {
status = "okay";
};
timer0: timer@d4014000 {
status = "okay";
};
uart1: uart@d4017000 { /* nezhas evb use ap uart */
pinctrl-names = "default","sleep";
pinctrl-0 = <&uart1_pmx_func1 &uart1_pmx_func2>;
pinctrl-1 = <&uart1_pmx_func1_sleep &uart1_pmx_func2>;
edge-wakeup-gpio = <&gpio 29 0>; /* GPIO29: AP UART rx pin */
status = "okay";
};
uart2: uart@d4036000 {
pinctrl-names = "default";
pinctrl-0 = <&gps_pmx_uart_rxd &gps_pmx_uart_txd>;
status = "okay";
};
rtc: rtc@d4010000 {
status = "okay";
};
tsc: tsc@d4013500 {
pinctrl-names = "default";
pinctrl-0 = <&tsc_pmx>;
status = "okay";
};
pmx: pinmux@d401e000 {
/* pin base = base_addr / 4, nr pins & gpio function */
pinctrl-single,gpio-range = <
/*
* GPIO number is hardcoded for range at here.
* In gpio chip, GPIO number is not hardcoded for range.
* Since one gpio pin may be routed to multiple pins,
* define these gpio range in pxa910-dkb.dts not pxa910.dtsi.
*/
/*&range 80 4 0 */ /* GPIO25 ~ GPIO28 */
&range 55 32 0 /* GPIO0 ~ GPIO31 */
&range 87 32 0 /* GPIO32 ~ GPIO63 */
&range 119 32 0 /* GPIO64 ~ GPIO95 */
&range 151 32 0 /* GPIO96 ~ GPIO127 */
>;
lcd_pmx_func: lcd_pmx_func {
pinctrl-single,pins = <
#ifdef CONFIG_FB_ASR_SPI
GPIO00 AF3 /* SPI_DCLK */
GPIO01 AF3 /* SPI_DCX */
GPIO16 AF3 /* SPI_DOUT_1 */
GPIO02 AF3 /* SPI_CS0 */
GPIO03 AF3 /* SPI_DIN */
GPIO06 AF3 /* SPI_DOUT */
GPIO07 AF3 /* SPI_VSYNC */
GPIO15 AF3 /* SPI_RSTB */
#elif defined(CONFIG_FB_ASR_MCU)
GPIO00 AF5 /* MCU_D0 */
GPIO01 AF5 /* MCU_D5 */
GPIO02 AF5 /* MCU_CS0 */
GPIO03 AF5 /* MCU_RDB */
GPIO06 AF5 /* MCU_WRB */
GPIO07 AF5 /* MCU_VSYNC */
GPIO15 AF5 /* MCU_RSTB */
GPIO16 AF5 /* MCU_D6 */
GPIO17 AF5 /* MCU_A0 */
GPIO18 AF5 /* MCU_D7 */
GPIO33 AF3 /* MCU_D3 */
GPIO34 AF3 /* MCU_D4 */
GPIO35 AF3 /* MCU_D1 */
GPIO36 AF3 /* MCU_D2 */
#endif
>;
/* NOTE: need to PULL_UP here */
DS_MEDIUM;PULL_UP;EDGE_NONE;LPM_NONE;
};
pinctrl_pwm2: pmw2grp {
pinctrl-single,pins = <
VCXO_OUT AF2 /* pwm2 */
>;
DS_MEDIUM;PULL_UP;EDGE_NONE;LPM_NONE;
};
tsc_pmx: tsc_pmx {
pinctrl-single,pins = <
GPIO37 AF1 /* TSC_XL */
GPIO38 AF1 /* TSC_XR */
GPIO39 AF1 /* TSC_YD */
GPIO40 AF1 /* TSC_YU */
>;
DS_MEDIUM;PULL_DOWN;EDGE_NONE;LPM_NONE;
};
uart1_pmx_func1: uart1_pmx_func1 {
pinctrl-single,pins = <
GPIO29 AF1
>;
MFP_DEFAULT;
};
uart1_pmx_func2: uart1_pmx_func2 {
pinctrl-single,pins = <
GPIO30 AF1
>;
MFP_DEFAULT;
};
uart1_pmx_func1_sleep: uart1_pmx_func1_sleep {
pinctrl-single,pins = <
GPIO29 AF1
>;
DS_MEDIUM;PULL_NONE;EDGE_BOTH;SL_NORMAL;
};
twsi0_pmx_func: twsi0_pmx_func {
pinctrl-single,pins = <
GPIO49 AF1
GPIO50 AF1
>;
MFP_LPM_FLOAT;
};
twsi0_pmx_gpio: twsi0_pmx_gpio {
pinctrl-single,pins = <
GPIO49 AF0
GPIO50 AF0
>;
MFP_LPM_FLOAT;
};
twsi1_pmx_func: twsi1_pmx_func {
pinctrl-single,pins = <
GPIO10 AF1
GPIO11 AF1
>;
MFP_LPM_FLOAT;
};
twsi1_pmx_gpio: twsi1_pmx_gpio {
pinctrl-single,pins = <
GPIO10 AF0
GPIO11 AF0
>;
MFP_LPM_FLOAT;
};
/* no pull, no LPM */
dvc_pmx_func: dvc_pmx_func {
/* hw-dvc */
pinctrl-single,pins = <
TDS_DIO0 AF0
TDS_DIO1 AF0
>;
DS_MEDIUM;PULL_FLOAT;EDGE_NONE;SL_NORMAL;
};
leds_pmx_func: leds_pmx_func {
pinctrl-single,pins = <
DF_IO10 AF1
DF_IO11 AF1
DF_IO12 AF1
>;
DS_MEDIUM;PULL_FLOAT;EDGE_NONE;SL_NORMAL;
};
gps_pmx_onoff: gps_pmx_onoff {
pinctrl-single,pins = <
TDS_TXREV AF1
>;
DS_MEDIUM;PULL_DOWN;EDGE_NONE;SL_NORMAL;
};
gps_pmx_reset: gps_pmx_reset {
pinctrl-single,pins = <
TDS_RXON AF1
>;
DS_MEDIUM;PULL_DOWN;EDGE_NONE;SL_NORMAL;
};
gps_pmx_uart_rxd: gps_pmx_uart_rxd {
/* gps dedicated uart */
pinctrl-single,pins = <
GPIO51 AF1
GPIO32 AF1
>;
MFP_DEFAULT;
};
gps_pmx_uart_txd: gps_pmx_uart_txd {
/* gps dedicated uart */
pinctrl-single,pins = <
GPIO52 AF1
GPIO31 AF1
>;
MFP_DEFAULT;
};
sd_ldo_en: sd_ldo_en {
pinctrl-single,pins = <
GPIO45 AF0
>;
MFP_PULL_DOWN;
};
sdh0_pmx_func1: sdh0_pmx_func1 {
pinctrl-single,pins = <
MMC1_DAT3 AF0
MMC1_DAT2 AF0
MMC1_DAT1 AF0
MMC1_DAT0 AF0
MMC1_CMD AF0
>;
DS_MEDIUM;PULL_NONE;EDGE_NONE;SL_NORMAL;
};
sdh0_pmx_func2: sdh0_pmx_func2 {
pinctrl-single,pins = <
MMC1_CLK AF0
>;
DS_MEDIUM;PULL_NONE;EDGE_NONE;
};
sdh0_pmx_func3: sdh0_pmx_func3 {
pinctrl-single,pins = <
MMC1_CD AF0
>;
MFP_PULL_UP;
};
sdh0_pmx_func1_slow: sdh0_pmx_func1_slow {
pinctrl-single,pins = <
MMC1_DAT3 AF0
MMC1_DAT2 AF0
MMC1_DAT1 AF0
MMC1_DAT0 AF0
MMC1_CMD AF0
>;
DS_FAST0;PULL_NONE;EDGE_NONE;SL_NORMAL;
};
sdh0_pmx_func2_slow: sdh0_pmx_func2_slow {
pinctrl-single,pins = <
MMC1_CLK AF0
>;
DS_FAST0;PULL_NONE;EDGE_NONE;
};
sdh0_pmx_func1_fast: sdh0_pmx_func1_fast {
pinctrl-single,pins = <
MMC1_DAT3 AF0
MMC1_DAT2 AF0
MMC1_DAT1 AF0
MMC1_DAT0 AF0
MMC1_CMD AF0
>;
DS_FAST1;PULL_NONE;EDGE_NONE;SL_NORMAL;
};
sdh0_pmx_func2_fast: sdh0_pmx_func2_fast {
pinctrl-single,pins = <
MMC1_CLK AF0
>;
DS_FAST1;PULL_NONE;EDGE_NONE;
};
sdh1_pmx_func1_fast: sdh1_pmx_func1_fast {
pinctrl-single,pins = <
TDS_DIO13 AF0 /* WLAN_DAT3 */
TDS_DIO14 AF0 /* WLAN_DAT2 */
TDS_DIO15 AF0 /* WLAN_DAT1 */
TDS_DIO16 AF0 /* WLAN_DAT0 */
TDS_DIO17 AF0 /* WLAN_CMD */
>;
DS_FAST0;PULL_NONE;EDGE_NONE;SL_NORMAL;
};
sdh1_pmx_func2_fast: sdh1_pmx_func2_fast {
pinctrl-single,pins = <
TDS_DIO18 AF0 /* WLAN_CLK */
>;
DS_FAST0;PULL_DOWN;EDGE_NONE;SL_NORMAL;
};
sdh1_pmx_func1: sdh1_pmx_func1 {
pinctrl-single,pins = <
TDS_DIO13 AF0 /* WLAN_DAT3 */
TDS_DIO14 AF0 /* WLAN_DAT2 */
TDS_DIO15 AF0 /* WLAN_DAT1 */
TDS_DIO16 AF0 /* WLAN_DAT0 */
TDS_DIO17 AF0 /* WLAN_CMD */
>;
DS_MEDIUM;PULL_NONE;EDGE_NONE;SL_LOW;
};
sdh1_pmx_func2: sdh1_pmx_func2 {
pinctrl-single,pins = <
TDS_DIO18 AF0 /* WLAN_CLK */
>;
DS_MEDIUM;PULL_DOWN;EDGE_NONE;SL_LOW;
};
sdh1_pmx_func3: sdh1_pmx_func3 {
pinctrl-single,pins = <
PRI_TDI AF1 /* WLAN_WAKE_HOST */
>;
MFP_PULL_DOWN;
};
sdh1_pmx_edge_wakeup: sdh1_pmx_edge_wakeup {
pinctrl-single,pins = <
PRI_TDI AF1 /* WLAN_WAKE_HOST */
>;
DS_MEDIUM;PULL_DOWN;EDGE_RISE;SL_NORMAL;
};
sdh1_pmx_pd_rst_off: sdh1_pmx_pd_rst_off {
pinctrl-single,pins = <
PRI_TDO AF1 /* WLAN_PDn */
GPIO41 AF0 /* LDO_EN */
>;
MFP_PULL_DOWN;
};
sdh1_pmx_pd_rst_on: sdh1_pmx_pd_rst_on {
pinctrl-single,pins = <
PRI_TDO AF1 /* WLAN_PDn */
GPIO41 AF0 /* LDO_EN */
>;
MFP_PULL_UP;
};
otg_vbus_func: otg_vbus_func {
pinctrl-single,pins = <
VBUS_DRV AF1 /* GPIO[122] */
>;
DS_MEDIUM;PULL_DOWN;EDGE_NONE;
};
usim1_pmx_func: usim1_pmx_func {
pinctrl-single,pins = <
GPIO19 AF0
>;
DS_MEDIUM;PULL_UP;EDGE_NONE;SL_NORMAL;
};
usim1_pmx_func_sleep: usim1_pmx_func_sleep {
pinctrl-single,pins = <
GPIO19 AF0
>;
DS_MEDIUM;PULL_UP;EDGE_BOTH;SL_NORMAL;
};
usim2_pmx_func: usim2_pmx_func {
pinctrl-single,pins = <
GPIO44 AF0
>;
DS_MEDIUM;PULL_UP;EDGE_NONE;SL_NORMAL;
};
usim2_pmx_func_sleep: usim2_pmx_func_sleep {
pinctrl-single,pins = <
GPIO44 AF0
>;
DS_MEDIUM;PULL_UP;EDGE_BOTH;SL_NORMAL;
};
pcie_pmx_pd_rst_off: pcie_pmx_pd_rst_off {
pinctrl-single,pins = <
GPIO42 AF0 /* PERST_N */
GPIO53 AF0 /* DC_EN */
>;
MFP_PULL_DOWN;
};
pcie_pmx_pd_rst_on: pcie_pmx_pd_rst_on {
pinctrl-single,pins = <
GPIO42 AF0 /* PERST_N */
GPIO53 AF0 /* DC_EN */
>;
MFP_PULL_UP;
};
gc032a_pmx_func: gc032a_pmx_func {
pinctrl-single,pins = <
GPIO21 AF2 /* mclk */
>;
DS_MEDIUM;PULL_DOWN;EDGE_NONE;SL_NORMAL;
};
isp_spi_data: isp_spi_data {
pinctrl-single,pins = <
/* spi_data0 ... spi_data1 */
GPIO24 AF2
GPIO23 AF2
/* camera spi clk */
GPIO22 AF2
>;
DS_MEDIUM;PULL_UP;EDGE_NONE;SL_NORMAL;
};
usb_id_pinmux: usb_id_pinmux {
pinctrl-single,pins = <
USB_ID AF1/* usbid-gpio99 */
>;
DS_MEDIUM;PULL_UP;EDGE_NONE;LPM_NONE;
};
usb_id_pinmux_slp: usb_id_pinmux_slp {
pinctrl-single,pins = <
USB_ID AF1 /* usbid-gpio99 */
>;
DS_MEDIUM;PULL_UP;EDGE_BOTH;LPM_NONE;
};
usb_host_pinmux: usb_host_pinmux {
pinctrl-single,pins = <
VBUS_DRV AF1 /* gpio-122 */
>;
DS_MEDIUM;PULL_FLOAT;EDGE_NONE;LPM_NONE;
};
};
twsi0: i2c@d4011000 {
status= "okay";
/*
pmic4: 88pm805@38 {
compatible = "marvell,88pm805";
reg = <0x38>;
};
*/
};
twsi1: i2c@d4010800 {
pinctrl-names = "default","gpio";
pinctrl-0 = <&twsi1_pmx_func>;
pinctrl-1 = <&twsi1_pmx_gpio>;
i2c-gpio = <&gpio 10 0 &gpio 11 0>;
status= "okay";
nau8810@1a {
compatible = "marvell,nau8810";
reg = <0x1a>;
};
gc032a: gc032a@21{
compatible = "galaxycore,gc032a";
reg = <0x21>;
pinctrl-names = "default";
pinctrl-0 = <&gc032a_pmx_func>;
pwdn-gpios = <&gpio 37 0>;
power-gpios = <&gpio 40 0>;
/*avdd-supply = <&pm802ldo6>;//2v8
iovdd-supply = <&pm802ldo5>;//1v8*/
status = "okay";
port {
gc0312_out: endpoint {
remote-endpoint = <&spi_in_cam>;
};
};
};
};
twsi2: i2c@d4037000 {
status = "okay";
pmic4: 88pm805@38 {
compatible = "marvell,88pm805";
reg = <0x38>;
};
pmic5: pm802@0 {
compatible = "asr,pm802";
reg = <0x00>;
interrupts = <4>;
interrupt-parent = <&intc>;
interrupt-controller;
#interrupt-cells = <1>;
chg_irq_from_exton;
scs-int-active-high;
battery {
compatible = "asr,pm802-bat";
status = "disabled";
online-gpadc = <1>;
temperature-gpadc = <1>;
hi-volt-online = <1150>; /* mV */
lo-volt-online = <20>; /* mV */
hi-volt-temp = <1150>; /* mV */
lo-volt-temp = <200>; /* mV */
sw-fg-use-ntc;
full-capacity = <2050>; /* mAh */
r1-resistor = <40>; /* mohm */
r2-resistor = <30>; /* mohm */
rs-resistor = <120>; /* mohm */
roff-resistor = <0>; /* mohm */
roff-initial-resistor = <0>; /* mohm */
times-in-zero-degree = <1>;
offset-in-zero-degree = <0>;
times-in-ten-degree = <2>;
offset-in-ten-degree = <100>;
power-off-threshold = <3350>; /* mV */
safe-power-off-threshold = <3200>; /* mV */
online-gp-bias-curr = <11>; /* uA */
soc-ramp-up-interval = <150>; /* s */
/* choose -20C, 0C, 10C, 40C, 45C, 55C as threshold */
tbat-threshold = <20 0 10 40 45 55>; /* ohm */
ntc-table-size = <88>;
stop-chg-for-vbatmeas;
/* -24C, -23C, ..., 62C, 63C */
ntc-table = <
89680 85130 80840 76790 72970 69360 65960 62740
59700 56830 54130 51530 49100 46800 44610 42550
40590 38730 36970 35300 33710 32210 30780 29420
28130 26910 25750 24640 23590 22580 21630 20720
19860 19030 18250 17500 16790 16110 15460 14840
14250 13690 13150 12640 12150 11680 11230 10800
10390 10000 9620 9270 8920 8590 8280 7980
7690 7410 7150 6890 6650 6410 6190 5970
5770 5570 5380 5190 5020 4850 4680 4530
4380 4230 4100 3960 3830 3710 3590 3480
3370 3260 3160 3060 2960 2870 2780 2700
>;
};
usb {
status = "disabled";
vbus_gpio = <0xff>; /* set_vbus */
id-gpadc = <0xff>; /* usb-id */
vchg-from-exton = <1>;
vbus-detect = <1>; /* vbus-irq */
get-vbus = <1>; /* get-vbus */
};
};
pmic6: pm803@30 {
compatible = "asr,pm803";
reg = <0x30>;
interrupts = <4>;
interrupt-parent = <&intc>;
interrupt-controller;
#interrupt-cells = <1>;
chg_irq_from_exton;
scs-int-active-high;
battery {
compatible = "asr,pm803-bat";
status = "disabled";
online-gpadc = <1>;
temperature-gpadc = <1>;
hi-volt-online = <1150>; /* mV */
lo-volt-online = <20>; /* mV */
hi-volt-temp = <1150>; /* mV */
lo-volt-temp = <200>; /* mV */
sw-fg-use-ntc;
full-capacity = <2050>; /* mAh */
r1-resistor = <40>; /* mohm */
r2-resistor = <30>; /* mohm */
rs-resistor = <120>; /* mohm */
roff-resistor = <0>; /* mohm */
roff-initial-resistor = <0>; /* mohm */
times-in-zero-degree = <1>;
offset-in-zero-degree = <0>;
times-in-ten-degree = <2>;
offset-in-ten-degree = <100>;
power-off-threshold = <3350>; /* mV */
safe-power-off-threshold = <3200>; /* mV */
online-gp-bias-curr = <11>; /* uA */
soc-ramp-up-interval = <150>; /* s */
/* choose -20C, 0C, 10C, 40C, 45C, 55C as threshold */
tbat-threshold = <20 0 10 40 45 55>; /* ohm */
ntc-table-size = <88>;
stop-chg-for-vbatmeas;
/* -24C, -23C, ..., 62C, 63C */
ntc-table = <
89680 85130 80840 76790 72970 69360 65960 62740
59700 56830 54130 51530 49100 46800 44610 42550
40590 38730 36970 35300 33710 32210 30780 29420
28130 26910 25750 24640 23590 22580 21630 20720
19860 19030 18250 17500 16790 16110 15460 14840
14250 13690 13150 12640 12150 11680 11230 10800
10390 10000 9620 9270 8920 8590 8280 7980
7690 7410 7150 6890 6650 6410 6190 5970
5770 5570 5380 5190 5020 4850 4680 4530
4380 4230 4100 3960 3830 3710 3590 3480
3370 3260 3160 3060 2960 2870 2780 2700
>;
};
usb {
status = "disabled";
vbus_gpio = <0xff>; /* set_vbus */
id-gpadc = <0xff>; /* usb-id */
vchg-from-exton = <1>;
vbus-detect = <1>; /* vbus-irq */
get-vbus = <1>; /* get-vbus */
};
};
};
};
};
vcc_sdh1: sd-regulator {
compatible = "regulator-fixed";
pinctrl-names = "default";
pinctrl-0 = <&sd_ldo_en>;
regulator-name = "SDH1 VCC";
regulator-min-microvolt = <3300000>;
regulator-max-microvolt = <3300000>;
gpio = <&gpio 45 0>;
enable-active-high;
status = "okay";
};
asr-rfkill {
compatible = "asr,asr-rfkill";
pinctrl-names = "off", "on";
pinctrl-0 = <&sdh1_pmx_pd_rst_off>;
pinctrl-1 = <&sdh1_pmx_pd_rst_on>;
sd-host = <&sdh1>;
pd-gpio = <&gpio 120 0>;
3v3-ldo-gpio = <&gpio 41 0>;
edge-wakeup-gpio = <&gpio 117 0>;
status = "okay";
};
pcie-rfkill {
compatible = "mrvl,pcie-rfkill";
pinctrl-names = "off", "on";
pinctrl-0 = <&pcie_pmx_pd_rst_off>;
pinctrl-1 = <&pcie_pmx_pd_rst_on>;
rst-gpio = <&gpio 42 0>;
3v3-ldo-gpio = <&gpio 53 0>;
status = "okay";
};
usim1: usim1 {
compatible = "asr,usim1";
pinctrl-names = "default", "sleep";
pinctrl-0 = <&usim1_pmx_func>;
pinctrl-1 = <&usim1_pmx_func_sleep>;
edge_detect_gpio = <19>; /* GPIO19: SIM detect pin */
status = "okay";
};
usim2: usim2 {
compatible = "asr,usim2";
pinctrl-names = "default", "sleep";
pinctrl-0 = <&usim2_pmx_func>;
pinctrl-1 = <&usim2_pmx_func_sleep>;
edge_detect_gpio = <44>; /* GPIO44: SIM detect pin */
#ifdef CONFIG_ASR_DSDS
status = "okay";
#else
status = "disabled";
#endif
};
audio_regs {
compatible = "ASRMICRO,audio-registers";
reg = <0xD4050044 0x4>;
status = "okay";
};
};
#ifdef CONFIG_ASR_DSDS
#include "asr_pm802_2usim.dtsi"
#include "88pm805.dtsi"
#include "asr_pm803_2usim.dtsi"
#else
#include "asr_pm802.dtsi"
#include "88pm805.dtsi"
#include "asr_pm803.dtsi"
#endif
#ifdef CONFIG_AB_SYSTEM
#include "asr1806_ab_flash_layout.dtsi"
#else
#include "asr1806_flash_layout.dtsi"
#endif