| /* |
| * Copyright (C) 2014 Marvell Technology Group Ltd. |
| * Author: Dongjiu Geng <djgeng@marvell.com> |
| * |
| * This program is free software; you can redistribute it and/or modify |
| * it under the terms of the GNU General Public License version 2 as |
| * publishhed by the Free Software Foundation. |
| */ |
| |
| #include "pxa1908.dtsi" |
| #include "pxa1908-pinfunc.h" |
| #include <dt-bindings/mmc/pxa_sdhci.h> |
| |
| / { |
| chosen { |
| bootargs = "console=ttyS0,115200 root=/dev/nfs nfsroot=192.168.1.100:/nfsroot/ ip=192.168.1.101:192.168.1.100::255.255.255.0::eth0:on"; |
| }; |
| |
| memory { |
| reg = <0x00000000 0x10000000>; |
| }; |
| |
| soc { |
| devfreq-ddr { |
| status = "okay"; |
| }; |
| |
| pd_display: pd_display@0xd4282800 { |
| compatible = "marvell,power-domain-display-pxa1u88"; |
| reg = <0xd4282800 0x1000>; |
| clocks = <&soc_clocks PXA1U88_CLK_DISP_HCLK>, |
| <&soc_clocks PXA1U88_CLK_DSI_ESC>; |
| clock-names = "LCDCIHCLK", "esc_clk"; |
| }; |
| |
| smmu { /* iommu in vpu */ |
| clocks = <&soc_clocks PXA1U88_CLK_VPU>, |
| <&soc_clocks PXA1U88_CLK_VPUBUS>; |
| clock-names = "VPUCLK", "VPUACLK"; |
| marvell,power-domain = <&pd_vpu>; |
| status = "okay"; |
| }; |
| |
| axi@d4200000 { /* AXI */ |
| |
| pd_gc: pd_gc@d4282800 { |
| compatible = "marvell,power-domain-common-gc"; |
| reg = <0xd4282800 0x1000>; |
| clocks = <&soc_clocks PXA1U88_CLK_GC3D>; |
| lpm-qos = <PM_QOS_CPUIDLE_BLOCK_DDR>; |
| }; |
| |
| pd_gc2d: pd_gc2d@d4282800 { |
| compatible = "marvell,power-domain-common-gc2d"; |
| reg = <0xd4282800 0x1000>; |
| clocks = <&soc_clocks PXA1U88_CLK_GC2D>; |
| lpm-qos = <PM_QOS_CPUIDLE_BLOCK_DDR>; |
| }; |
| |
| gpu: gpu@C0400000 { |
| marvell,power-domain = <&pd_gc>; |
| marvell,gpu-mem-base = <0x09000000>; |
| marvell,gpu-mem-size = <0x1000000>; |
| clocks = <&soc_clocks PXA1U88_CLK_GC3D>, |
| <&soc_clocks PXA1U88_CLK_GCSH>, |
| <&soc_clocks PXA1U88_CLK_GCBUS>; |
| clock-names = "GC3DFCLK", "GCSHCLK", "GC3DACLK"; |
| status = "okay"; |
| }; |
| |
| gpu2d: gpu2d@d420c000 { |
| marvell,power-domain = <&pd_gc2d>; |
| clocks = <&soc_clocks PXA1U88_CLK_GC2D>, |
| <&soc_clocks PXA1U88_CLK_GCBUS>; |
| clock-names = "GC2DFCLK", "GC2DACLK"; |
| status = "okay"; |
| }; |
| |
| pd_vpu: pd_vpu@d4282800 { |
| compatible = "marvell,power-domain-common-vpu"; |
| reg = <0xd4282800 0x1000>; |
| clocks = <&soc_clocks PXA1U88_CLK_VPU>; |
| lpm-qos = <PM_QOS_CPUIDLE_BLOCK_DDR>; |
| }; |
| |
| pd_smmu: pd_smmu@c0010000 { |
| compatible = "marvell,power-domain-smmu-pxa1u88"; |
| reg = <0xc0010000 0x10000>; |
| marvell,power-domain-parent = <&pd_vpu>; |
| clocks = <&soc_clocks PXA1U88_CLK_VPU>, |
| <&soc_clocks PXA1U88_CLK_VPUBUS>; |
| clock-names = "VPUCLK", "VPUACLK"; |
| }; |
| |
| coda7542: coda7542@d420d000 { |
| marvell,sram-internal = <0>; |
| marvell,nv21_support = <1>; |
| marvell,seconddaxi_none = <1>; |
| marvell,power-domain = <&pd_smmu>; |
| clocks = <&soc_clocks PXA1U88_CLK_VPU>, |
| <&soc_clocks PXA1U88_CLK_VPUBUS>; |
| clock-names = "VPUCLK", "VPUACLK"; |
| status = "okay"; |
| }; |
| |
| devfreq-vpu { |
| marvell,power-domain = <&pd_vpu>; |
| status = "okay"; |
| }; |
| |
| dsi: dsi@d420b800 { |
| marvell,phy-name = "mmp_dsi1"; |
| marvell,plat-path-name = "mmp_pnpath"; |
| marvell,dsi-lanes = <4>; |
| marvell,burst-mode = <2>; |
| marvell,hbp-en; |
| status = "okay"; |
| }; |
| |
| asram: asram@d12a0000 { |
| status = "okay"; |
| }; |
| |
| adma0: adma@d128d800 { |
| status = "okay"; |
| }; |
| |
| ccic1: ccic@d420a000 { |
| pinctrl-names = "default","twsi","sccb"; |
| pinctrl-0 = <&ccic1_pmx_func1>; |
| pinctrl-1 = <&ccic1_pmx_func2>; |
| pinctrl-2 = <&ccic1_pmx_func3>; |
| interrupts = <0 42 0x4>; |
| status = "okay"; |
| }; |
| |
| ccic2: ccic@d420a800 { |
| pinctrl-names = "default","twsi","sccb"; |
| pinctrl-0 = <&ccic2_pmx_func1>; |
| pinctrl-1 = <&ccic2_pmx_func2>; |
| pinctrl-2 = <&ccic2_pmx_func3>; |
| /*ccic2 use ccic1 I2C pin on pxa1908dkb */ |
| sync_ccic1_pin; |
| interrupts = <0 77 0x4>; |
| status = "okay"; |
| }; |
| |
| sc2mmu1: sc2mmu@d420F000 { |
| interrupts = <0 15 0x4>; |
| status = "okay"; |
| }; |
| |
| b52isp: b52isp@0xC0200000 { |
| interrupts = <0 11 0x4>; |
| status = "okay"; |
| }; |
| |
| vdma: vdma@d4209000 { |
| marvell,vdma-num = <1>; |
| marvell,vdma-axi = <1>; |
| status = "okay"; |
| vdma1 { |
| marvell,vdma-id = <0>; |
| marvell,sram-size = <15360>; |
| marvell,is_vid = <0>; |
| }; |
| }; |
| |
| disp: disp@d420b000 { |
| pinctrl-names = "default"; |
| marvell,disp-name = "disp_name"; |
| marvell,path-num = <1>; |
| marvell,power-domain = <&pd_display>; |
| clocks = <&soc_clocks PXA1U88_CLK_DISP_HCLK>, |
| <&soc_clocks PXA1U88_CLK_PLL4VCO>, |
| /* parent1-clk-tbl clk */ |
| <&soc_clocks PXA1U88_CLK_DISP1>, |
| <&soc_clocks PXA1U88_CLK_DISP4>, |
| /* parent2-clk-tbl clk */ |
| <&soc_clocks PXA1U88_CLK_PLL1_624>, |
| <&soc_clocks PXA1U88_CLK_PLL1_832>, |
| <&soc_clocks PXA1U88_CLK_PLL1_499_EN>, |
| <&soc_clocks PXA1U88_CLK_PLL1_499>, |
| <&soc_clocks PXA1U88_CLK_PLL4>, |
| <&soc_clocks PXA1U88_CLK_PLL4VCODIV3>; |
| clock-names = "LCDCIHCLK", "pll4_vco", |
| /* parent1-clk-tbl clk */ |
| "disp1_clk", "dsipll_clk", |
| /* parent2-clk-tbl clk */ |
| "pll1_624", "pll1_832", "pll1_499_en", "pll1_499", "pll4", "pll4_div3"; |
| status = "okay"; |
| path1 { |
| marvell,path-name = "mmp_pnpath"; |
| marvell,overlay-num = <1>; |
| marvell,overlay-table = <1>; |
| marvell,output-type = <1>; |
| marvell,path-config = <0x10>; |
| marvell,link-config = <0x1>; |
| disp_apmu { |
| plat = <4>; |
| apmu-reg = <0xd428284c>; |
| clksrc-bit = <9>; |
| parent1-clk-tbl = "disp1_clk", "dsipll_clk"; |
| parent2-clk-tbl = "pll1_624", "pll1_832", "pll1_499_en", "pll4", "pll4_div3"; |
| }; |
| }; |
| }; |
| |
| fb0: fbbase { |
| marvell,fb-name = "mmp-fb"; |
| marvell,path-name = "mmp_pnpath"; |
| marvell,overlay-id = <1>; |
| marvell,default-pixfmt = <0x109>; |
| marvell,buffer-num = <3>; |
| marvell,fb-mem = <0x17000000>; |
| status = "okay"; |
| }; |
| |
| /* eMMC */ |
| sdh2: sdh@d4281000 { |
| pinctrl-names = "default", "fast"; |
| pinctrl-0 = <&sdh2_pmx_func1 &sdh2_pmx_func2>; |
| pinctrl-1 = <&sdh2_pmx_func1_fast &sdh2_pmx_func2_fast>; |
| bus-width = <8>; |
| non-removable; |
| marvell,sdh-pm-runtime-en; |
| marvell,sdh-quirks = <( |
| SDHCI_QUIRK_BROKEN_ADMA | |
| SDHCI_QUIRK_BROKEN_CARD_DETECTION |
| )>; |
| marvell,sdh-quirks2 = <( |
| SDHCI_QUIRK2_TUNING_ADMA_BROKEN | |
| /* SDHCI_QUIRK2_BROKEN_HS200 | */ |
| SDHCI_QUIRK2_TIMEOUT_SHORT |
| )>; |
| marvell,sdh-host-caps = <(MMC_CAP_1_8V_DDR)>; |
| marvell,sdh-host-caps2 = <( |
| MMC_CAP2_DISABLE_BLK_ASYNC | |
| MMC_CAP2_SKIP_SD | |
| MMC_CAP2_SKIP_SDIO |
| )>; |
| marvell,sdh-flags = <( |
| PXA_FLAG_NEW_RX_CFG_REG | |
| PXA_FLAG_SD_8_BIT_CAPABLE_SLOT | |
| PXA_FLAG_ENABLE_CLOCK_GATING | |
| PXA_FLAG_TX_SEL_BUS_CLK |
| )>; |
| /* prop "sdh-dtr-data": <timing preset_rate src_rate tx_delay rx_delay sdclk_sel0 sdclk_sel1 fakeclk_en> */ |
| marvell,sdh-dtr-data = <PXA_MMC_TIMING_LEGACY PXA_SDH_DTR_26M PXA_SDH_DTR_52M 0 0 0 0 0>, |
| <PXA_MMC_TIMING_MMC_HS PXA_SDH_DTR_52M PXA_SDH_DTR_104M 0 0 0 0 0>, |
| <PXA_MMC_TIMING_UHS_DDR50 PXA_SDH_DTR_52M PXA_SDH_DTR_104M 0 0 0 0 0>, |
| <PXA_MMC_TIMING_MMC_HS200 PXA_SDH_DTR_156M PXA_SDH_DTR_156M 0 0 3 0 0>, |
| <PXA_MMC_TIMING_MAX PXA_SDH_DTR_PS_NONE PXA_SDH_DTR_104M 0 0 0 0 0>; |
| marvell,sdh-tuning-win-limit = <100>; |
| marvell,sdh-dvfs-levels = <1 7>; /* tuning from dvfs level 1 to 7 */ |
| marvell,sdh-tuning-mode = <PXA_SDH_TUNING_DVFS>; |
| status = "okay"; |
| }; |
| |
| /* SD card */ |
| sdh0: sdh@d4280000 { |
| pinctrl-names = "default", "fast"; |
| pinctrl-0 = <&sdh0_pmx_func1 &sdh0_pmx_func2 &sdh0_pmx_func3>; |
| pinctrl-1 = <&sdh0_pmx_func1 &sdh0_pmx_func2_fast &sdh0_pmx_func3_fast>; |
| vqmmc-supply = <&ldo6>; |
| vmmc-supply = <&ldo14>; |
| cd-gpios = <&gpio 92 0>; |
| cd-inverted; |
| bus-width = <4>; |
| wp-inverted; |
| marvell,sdh-pm-runtime-en; |
| marvell,sdh-host-caps-disable = <(MMC_CAP_UHS_SDR104)>; |
| marvell,sdh-quirks = <( |
| SDHCI_QUIRK_INVERTED_WRITE_PROTECT | |
| SDHCI_QUIRK_BROKEN_CARD_DETECTION |
| )>; |
| |
| /* as HW design, only SD Card's host has AIB_MMC register */ |
| marvell,sdh-quirks2 = <( |
| SDHCI_QUIRK2_HOST_NO_CMD23 | |
| SDHCI_QUIRK2_SET_AIB_MMC | |
| SDHCI_QUIRK2_TUNING_ADMA_BROKEN | |
| SDHCI_QUIRK2_TIMEOUT_SHORT | |
| SDHCI_QUIRK2_DMA_CLOCK_FORCE_ON |
| )>; |
| marvell,sdh-host-caps2 = <( |
| MMC_CAP2_SKIP_MMC | |
| MMC_CAP2_SKIP_SDIO |
| )>; |
| marvell,sdh-flags = <( |
| PXA_FLAG_NEW_RX_CFG_REG | |
| PXA_FLAG_TX_SEL_BUS_CLK | |
| PXA_FLAG_ENABLE_CLOCK_GATING |
| )>; |
| /* prop "sdh-dtr-data": <timing preset_rate src_rate tx_delay rx_delay sdclk_sel0 sdclk_sel1 fakeclk_en> */ |
| marvell,sdh-dtr-data = <PXA_MMC_TIMING_LEGACY PXA_SDH_DTR_26M PXA_SDH_DTR_52M 0 0 0 0 0>, |
| <PXA_MMC_TIMING_SD_HS PXA_SDH_DTR_52M PXA_SDH_DTR_104M 0 0 0 0 0>, |
| <PXA_MMC_TIMING_UHS_DDR50 PXA_SDH_DTR_52M PXA_SDH_DTR_104M 0 0 0 0 0>, |
| <PXA_MMC_TIMING_UHS_SDR104 PXA_SDH_DTR_208M PXA_SDH_DTR_208M 0 0 3 0 0>, |
| <PXA_MMC_TIMING_MAX PXA_SDH_DTR_PS_NONE PXA_SDH_DTR_104M 0 0 0 0 0>; |
| marvell,sdh-tuning-win-limit = <120>; |
| marvell,sdh-dvfs-levels = <1 7>; /* tuning from dvfs level 1 to 7 */ |
| marvell,sdh-tuning-mode = <PXA_SDH_TUNING_DVFS>; |
| status = "okay"; |
| }; |
| |
| /* SDIO */ |
| sdh1: sdh@d4280800 { |
| pinctrl-names = "default", "fast", "sleep"; |
| pinctrl-0 = <&sdh1_pmx_func1 &sdh1_pmx_func2 &sdh1_pmx_func3 &sdh1_pmx_func4>; |
| pinctrl-1 = <&sdh1_pmx_func1_fast &sdh1_pmx_func2_fast &sdh1_pmx_func3 &sdh1_pmx_func4>; |
| pinctrl-2 = <&sdh1_pmx_edge_wakeup>; |
| bus-width = <4>; |
| marvell,sdh-pm-runtime-en; |
| marvell,sdh-host-caps-disable = <(MMC_CAP_UHS_SDR50)>; |
| marvell,sdh-quirks = <(SDHCI_QUIRK_BROKEN_CARD_DETECTION)>; |
| marvell,sdh-quirks2 = <(SDHCI_QUIRK2_HOLDSUSPEND_AFTER_REQUEST | |
| SDHCI_QUIRK2_FAKE_SDIO_IRQ_IN_UHS | |
| SDHCI_QUIRK2_TUNING_ADMA_BROKEN | |
| SDHCI_QUIRK2_TIMEOUT_SHORT |
| )>; |
| marvell,sdh-pm-caps = <(MMC_PM_KEEP_POWER)>; |
| marvell,sdh-host-caps2 = <( |
| MMC_CAP2_NO_VOLTAGE_SWITCH | |
| MMC_CAP2_SKIP_MMC | |
| MMC_CAP2_SKIP_SD |
| )>; |
| marvell,sdh-flags = <( |
| PXA_FLAG_NEW_RX_CFG_REG | |
| PXA_FLAG_WAKEUP_HOST | |
| PXA_FLAG_TX_SEL_BUS_CLK | |
| PXA_FLAG_EN_PM_RUNTIME | |
| PXA_FLAG_DISABLE_PROBE_CDSCAN |
| )>; |
| /* prop "sdh-dtr-data": <timing preset_rate src_rate tx_delay rx_delay sdclk_sel0 sdclk_sel1 fakeclk_en> */ |
| marvell,sdh-dtr-data = <PXA_MMC_TIMING_LEGACY PXA_SDH_DTR_26M PXA_SDH_DTR_52M 0 0 0 0 0>, |
| <PXA_MMC_TIMING_SD_HS PXA_SDH_DTR_45M PXA_SDH_DTR_89M 0 0 0 0 0>, |
| <PXA_MMC_TIMING_UHS_DDR50 PXA_SDH_DTR_52M PXA_SDH_DTR_104M 0 0 0 0 0>, |
| <PXA_MMC_TIMING_UHS_SDR50 PXA_SDH_DTR_104M PXA_SDH_DTR_104M 0 0 0 0 0>, |
| <PXA_MMC_TIMING_UHS_SDR104 PXA_SDH_DTR_156M PXA_SDH_DTR_156M 0 0 3 0 0>, |
| <PXA_MMC_TIMING_MAX PXA_SDH_DTR_PS_NONE PXA_SDH_DTR_89M 0 0 0 0 0>; |
| marvell,sdh-tuning-win-limit = <120>; |
| marvell,sdh-dvfs-levels = <1 7>; /* tuning from dvfs level 1 to 7 */ |
| marvell,sdh-tuning-mode = <PXA_SDH_TUNING_DVFS>; |
| status = "okay"; |
| }; |
| }; |
| |
| apb@d4000000 { |
| pdma0: pdma@d4000000 { |
| status = "okay"; |
| }; |
| |
| timer0: timer@d4014000 { |
| status = "disabled"; |
| }; |
| |
| timer1: timer@d4016000 { |
| status = "disabled"; |
| }; |
| |
| edgewakeup: edgewakeup@d4019800 { |
| status = "okay"; |
| }; |
| |
| uart0: uart@d4017000 { |
| pinctrl-names = "default", "sleep"; |
| pinctrl-0 = <&uart0_pmx_func1 &uart0_pmx_func2>; |
| pinctrl-1 = <&uart0_pmx_func1_sleep &uart0_pmx_func2>; |
| edge-wakeup-gpio = <47>; /* GPIO47: UART rx pin */ |
| }; |
| |
| thermal: thermal@d4013300 { |
| /* |
| One line indicate for one cooling state |
| first column for cpufreq constraint, |
| second column for hotplug constraint. |
| example: |
| core-p0 = <1 0 |
| 3 0>; |
| means: when temp get higher, apply 4 * 1.5G -> 4 * 1.2G |
| when temp get more higher, apply 4 * 1.2G -> 4 * 0.8G |
| From SV model, supported cooling state is as below: |
| <1 0 <0 2 <1 0 <0 2 |
| 3 0> 3 0> 2 2> 2 2> |
| |
| */ |
| core-p0 = <1 0 |
| 3 0>; |
| /* |
| thermal safe 624M *4 or 800M * 2, thus supported |
| <4 0> <3 2> |
| */ |
| thermal_safe-p0 = <4 0>; |
| status = "okay"; |
| }; |
| |
| pmx: pinmux@d401e000 { |
| /* pin base, 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 55 55 0 /* GPIO0 ~ GPIO54 */ |
| &range 110 32 0 /* GPIO67 ~ GPIO98 */ |
| &range 52 1 0 /* GPIO124 */ |
| &range 6 1 0 /* GPIO65 */ |
| >; |
| pinctrl-names = "default"; |
| pinctrl-0 = <&mfp_pins_group_0 &mfp_pins_group_1>; |
| |
| /* |
| * these unused pins have been pulled down external |
| * We can set them as PULL_FLOAT |
| * |
| * But in fact, these registers can be removed in the |
| * future, considering the cost down |
| * |
| * So we just set them as PULL_DOWN here |
| * (Suitable for external PULL_DOWN and FLOATING) |
| * |
| * after remove external registers, no change is need |
| */ |
| mfp_pins_group_0: mfp_pins_group_0 { |
| pinctrl-single,pins = < |
| /* DF_IO8 AF0 */ |
| DF_IO13 AF0 |
| DF_IO15 AF0 |
| >; |
| DS_MEDIUM;PULL_DOWN;EDGE_NONE;LPM_NONE; |
| }; |
| |
| /* |
| * these unused pins have been pulled up external |
| * We can set them as PULL_FLOAT |
| * |
| * But in fact, these registers can be removed in the |
| * future, considering the cost down * |
| * |
| * So we just set them as PULL_UP here |
| * (Suitable for external PULL_UP and FLOATING) |
| * |
| * after remove external registers, no change is need |
| */ |
| mfp_pins_group_1: mfp_pins_group_1 { |
| pinctrl-single,pins = < |
| DF_IO14 AF0 |
| DF_IO8 AF1 /* GPIO100 */ |
| GPIO0 AF0 |
| GPIO1 AF0 |
| GPIO2 AF0 |
| GPIO3 AF0 |
| >; |
| DS_MEDIUM;PULL_UP;EDGE_NONE;LPM_NONE; |
| }; |
| |
| uart0_pmx_func1: uart0_pmx_func1 { |
| pinctrl-single,pins = < |
| GPIO47 AF6 |
| >; |
| MFP_DEFAULT; |
| }; |
| |
| uart0_pmx_func2: uart0_pmx_func2 { |
| pinctrl-single,pins = < |
| GPIO48 AF6 |
| >; |
| MFP_DEFAULT; |
| }; |
| |
| uart0_pmx_func1_sleep: uart0_pmx_func1_sleep { |
| pinctrl-single,pins = < |
| GPIO47 AF6 |
| >; |
| DS_MEDIUM;PULL_NONE;EDGE_BOTH;LPM_NONE; |
| }; |
| |
| keypad_in_func: keypad_in_func { |
| pinctrl-single,pins = < |
| GPIO16 AF1 /* GPIO016_KP_DKIN1 */ |
| GPIO17 AF1 /* GPIO017_KP_DKIN2 */ |
| >; |
| DS_MEDIUM;PULL_UP;EDGE_NONE;LPM_DRIVE_HIGH; |
| }; |
| |
| /* MFP_DEFAULT */ |
| sdh0_pmx_func1: sdh0_pmx_func1 { |
| pinctrl-single,pins = < |
| MMC1_DAT7 AF1 |
| MMC1_DAT6 AF1 |
| MMC1_DAT5 AF1 |
| MMC1_DAT4 AF1 |
| MMC1_WP AF1 |
| MMC1_CD AF1 /* Above pins not used by sdh1, configured as GPIO */ |
| GPIO92 AF0 /* GPIO92, used for sd card detect */ |
| >; |
| MFP_DEFAULT; |
| }; |
| |
| /* no pull, no LPM */ |
| sdh0_pmx_func2: sdh0_pmx_func2 { |
| pinctrl-single,pins = < |
| MMC1_DAT3 AF0 |
| MMC1_DAT2 AF0 |
| MMC1_DAT1 AF0 |
| MMC1_DAT0 AF0 |
| MMC1_CMD AF0 |
| >; |
| MFP_DEFAULT; |
| }; |
| |
| /* MFP_LPM_DRIVE_LOW */ |
| sdh0_pmx_func3: sdh0_pmx_func3 { |
| pinctrl-single,pins = < |
| MMC1_CLK AF0 |
| >; |
| MFP_LPM_DRIVE_LOW; |
| }; |
| |
| /* ds fast, no pull, no LPM */ |
| sdh0_pmx_func2_fast: sdh0_pmx_func2_fast { |
| pinctrl-single,pins = < |
| MMC1_DAT3 AF0 |
| MMC1_DAT2 AF0 |
| MMC1_DAT1 AF0 |
| MMC1_DAT0 AF0 |
| MMC1_CMD AF0 |
| >; |
| DS_FAST;PULL_NONE;EDGE_NONE;LPM_NONE; |
| }; |
| |
| /* ds fast, LPM_DRIVE_LOW */ |
| sdh0_pmx_func3_fast: sdh0_pmx_func3_fast { |
| pinctrl-single,pins = < |
| MMC1_CLK AF0 |
| >; |
| DS_FAST;PULL_NONE;EDGE_NONE;LPM_DRIVE_LOW; |
| }; |
| |
| sdh1_pmx_func1_fast: sdh1_pmx_func1_fast { |
| pinctrl-single,pins = < |
| GPIO37 AF1 |
| GPIO38 AF1 |
| GPIO39 AF1 |
| GPIO40 AF1 |
| GPIO41 AF1 |
| >; |
| DS_FAST;PULL_NONE;EDGE_NONE;LPM_NONE; |
| }; |
| |
| sdh1_pmx_func2_fast: sdh1_pmx_func2_fast { |
| pinctrl-single,pins = < |
| GPIO42 AF1 |
| >; |
| DS_FAST;PULL_NONE;EDGE_NONE;LPM_DRIVE_LOW; |
| }; |
| |
| sdh1_pmx_func1: sdh1_pmx_func1 { |
| pinctrl-single,pins = < |
| GPIO37 AF1 |
| GPIO38 AF1 |
| GPIO39 AF1 |
| GPIO40 AF1 |
| GPIO41 AF1 |
| >; |
| MFP_DEFAULT; |
| }; |
| |
| sdh1_pmx_func2: sdh1_pmx_func2 { |
| pinctrl-single,pins = < |
| GPIO42 AF1 |
| >; |
| DS_SLOW0;PULL_NONE;EDGE_NONE;LPM_DRIVE_LOW; |
| }; |
| |
| sdh1_pmx_func3: sdh1_pmx_func3 { |
| pinctrl-single,pins = < |
| GPIO7 AF0 |
| >; |
| DS_MEDIUM;PULL_FLOAT;EDGE_NONE;LPM_NONE; |
| }; |
| |
| sdh1_pmx_func4: sdh1_pmx_func4 { |
| pinctrl-single,pins = < |
| GPIO8 AF0 |
| GPIO5 AF0 |
| >; |
| DS_MEDIUM;PULL_DOWN;EDGE_NONE;LPM_NONE; |
| }; |
| |
| sdh1_pmx_edge_wakeup: sdh1_pmx_edge_wakeup { |
| pinctrl-single,pins = < |
| GPIO39 AF1 |
| >; |
| DS_MEDIUM;PULL_NONE;EDGE_BOTH;LPM_NONE; |
| }; |
| |
| /* no pull, no LPM */ |
| sdh2_pmx_func1: sdh2_pmx_func1 { |
| pinctrl-single,pins = < |
| ND_IO7 AF1 |
| ND_IO6 AF1 |
| ND_IO5 AF1 |
| ND_IO4 AF1 |
| ND_IO3 AF1 |
| ND_IO2 AF1 |
| ND_IO1 AF1 |
| ND_IO0 AF1 |
| ND_CLE_SM_OEN AF1 |
| >; |
| MFP_DEFAULT; |
| }; |
| |
| /* MFP_LPM_DRIVE_LOW */ |
| sdh2_pmx_func2: sdh2_pmx_func2 { |
| pinctrl-single,pins = < |
| SM_SCLK AF1 |
| >; |
| MFP_LPM_DRIVE_LOW; |
| }; |
| |
| /* ds fast, no pull, no LPM */ |
| sdh2_pmx_func1_fast: sdh2_pmx_func1_fast { |
| pinctrl-single,pins = < |
| ND_IO7 AF1 |
| ND_IO6 AF1 |
| ND_IO5 AF1 |
| ND_IO4 AF1 |
| ND_IO3 AF1 |
| ND_IO2 AF1 |
| ND_IO1 AF1 |
| ND_IO0 AF1 |
| ND_CLE_SM_OEN AF1 |
| >; |
| DS_FAST;PULL_NONE;EDGE_NONE;LPM_NONE; |
| }; |
| |
| /* ds fast, LPM_DRIVE_LOW */ |
| sdh2_pmx_func2_fast: sdh2_pmx_func2_fast { |
| pinctrl-single,pins = < |
| SM_SCLK AF1 |
| >; |
| DS_FAST;PULL_NONE;EDGE_NONE;LPM_DRIVE_LOW; |
| }; |
| |
| spi0_pmx_func: spi0_pmx_func { |
| pinctrl-single,pins = < |
| GPIO33 AF2 /* GPIO33 SSP0_CLK */ |
| GPIO34 AF2 /* GPIO34 SSP0_FRM */ |
| GPIO35 AF2 /* GPIO35 SSP0_RX */ |
| GPIO36 AF2 /* GPIO36 SSP0_TX */ |
| >; |
| MFP_DEFAULT; |
| }; |
| |
| spi2_pmx_func: spi2_pmx_func { |
| pinctrl-single,pins = < |
| DF_IO9 AF2 /* GPIO66 SSP2_CLK */ |
| DF_IO10 AF1 /* GPIO65 SSP2_FRM */ |
| DF_IO11 AF2 /* GPIO64 SSP2_TX */ |
| DF_IO12 AF2 /* GPIO63 SSP2_RX */ |
| >; |
| MFP_DEFAULT; |
| }; |
| |
| sspa0_gpio: sspa0_gpio { |
| pinctrl-single,pins = < |
| GPIO21 AF0 |
| GPIO22 AF0 |
| GPIO23 AF0 |
| GPIO24 AF0 |
| >; |
| DS_MEDIUM;PULL_NONE;EDGE_NONE;LPM_FLOAT; |
| }; |
| sspa0_func: sspa0_func { |
| pinctrl-single,pins = < |
| GPIO21 AF7 |
| GPIO22 AF7 |
| GPIO23 AF7 |
| GPIO24 AF7 |
| >; |
| DS_MEDIUM;PULL_NONE;EDGE_NONE;LPM_NONE; |
| }; |
| |
| twsi0_pmx_func: twsi0_pmx_func { |
| pinctrl-single,pins = < |
| GPIO53 AF2 |
| GPIO54 AF2 |
| >; |
| MFP_LPM_FLOAT; |
| }; |
| twsi0_pmx_gpio: twsi0_pmx_gpio { |
| pinctrl-single,pins = < |
| GPIO53 AF0 |
| GPIO54 AF0 |
| >; |
| MFP_LPM_FLOAT; |
| }; |
| twsi1_pmx_func: twsi1_pmx_func { |
| /* gpio87/88: AF5 */ |
| pinctrl-single,pins = < |
| GPIO87 AF5 |
| GPIO88 AF5 |
| >; |
| MFP_LPM_FLOAT; |
| }; |
| twsi1_pmx_gpio: twsi1_pmx_gpio { |
| pinctrl-single,pins = < |
| GPIO87 AF0 |
| GPIO88 AF0 |
| >; |
| MFP_LPM_FLOAT; |
| }; |
| twsi3_pmx_func: twsi3_pmx_func { |
| /* gpio73/74: AF5 */ |
| pinctrl-single,pins = < |
| GPIO73 AF5 |
| GPIO74 AF5 |
| >; |
| MFP_LPM_FLOAT; |
| }; |
| twsi3_pmx_gpio: twsi3_pmx_gpio { |
| pinctrl-single,pins = < |
| GPIO73 AF0 |
| GPIO74 AF0 |
| >; |
| MFP_LPM_FLOAT; |
| }; |
| |
| touch_pins: touch_pins { |
| pinctrl-single,pins = < |
| GPIO72 0x0 |
| GPIO75 0x0 |
| >; |
| MFP_LPM_FLOAT; |
| }; |
| |
| gnss_pmx_def: gnss_pmx_def { |
| pinctrl-single,pins = < |
| GPIO81 AF0 |
| GPIO82 AF0 |
| GPIO83 AF0 |
| GPIO84 AF0 |
| GPIO85 AF0 |
| >; |
| MFP_LPM_PULL_DW; |
| }; |
| |
| gnss_pmx_power_on: gnss_pmx_power_on { |
| pinctrl-single,pins = < |
| GPIO81 AF6 |
| GPIO82 AF6 |
| GPIO83 AF6 |
| GPIO84 AF6 |
| GPIO85 AF6 |
| >; |
| MFP_DEFAULT; |
| }; |
| |
| twsi3_pmx_senhb_def: twsi3_pmx_senhb_def { |
| pinctrl-single,pins = < |
| GPIO73 AF7 |
| GPIO74 AF7 |
| >; |
| MFP_LPM_FLOAT; |
| }; |
| |
| twsi3_pmx_senhb: twsi3_pmx_senhb { |
| pinctrl-single,pins = < |
| GPIO73 AF7 |
| GPIO74 AF7 |
| >; |
| MFP_DEFAULT; |
| }; |
| |
| senhb_irq_pins_def: senhb_irq_pins_def { |
| pinctrl-single,pins = < |
| GPIO11 AF0 |
| GPIO91 AF3 |
| >; |
| MFP_DEFAULT; |
| }; |
| |
| gpio10_pull_up: gpio10_pull_up { |
| pinctrl-single,pins = < |
| GPIO10 AF0 |
| >; |
| MFP_LPM_PULL_UP; |
| }; |
| |
| dvc_pmx_func: dvc_pmx_func { |
| pinctrl-single,pins = < |
| GPIO93 AF5 |
| GPIO94 AF5 |
| GPIO95 AF5 |
| >; |
| MFP_DEFAULT; |
| }; |
| |
| ccic1_pmx_func1: ccic1_pmx_func1 { |
| pinctrl-single,pins = < |
| GPIO77 AF1 |
| GPIO67 AF0 |
| GPIO68 AF0 |
| >; |
| MFP_DEFAULT; |
| }; |
| |
| ccic1_pmx_func3: ccic1_pmx_func3 { |
| pinctrl-single,pins = < |
| GPIO77 AF1 |
| GPIO53 AF7 |
| GPIO54 AF7 |
| /* GPIO67 AF5 |
| GPIO68 AF5 */ |
| >; |
| MFP_LPM_FLOAT; |
| }; |
| |
| ccic1_pmx_func2: ccic1_pmx_func2 { |
| pinctrl-single,pins = < |
| GPIO77 AF1 |
| GPIO53 AF2 |
| GPIO54 AF2 |
| GPIO67 AF0 |
| GPIO68 AF0 |
| >; |
| MFP_LPM_FLOAT; |
| }; |
| |
| ccic2_pmx_func1: ccic2_pmx_func1 { |
| pinctrl-single,pins = < |
| GPIO69 AF0 |
| GPIO70 AF0 |
| >; |
| MFP_DEFAULT; |
| }; |
| |
| ccic2_pmx_func2: ccic2_pmx_func2 { |
| pinctrl-single,pins = < |
| /* |
| GPIO51 AF7 |
| GPIO52 AF7 |
| */ |
| GPIO69 AF0 |
| GPIO70 AF0 |
| >; |
| MFP_LPM_FLOAT; |
| }; |
| |
| ccic2_pmx_func3: cic2_pmx_func3 { |
| pinctrl-single,pins = < |
| GPIO69 AF0 |
| GPIO70 AF0 |
| >; |
| MFP_DEFAULT; |
| }; |
| |
| }; |
| |
| coresight: coresight@d4100000 { |
| status = "okay"; |
| }; |
| |
| twsi0: i2c@d4011000 { |
| pinctrl-names = "default","gpio"; |
| pinctrl-0 = <&twsi0_pmx_func>; |
| pinctrl-1 = <&twsi0_pmx_gpio>; |
| i2c-gpio = <&gpio 53 0 &gpio 54 0>; |
| status = "okay"; |
| }; |
| |
| twsi1: i2c@d4010800 { |
| pinctrl-names = "default","gpio"; |
| pinctrl-0 = <&twsi1_pmx_func>; |
| pinctrl-1 = <&twsi1_pmx_gpio>; |
| i2c-gpio = <&gpio 87 0 &gpio 88 0>; |
| status = "okay"; |
| |
| touch1: s3202@720p { |
| compatible = "synaptics,s3202-touch"; |
| pinctrl-names = "default"; pinctrl-0 = <&touch_pins>; |
| reg = <0x22>; |
| interrupt-parent = <&gpio>; |
| interrupts = <72 0x1>; |
| /* IRQF_ONESHOT | IRQF_TRIGGER_FALLING */ |
| synaptics,irq-flags = <0x2002>; |
| synaptics,irq-gpios = <&gpio 72 0>; |
| synaptics,reset-gpios = <&gpio 75 0>; |
| synaptics,sensor_res_x = <720>; |
| synaptics,sensor_res_y = <1280>; |
| synaptics,sensor_max_x = <798>; |
| synaptics,sensor_max_y = <1392>; |
| synaptics,sensor_margin_x = <39>; |
| synaptics,sensor_margin_y = <0>; |
| avdd-supply = <&ldo11>; |
| status = "disabled"; |
| }; |
| |
| touch2: msg2133@26 { |
| compatible = "focaltech,msg2133"; |
| pinctrl-names = "default"; pinctrl-0 = <&touch_pins>; |
| reg = <0x26>; |
| interrupt-parent = <&gpio>; |
| interrupts = <72 0x1>; |
| focaltech,abs-x-max = <480>; |
| focaltech,abs-y-max = <854>; |
| focaltech,irq-gpios = <&gpio 72 0>; |
| focaltech,reset-gpios = <&gpio 75 0>; |
| focaltech,v_tsp-supply = <&ldo11>; |
| status = "disabled"; |
| }; |
| |
| touch3: 88ms100@720p { |
| compatible = "marvell,88ms100-touch"; |
| pinctrl-names = "default"; pinctrl-0 = <&touch_pins>; |
| reg = <0x18>; |
| interrupt-parent = <&gpio>; |
| interrupts = <72 0x1>; |
| irq-gpios = <&gpio 72 0>; |
| reset-gpios = <&gpio 75 0>; |
| marvell,max-height = <1280>; |
| marvell,max-width = <720>; |
| avdd-supply = <&ldo11>; |
| status = "disabled"; |
| }; |
| |
| touch4: mstar@26 { |
| compatible = "mstar,msg2238"; |
| pinctrl-names = "default"; |
| pinctrl-0 = <&touch_pins>; |
| reg = <0x26>; |
| interrupt-parent = <&gpio>; |
| interrupts = <72 0x1>; |
| mstar,abs-x-max = <720>; |
| mstar,abs-y-max = <1280>; |
| mstar,irq-gpios = <&gpio 72 0>; |
| mstar,reset-gpios = <&gpio 75 0>; |
| mstar,v_tsp-supply = <&ldo11>; |
| status = "disabled"; |
| }; |
| }; |
| |
| twsi2: i2c@d4037000 { |
| status = "okay"; |
| |
| pmic0: 88pm886@30 { |
| reg = <0x30>; |
| interrupts = <0 4 IRQ_TYPE_LEVEL_HIGH>; |
| interrupt-parent = <&gic>; |
| status = "disabled"; |
| |
| dvc { |
| pinctrl-names = "default"; |
| pinctrl-0 = <&dvc_pmx_func>; |
| }; |
| }; |
| pmic2: 88pm860@38 { |
| compatible = "marvell,88pm860"; |
| reg = <0x38>; |
| marvell,pmic-type = <1>; |
| status = "disabled"; |
| |
| /* no codec_int currently, comment out now */ |
| /* |
| interrupt-parent = <&gpio>; |
| interrupts = <124 0x1>; |
| marvell,88pm805-irq-write-clear; |
| */ |
| pm860_codec: pm860_codec { |
| compatible = "marvell,88pm860-codec"; |
| #dailink-cells = <1>; |
| }; |
| }; |
| }; |
| |
| twsi3: i2c@d4013800 { |
| pinctrl-names = "default", "gpio"; |
| pinctrl-0 = <&twsi3_pmx_func>; |
| pinctrl-1 = <&twsi3_pmx_gpio>; |
| i2c-gpio = <&gpio 73 0 &gpio 74 0>; |
| status = "okay"; |
| |
| sensor1: apds9930@39 { |
| compatible = "avago,apds9930"; |
| reg = <0x39>; |
| interrupt-parent = <&gpio>; |
| interrupts = <20 0x1>; |
| irq-gpios = <&gpio 20 0>; |
| avdd-supply = <&ldo4>; |
| status = "disabled"; |
| }; |
| |
| sensor2: bmi160@68 { |
| compatible = "bosch-sensortec,bmi160"; |
| reg = <0x68>; |
| interrupt-parent = <&gpio>; |
| interrupts = <91 0x1>; |
| irq-gpios = <&gpio 91 0>; |
| avdd-supply = <&ldo4>; |
| bmi160-place = <2>; |
| status = "disabled"; |
| }; |
| |
| sensor3: bme280@76 { |
| compatible = "bosch-sensortec,bme280"; |
| reg = <0x76>; |
| avdd-supply = <&ldo4>; |
| status = "disabled"; |
| }; |
| |
| sensor4: icm20628@69 { |
| compatible = "invensense,icm20628"; |
| reg = <0x69>; |
| interrupt-parent = <&gpio>; |
| interrupts = <91 0x1>; |
| inven,irq-gpios = <&gpio 91 0x00>; |
| avdd-supply = <&ldo4>; |
| axis_map_x = <1>; |
| negate_x = <0>; |
| axis_map_y = <0>; |
| negate_y = <1>; |
| axis_map_z = <2>; |
| negate_z = <1>; |
| inven,secondary_axis_map_x = <1>; |
| inven,secondary_negate_x = <0>; |
| inven,secondary_axis_map_y = <0>; |
| inven,secondary_negate_y = <0>; |
| inven,secondary_axis_map_z = <2>; |
| inven,secondary_negate_z = <1>; |
| inven,secondary_type = "compass"; |
| inven,secondary_name = "ak09912"; |
| inven,secondary_reg = <0x0D>; |
| status = "disabled"; |
| }; |
| |
| sensor5: mxc400x@15 { |
| compatible = "memsic,mxc400x"; |
| reg = <0x15>; |
| acdd-supply = <&ldo4>; |
| status = "disabled"; |
| }; |
| |
| sensor6: mmc3524x@30 { |
| compatible = "memsic,mmc3524x"; |
| reg = <0x30>; |
| acdd-supply = <&ldo4>; |
| status = "disabled"; |
| }; |
| |
| sensor7: ap3426@1E { |
| compatible = "dyna,ap3426"; |
| reg = <0x1E>; |
| interrupt-parent = <&gpio>; |
| interrupts = <20 0x1>; |
| irq-gpios = <&gpio 20 0>; |
| avdd-supply = <&ldo4>; |
| status = "disabled"; |
| }; |
| }; |
| |
| spi_0: ssp@d401b000 { |
| status = "disabled"; |
| pinctrl-names = "default"; |
| pinctrl-0 = <&spi0_pmx_func>; |
| #address-cells = <1>; |
| #size-cells = <0>; |
| |
| spidev { |
| spi-max-frequency = <52000000>; |
| reg = <0>; |
| compatible = "rohm,dh2228fv"; |
| status = "okay"; |
| }; |
| }; |
| |
| spi_2: ssp@d401c000 { |
| status = "okay"; |
| pinctrl-names = "default"; |
| pinctrl-0 = <&spi2_pmx_func>; |
| #address-cells = <1>; |
| #size-cells = <0>; |
| |
| flash: m25p80@0 { |
| #address-cells = <1>; |
| #size-cells = <1>; |
| compatible = "sst,sst25wf040b"; |
| spi-max-frequency = <40000000>; |
| reg = <0>; |
| }; |
| }; |
| |
| /* SSPA port 0 */ |
| sspa0: sspa@d128dc00 { |
| pinctrl-names = "default"; |
| pinctrl-0 = <&sspa0_func>; |
| playback_period_bytes = <4096>; |
| playback_buffer_bytes = <16384>; |
| capture_period_bytes = <4096>; |
| capture_buffer_bytes = <12288>; |
| burst_size = <4>; |
| #dailink-cells = <1>; |
| status = "okay"; |
| }; |
| |
| map: map@d1200000 { |
| marvell,b0_fix; |
| marvell,apll = <1>; |
| lpm-qos = <PM_QOS_CPUIDLE_BLOCK_UDR_VCTCXO>; |
| status = "okay"; |
| mmp_map_codec: mmp_map_codec { |
| compatible = "marvell,mmp-map-codec"; |
| #dailink-cells = <1>; |
| }; |
| mmp_map_be: mmp_map_be { |
| compatible = "marvell,mmp-map-be"; |
| pinctrl-names = "default"; |
| pinctrl-0 = <&sspa1_func>; |
| #dailink-cells = <1>; |
| }; |
| mmp_map_be_tdm: mmp_map_be_tdm { |
| compatible = "marvell,mmp-map-be-tdm"; |
| marvell,single-out; |
| #dailink-cells = <1>; |
| }; |
| }; |
| |
| acipc: acipc@d401d000 { |
| status = "okay"; |
| }; |
| |
| seh: seh@d4080000 { |
| status = "okay"; |
| }; |
| |
| cp-load { |
| status = "okay"; |
| }; |
| }; |
| |
| /* |
| * ramoops: |
| * 256 KB memory starts at 0x8100000 |
| * pstore dump: 2 chunks, total 64 KB, 32 KB each |
| * console size: 192 KB |
| * no dump_oops |
| */ |
| ramoops { |
| compatible = "pstore,ramoops"; |
| mem-size = <0x40000>; |
| mem-address = <0x8100000>; |
| record-size = <0x8000>; |
| console-size = <0x30000>; |
| dump-oops = <0>; |
| status = "okay"; |
| }; |
| }; |
| |
| mmp_pcm_hostless: mmp_pcm_hostless { |
| bus_number = <0>; |
| compatible = "marvell,mmp-pcm-hostless"; |
| #dailink-cells = <1>; |
| status = "okay"; |
| }; |
| |
| snd_soc_dummy: snd_soc_dummy { |
| compatible = "snd-soc-dummy"; |
| #dailink-cells = <1>; |
| status = "okay"; |
| }; |
| |
| sound { |
| compatible = "marvell,map-card"; |
| map,dapm-route = |
| "ADC input1", "TDM_MIC1_CAP", |
| "ADC input2", "TDM_MIC2_CAP", |
| "ADC input3", "BT_VC_UL", |
| "TDM_OUT1_PLAYBACK", "out1_hs_en", |
| "TDM_OUT2_PLAYBACK", "out1_spkr_en", |
| "BT_VC_DL", "i2s3_bt_vc"; |
| fe_i2s1: fe_i2s1 { |
| compatible = "marvell,map-dailink-1"; |
| dai-name = "MAP I2S1 audio"; |
| stream-name = "map i2s1"; |
| marvell,cpu-dai = <&sspa0 0>; |
| marvell,codec-dai = <&mmp_map_codec 4>; |
| }; |
| fe_i2s3: fe_i2s3 { |
| compatible = "marvell,map-dailink-2"; |
| dai-name = "MAP I2S2 audio"; |
| stream-name = "map i2s2"; |
| marvell,cpu-dai = <&mmp_pcm_hostless 0>; |
| marvell,codec-dai = <&mmp_map_codec 2>; |
| marvell,dai-no-host-mode; |
| }; |
| fe_i2s4: fe_i2s4 { |
| compatible = "marvell,map-dailink-7"; |
| dai-name = "MAP I2S3 audio"; |
| stream-name = "map i2s3"; |
| marvell,cpu-dai = <&mmp_pcm_hostless 1>; |
| marvell,codec-dai = <&mmp_map_codec 3>; |
| marvell,dai-no-host-mode; |
| }; |
| fe_i2s5: fe_i2s5 { |
| compatible = "marvell,map-dailink-2"; |
| dai-name = "MAP I2S5 audio"; |
| stream-name = "map i2s5"; |
| marvell,cpu-dai = <&mmp_pcm_hostless 2>; |
| marvell,codec-dai = <&mmp_map_codec 5>; |
| marvell,dai-dynamic; |
| marvell,dai-no-host-mode; |
| }; |
| be_i2s1: be_i2s1 { |
| compatible = "marvell,map-dailink-3"; |
| dai-name = "MAP AUXI2S audio"; |
| stream-name = "BT audio"; |
| marvell,cpu-dai = <&mmp_map_be 1>; |
| marvell,codec-dai = <&snd_soc_dummy 0>; |
| marvell,codec-name = "snd-soc-dummy"; |
| marvell,codec-dai-name = "snd-soc-dummy-dai"; |
| marvell,dai-no-pcm; |
| marvell,dai-fixup = <0>; |
| }; |
| be_i2s2: be_i2s2 { |
| compatible = "marvell,map-dailink-6"; |
| dai-name = "MAP TDM hs audio"; |
| stream-name = "codec hs audio"; |
| marvell,cpu-dai = <&mmp_map_be_tdm 1>; |
| marvell,codec-dai = <&pm860_codec 3>; |
| marvell,playback-only; |
| marvell,dai-no-pcm; |
| marvell,dai-fixup = <1>; |
| }; |
| be_i2s3: be_i2s3 { |
| compatible = "marvell,map-dailink-4"; |
| dai-name = "MAP TDM speaker audio"; |
| stream-name = "codec speaker audio"; |
| marvell,cpu-dai = <&mmp_map_be_tdm 2>; |
| marvell,codec-dai = <&pm860_codec 4>; |
| marvell,playback-only; |
| marvell,dai-no-pcm; |
| marvell,dai-fixup = <1>; |
| }; |
| be_i2s4: be_i2s4 { |
| compatible = "marvell,map-dailink-5"; |
| dai-name = "MAP TDM mic1 audio"; |
| stream-name = "codec mic1 audio"; |
| marvell,cpu-dai = <&mmp_map_be_tdm 3>; |
| marvell,codec-dai = <&pm860_codec 1>; |
| marvell,capture-only; |
| marvell,dai-no-pcm; |
| }; |
| be_i2s5: be_i2s5 { |
| compatible = "marvell,map-dailink-5"; |
| dai-name = "MAP TDM mic2 audio"; |
| stream-name = "codec mic2 audio"; |
| marvell,cpu-dai = <&mmp_map_be_tdm 4>; |
| marvell,codec-dai = <&pm860_codec 2>; |
| marvell,capture-only; |
| marvell,dai-no-pcm; |
| }; |
| }; |
| |
| ion { |
| marvell,ion-nr = <2>; |
| status = "okay"; |
| marvell,ion-iommu = <1>; |
| marvell,power-domain = <&pd_smmu>; |
| heap1 { |
| marvell,ion-name = "carveout_heap"; |
| marvell,ion-type = <2>; |
| marvell,ion-id = <2>; |
| marvell,ion-base = <0>; |
| marvell,ion-size = <0>; |
| }; |
| heap2 { |
| marvell,ion-name = "system_heap"; |
| marvell,ion-type = <0>; |
| marvell,ion-id = <0>; |
| }; |
| }; |
| |
| sd8xxx-wlan { |
| drv_mode = <0x5>; |
| cfg80211_wext = <0xc>; |
| sta_name = "wlan"; |
| wfd_name = "p2p"; |
| max_vir_bss = <1>; |
| drvdbg = <0x80007>; |
| dev_cap_mask = <0xffffcfff>; |
| init_cfg = "mrvl/wifi_init_cfg.conf"; |
| txpwrlimit_cfg = "mrvl/txpwrlimit_cfg.bin"; |
| cal_data_cfg = "mrvl/WlanCalData_ext.conf"; |
| reg_alpha2 = "US"; |
| p2p_enh = <1>; |
| }; |
| |
| sd8xxx-bt { |
| init_cfg = "mrvl/bt_init_cfg.conf"; |
| }; |
| |
| mmp_m3_1: apsenhb { |
| compatible = "marvell,mmp-m3"; |
| pmicver = <2>; |
| /* 950000 for CM3 on, 700000 for CM3 off */ |
| vccmain = <950000 700000>; |
| vm3pwr-supply = <&ldo3>; |
| antpwr-supply = <&ldo4>; |
| vccmain-supply = <&buck1slp>; |
| |
| pinctrl-names = "default", "poweron"; |
| pinctrl-0 = <&gnss_pmx_def &gpio10_pull_up>; |
| pinctrl-1 = <&gnss_pmx_power_on>; |
| status = "okay"; |
| }; |
| |
| mmp_m3_2: cm3senhb { |
| compatible = "marvell,mmp-m3"; |
| pmicver = <2>; |
| /* 950000 for CM3 on, 700000 for CM3 off */ |
| vccmain = <950000 700000>; |
| vm3pwr-supply = <&ldo3>; |
| antpwr-supply = <&ldo4>; |
| senpwr-supply = <&ldo4>; |
| vccmain-supply = <&buck1slp>; |
| |
| pinctrl-names = "default", "poweron"; |
| pinctrl-0 = <&gnss_pmx_def &twsi3_pmx_senhb_def &senhb_irq_pins_def |
| &gpio10_pull_up>; |
| pinctrl-1 = <&gnss_pmx_power_on &twsi3_pmx_senhb>; |
| status = "okay"; |
| }; |
| |
| tzdd { |
| status = "okay"; |
| }; |
| |
| dip { |
| compatible = "marvell,simple-dip"; |
| clocks = <&soc_clocks PXA1U88_CLK_CPU>, |
| <&soc_clocks PXA1U88_CLK_DDR>; |
| clock-names = "cpu", "ddr"; |
| }; |
| |
| iml: iml@7ffffe0{ |
| status = "okay"; |
| }; |
| |
| mmplog { |
| status = "okay"; |
| mmplog-base = <0x08000000>; |
| mmplog-size = <0x100000>; |
| }; |
| }; |