/dts-v1/; #include "a210-soc-core.dtsi" #include "a210-soc-peri.dtsi" #include "a210-platform-evb.dtsi" #define SOUND_CARD_LINK(REG, FMT, CPU, M, CODEC, N) \ simple-audio-card,dai-link@##REG { \ reg = ; \ format = #FMT; \ cpu { \ sound-dai = <&audio_##CPU M>; \ }; \ codec { \ sound-dai = <&codec_##CODEC N>; \ }; \ } / { model = "A210 EVB configuration"; aliases { ethernet0 = &gmac0; ethernet1 = &gmac1; mmc0 = &emmc; mmc1 = &sdhci0; serial0 = &uart0; serial1 = &uart1; serial2 = &uart2; serial3 = &uart3; serial4 = &uart4; serial5 = &uart5; serial6 = &uart6; serial7 = &uart7; serial8 = &uart8; serial9 = &uart9; spi0 = &qspi0; spi1 = &qspi1; spi2 = &spi0; spi3 = &spi1; pcie3x4 = &dm3x4; pcie3x1 = &rp3x1; }; /* The first 2M will be reserved in the Kernel, and the entire available range is set here */ memory@0 { device_type = "memory"; reg = <0x00 0x80000000 0x01 0x00000000>; /* 4G - 64MB */ numa-node-id = <0>; }; reserved-memory { #address-cells = <2>; #size-cells = <2>; ranges; linux,cma { compatible = "shared-dma-pool"; reusable; size = <0x00 0x4000000>; alloc-ranges = <0x00 0x90000000 0x00 0x4000000>; linux,cma-default; }; memory@1c000000 { reg = <0x00 0x1c000000 0x00 0x2000000>; no-map; }; framebuffer: framebuffer@10000000 { reg = <0x01 0x00 0x00 0x20000000>; no-map; }; zh_videomem@100000000 { reg = <0x01 0x00 0x00 0x20000000>; no-map; }; npu_mmu_memory@130000000 { reg = <0x01 0x30000000 0x00 0x04000000>; no-map; }; memblock-memory@17b800000 { reg = <0x01 0x7b800000 0x00 0x04000000>; no-map; }; }; /* The bootargs in U-Boot will override the configuration set here. */ chosen { stdout-path = "serial4"; }; }; &peri1_padctrl { gmac0_pins: gmac0-0 { tx-pins { pins = "GPIO0_0", /* GMAC0_TX_CLK */ "GPIO0_2", /* GMAC0_TXEN */ "GPIO0_3", /* GMAC0_TXD0 */ "GPIO0_4", /* GMAC0_TXD1 */ "GPIO0_5", /* GMAC0_TXD2 */ "GPIO0_6"; /* GMAC0_TXD3 */ function = "gmac0"; bias-disable; drive-strength = <25>; input-disable; input-schmitt-disable; slew-rate = <0>; }; rx-pins { pins = "GPIO0_1", /* GMAC0_RX_CLK */ "GPIO0_7", /* GMAC0_RXDV */ "GPIO0_8", /* GMAC0_RXD0 */ "GPIO0_9", /* GMAC0_RXD1 */ "GPIO0_10", /* GMAC0_RXD2 */ "GPIO0_11"; /* GMAC0_RXD3 */ function = "gmac0"; bias-disable; drive-strength = <1>; input-enable; input-schmitt-disable; slew-rate = <0>; }; }; mdio0_pins: mdio0-0 { mdc-pins { pins = "GPIO0_12"; /* GMAC0_MDC */ function = "gmac0"; bias-disable; drive-strength = <13>; input-disable; input-schmitt-disable; slew-rate = <0>; }; mdio-pins { pins = "GPIO0_13"; /* GMAC0_MDIO */ function = "gmac0"; bias-disable; drive-strength = <13>; input-enable; input-schmitt-enable; slew-rate = <0>; }; }; qspi0_pins: qspi0-0 { qspi-pins { pins = "GPIO0_18", "GPIO0_20", "GPIO0_21", "GPIO0_22", "GPIO0_23"; function = "qspi0"; bias-disable; drive-strength = <7>; input-enable; input-schmitt-enable; slew-rate = <0>; }; }; can0_pins: can0-0 { can-pins { pins = "GPIO0_24", "GPIO0_25"; function = "can0"; bias-disable; drive-strength = <7>; input-enable; input-schmitt-enable; slew-rate = <0>; }; }; can1_pins: can1-0 { can-pins { pins = "GPIO0_26", "GPIO0_27"; function = "can1"; bias-disable; drive-strength = <7>; input-enable; input-schmitt-enable; slew-rate = <0>; }; }; spi0_pins: spi0-0 { spi-pins { pins = "GPIO0_28", "GPIO0_29", "GPIO1_1"; function = "spi0"; bias-disable; drive-strength = <7>; input-enable; input-schmitt-enable; slew-rate = <0>; }; }; gmac1_pins: gmac1-0 { tx-pins { pins = "GPIO1_2", /* GMAC1_TX_CLK */ "GPIO1_4", /* GMAC1_TXEN */ "GPIO1_5", /* GMAC1_TXD0 */ "GPIO1_6", /* GMAC1_TXD1 */ "GPIO1_7", /* GMAC1_TXD2 */ "GPIO1_8"; /* GMAC1_TXD3 */ function = "gmac1"; bias-disable; drive-strength = <25>; input-disable; input-schmitt-disable; slew-rate = <0>; }; rx-pins { pins = "GPIO1_3", /* GMAC1_RX_CLK */ "GPIO1_9", /* GMAC1_RXDV */ "GPIO1_10", /* GMAC1_RXD0 */ "GPIO1_11", /* GMAC1_RXD1 */ "GPIO1_12", /* GMAC1_RXD2 */ "GPIO1_13"; /* GMAC1_RXD3 */ function = "gmac1"; bias-disable; drive-strength = <1>; input-enable; input-schmitt-disable; slew-rate = <0>; }; }; mdio1_pins: mdio1-0 { mdc-pins { pins = "GPIO1_14"; /* GMAC1_MDC */ function = "gmac1"; bias-disable; drive-strength = <13>; input-disable; input-schmitt-disable; slew-rate = <0>; }; mdio-pins { pins = "GPIO1_15"; /* GMAC1_MDIO */ function = "gmac1"; bias-disable; drive-strength = <13>; input-enable; input-schmitt-enable; slew-rate = <0>; }; }; }; &peri2_padctrl { i2c4_pins: i2c4-2 { i2c-pins { pins = "GPIO0_26", "GPIO0_27"; function = "i2c4"; bias-disable; drive-strength = <7>; input-enable; input-schmitt-enable; slew-rate = <0>; }; }; uart4_pins: uart4-0 { uart-pins { pins = "GPIO2_0", "GPIO2_1"; function = "uart4"; bias-disable; drive-strength = <7>; input-enable; input-schmitt-enable; slew-rate = <0>; }; }; uart5_pins: uart5-0 { uart-pins { pins = "GPIO2_2", "GPIO2_3"; function = "uart5"; bias-disable; drive-strength = <7>; input-enable; input-schmitt-enable; slew-rate = <0>; }; }; i2c5_pins: i2c5-0 { i2c-pins { pins = "GPIO2_2", "GPIO2_3"; function = "i2c5"; bias-disable; drive-strength = <7>; input-enable; input-schmitt-enable; slew-rate = <0>; }; }; uart6_pins: uart6-0 { uart-pins { pins = "GPIO2_4", "GPIO2_5", "GPIO2_8", "GPIO2_9"; // TXD/RXD/CTSN/RTSN function = "uart6"; bias-disable; drive-strength = <7>; input-enable; input-schmitt-enable; slew-rate = <0>; }; }; i2c6_pins: i2c6-0 { i2c-pins { pins = "GPIO2_4", "GPIO2_5"; function = "i2c6"; bias-disable; drive-strength = <7>; input-enable; input-schmitt-enable; slew-rate = <0>; }; }; uart7_pins: uart7-0 { uart-pins { pins = "GPIO2_6", "GPIO2_7"; function = "uart7"; bias-disable; drive-strength = <7>; input-enable; input-schmitt-enable; slew-rate = <0>; }; }; uart9_pins: uart9-0 { uart-pins { pins = "GPIO2_10", "GPIO2_11"; function = "uart9"; bias-disable; drive-strength = <7>; input-enable; input-schmitt-enable; slew-rate = <0>; }; }; i2c7_pins: i2c7-0 { i2c-pins { pins = "GPIO2_10", "GPIO2_11"; function = "i2c7"; bias-disable; drive-strength = <7>; input-enable; input-schmitt-enable; slew-rate = <0>; }; }; pwm1_pins: pwm1 { pwm-pins { pins = "GPIO2_12", "GPIO2_28"; // PWM1_CH2-0/PWM1_CH0-1 function = "pwm1"; bias-disable; drive-strength = <7>; input-enable; input-schmitt-enable; slew-rate = <0>; }; }; spi1_pins: spi1-1 { spi-pins { pins = "GPIO2_17", "GPIO2_21", "GPIO2_22"; function = "spi1"; bias-disable; drive-strength = <7>; input-enable; input-schmitt-enable; slew-rate = <0>; }; }; hdmi_pins: hdmi-0 { hdmi-pins { pins = "GPIO2_25", "GPIO2_30", "GPIO2_31"; function = "hdmi"; bias-disable; drive-strength = <3>; input-enable; input-schmitt-disable; slew-rate = <0>; }; }; can2_pins: can2-0 { can-pins { pins = "GPIO3_0", "GPIO3_1"; function = "can2"; bias-disable; drive-strength = <7>; input-enable; input-schmitt-enable; slew-rate = <0>; }; }; qspi1_pins: qspi1-1 { qspi-pins { pins = "GPIO3_2", "GPIO3_5", "GPIO3_6", "GPIO3_7", "GPIO3_8"; function = "qspi1"; bias-disable; drive-strength = <7>; input-enable; input-schmitt-enable; slew-rate = <0>; }; }; dptx_pins: dptx-1 { dptx-pins { pins = "GPIO3_9"; function = "dptx"; bias-disable; drive-strength = <7>; input-enable; input-schmitt-enable; slew-rate = <0>; }; }; usb31_pins: usb31-0 { usb31-pins { pins = "GPIO3_10"; function = "usb31"; bias-disable; drive-strength = <7>; input-enable; input-schmitt-enable; slew-rate = <0>; }; }; }; &spi0 { cs-gpios = <&gpio0_porta 30 0>; rx-sample-delay-ns = <10>; pinctrl-names = "default"; pinctrl-0 = <&spi0_pins>; spi_norflash@0 { status = "okay"; #address-cells = <1>; #size-cells = <1>; compatible = "jedec,spi-nor"; reg = <0>; spi-max-frequency = <50000000>; w25q,fast-read; }; spidev@1 { status = "disabled"; compatible = "spidev"; #address-cells = <0x1>; #size-cells = <0x1>; reg = <0x1>; spi-max-frequency = <50000000>; }; }; &spi1 { cs-gpios = <&gpio2_porta 18 0>; rx-sample-delay-ns = <10>; pinctrl-names = "default"; pinctrl-0 = <&spi1_pins>; spi_norflash@0 { status = "disabled"; #address-cells = <1>; #size-cells = <1>; compatible = "jedec,spi-nor"; reg = <0>; spi-max-frequency = <50000000>; w25q,fast-read; }; }; &qspi0 { cs-gpios = <&gpio0_porta 19 0>; rx-sample-dly = <4>; pinctrl-names = "default"; pinctrl-0 = <&qspi0_pins>; spi_norflash@0 { status = "disabled"; compatible = "jedec,spi-nor"; reg = <0>; #address-cells = <1>; #size-cells = <1>; spi-tx-bus-width = <4>; spi-rx-bus-width = <4>; spi-max-frequency = <50000000>; }; spi-nandflash@1 { status = "disabled"; #address-cells = <1>; #size-cells = <1>; compatible = "spi-nand"; spi-max-frequency = <100000000>; spi-tx-bus-width = <4>; spi-rx-bus-width = <4>; reg = <1>; partition@0 { label = "nand0"; reg = <0x00000000 0x08000000>; }; }; }; &qspi1 { cs-gpios = <&gpio2_porta 29 0>; rx-sample-dly = <4>; pinctrl-names = "default"; pinctrl-0 = <&qspi1_pins>; spi_norflash@0 { status = "okay"; compatible = "jedec,spi-nor"; reg = <0>; #address-cells = <1>; #size-cells = <1>; spi-tx-bus-width = <4>; spi-rx-bus-width = <4>; spi-max-frequency = <50000000>; }; spi-nandflash@1 { status = "disabled"; #address-cells = <1>; #size-cells = <1>; compatible = "spi-nand"; spi-max-frequency = <100000000>; spi-tx-bus-width = <4>; spi-rx-bus-width = <4>; reg = <1>; partition@0 { label = "nand1"; reg = <0x00000000 0x08000000>; }; }; }; &emmc { max-frequency = <196608000>; non-removable; mmc-hs200-1_8v; io_fixed_1v8; is_emmc; no-sdio; no-sd; pull_up; bus-width = <8>; }; &sdhci0 { max-frequency = <196608000>; bus-width = <4>; pull_up; wprtn_ignore; }; &gmac0 { phy-mode = "rgmii-id"; pinctrl-names = "default"; pinctrl-0 = <&gmac0_pins>; rx-clk-delay = <0x00>; /* for RGMII */ tx-clk-delay = <0x00>; /* for RGMII */ phy-handle = <&phy0>; }; &mdio0 { pinctrl-names = "default"; pinctrl-0 = <&mdio0_pins>; phy0: ethernet-phy@0 { reg = <0x0>; }; }; &gmac1 { phy-mode = "rgmii-id"; pinctrl-names = "default"; pinctrl-0 = <&gmac1_pins>; rx-clk-delay = <0x00>; /* for RGMII */ tx-clk-delay = <0x00>; /* for RGMII */ phy-handle = <&phy1>; }; &mdio1 { pinctrl-names = "default"; pinctrl-0 = <&mdio1_pins>; phy1: ethernet-phy@1 { reg = <0x0>; }; }; &i2c4 { pinctrl-names = "default"; pinctrl-0 = <&i2c4_pins>; clock-frequency = <400000>; }; &i2c5 { pinctrl-names = "default"; pinctrl-0 = <&i2c5_pins>; clock-frequency = <400000>; }; &i2c6 { pinctrl-names = "default"; pinctrl-0 = <&i2c6_pins>; clock-frequency = <400000>; }; &i2c7 { pinctrl-names = "default"; pinctrl-0 = <&i2c7_pins>; clock-frequency = <400000>; }; &uart4 { pinctrl-names = "default"; pinctrl-0 = <&uart4_pins>; }; &uart5 { pinctrl-names = "default"; pinctrl-0 = <&uart5_pins>; }; &uart6 { pinctrl-names = "default"; pinctrl-0 = <&uart6_pins>; }; &uart7 { pinctrl-names = "default"; pinctrl-0 = <&uart7_pins>; }; &uart9 { pinctrl-names = "default"; pinctrl-0 = <&uart9_pins>; }; &pwm1 { pinctrl-names = "default"; pinctrl-0 = <&pwm1_pins>; }; &can0 { pinctrl-names = "default"; pinctrl-0 = <&can0_pins>; }; &can1 { pinctrl-names = "default"; pinctrl-0 = <&can1_pins>; }; &can2 { pinctrl-names = "default"; pinctrl-0 = <&can2_pins>; }; &vp_dfmu_iommu { status = "disabled"; }; &vp_dfmu_mt { status = "disabled"; }; &npu_dfmu_iommu { status = "disabled"; }; &npu_dfmu_mt { status = "disabled"; }; &vi_dfmu_iommu { status = "disabled"; }; &vi_dfmu_mt { status = "disabled"; }; &vo_dfmu_iommu { status = "disabled"; }; &vo_dfmu_mt { status = "disabled"; }; &peri1_dfmu_iommu { status = "disabled"; }; &peri1_dfmu_mt { status = "disabled"; }; &pcie_dfmu_iommu { status = "disabled"; }; &pcie_dfmu_mt { status = "disabled"; }; &usb_dfmu_iommu { status = "disabled"; }; &usb_dfmu_mt { status = "disabled"; }; ////////////////////////////////////////////////////////////////////////////////////////////////////////////// /* FIXME: clk stages overlay to be selected for real SOC. */ /* bringup stage 3: full subsys + high freq */ /* refer to maximum clk freq in p100-soc-core.dtsi */ /* bringup stage 2: full subsys + medium freq*/ &clk_peri { peri1_spi_ssi_clk_frequency = <220000000>; peri2_spi_ssi_clk_frequency = <220000000>; peri1_qspi_ssi_clk_frequency = <220000000>; peri2_qspi_ssi_clk_frequency = <220000000>; uart_sclk_frequency = <24000000>; emmc_ref_clk_frequency = <203076924>; tee_clk_frequency = <200000000>; }; &clk_pcie { pcie_ss_axi_m_aclk_frequency = <240000000>; }; &clk_npu { npu_cclk_frequency = <600000000>; npu_aclk_frequency = <600000000>; }; &emmc { max-frequency = <49152000>; }; &sdhci0 { max-frequency = <49152000>; }; /* bringup stage 1: minisys + low freq */ &clk { top_cfg_aclk_frequency = <165000000>; top_pclk_frequency = <82500000>; top_amux_clk_frequency = <240000000>; iommu_ptw_aclk_frequency = <165000000>; noc_cclk_frequency = <240000000>; top_cpusys_bus_clk_frequency = <220000000>; top_cpusys_pic_clk_frequency = <250000000>; }; &clk_peri { peri1_spi_ssi_clk_frequency = <220000000>; peri2_spi_ssi_clk_frequency = <220000000>; peri1_qspi_ssi_clk_frequency = <220000000>; peri2_qspi_ssi_clk_frequency = <220000000>; uart_sclk_frequency = <24000000>; emmc_ref_clk_frequency = <203076924>; peri1_mst_aclk_frequency = <165000000>; peri3_mst_aclk_frequency = <220000000>; tee_clk_frequency = <200000000>; }; &emmc { max-frequency = <49152000>; }; &sdhci0 { max-frequency = <49152000>; }; &clk_gpu { status = "disabled"; }; &clk_pcie { status = "disabled"; }; &clk_usb { status = "disabled"; }; &clk_vi { status = "disabled"; }; &clk_vp { status = "disabled"; }; &clk_vo { status = "disabled"; }; &clk_npu { status = "disabled"; }; &clk_d2d { status = "disabled"; }; &vidmem { status = "okay"; memory-region = <&framebuffer>; };