| // 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 |