Commit f5691ad1 authored by Arnd Bergmann's avatar Arnd Bergmann

Merge tag 'socfpga_dts_for_v5.1' of...

Merge tag 'socfpga_dts_for_v5.1' of git://git.kernel.org/pub/scm/linux/kernel/git/dinguyen/linux into arm/dt

SoCFPGA DTS updates for v5.1
- Add SMMU node for Stratix10
- Add vendor prefix fo Novtech
- Add a new 96Boards Chameleon96 board that uses a Cyclone5 SoCFPGA
- Add missing reset properties for all IP on Cyclone5 and Arria10

* tag 'socfpga_dts_for_v5.1' of git://git.kernel.org/pub/scm/linux/kernel/git/dinguyen/linux:
  ARM: dts: socfpga: update more missing reset properties
  ARM: dts: socfpga: update missing reset property peripherals
  ARM: dts: Add support for 96Boards Chameleon96 board
  dt-bindings: vendor-prefixes: Add Novtech Vendor Prefix
  arm64: dts: stratix10: Add Stratix10 SMMU support
Signed-off-by: default avatarArnd Bergmann <arnd@arndb.de>
parents 01a8ab4e 1c909b2d
......@@ -274,6 +274,7 @@ nintendo Nintendo
nlt NLT Technologies, Ltd.
nokia Nokia
nordic Nordic Semiconductor
novtech NovTech, Inc.
nutsboard NutsBoard
nuvoton Nuvoton Technology Corporation
nvd New Vision Display
......
......@@ -924,6 +924,7 @@ dtb-$(CONFIG_ARCH_SOCFPGA) += \
socfpga_arria10_socdk_nand.dtb \
socfpga_arria10_socdk_qspi.dtb \
socfpga_arria10_socdk_sdmmc.dtb \
socfpga_cyclone5_chameleon96.dtb \
socfpga_cyclone5_mcvevk.dtb \
socfpga_cyclone5_socdk.dtb \
socfpga_cyclone5_de0_nano_soc.dtb \
......
......@@ -84,6 +84,7 @@ pdma: pdma@ffe01000 {
#dma-requests = <32>;
clocks = <&l4_main_clk>;
clock-names = "apb_pclk";
resets = <&rst DMA_RESET>;
};
};
......@@ -100,6 +101,7 @@ can0: can@ffc00000 {
reg = <0xffc00000 0x1000>;
interrupts = <0 131 4>, <0 132 4>, <0 133 4>, <0 134 4>;
clocks = <&can0_clk>;
resets = <&rst CAN0_RESET>;
status = "disabled";
};
......@@ -108,6 +110,7 @@ can1: can@ffc01000 {
reg = <0xffc01000 0x1000>;
interrupts = <0 135 4>, <0 136 4>, <0 137 4>, <0 138 4>;
clocks = <&can1_clk>;
resets = <&rst CAN1_RESET>;
status = "disabled";
};
......@@ -585,6 +588,7 @@ gpio0: gpio@ff708000 {
compatible = "snps,dw-apb-gpio";
reg = <0xff708000 0x1000>;
clocks = <&l4_mp_clk>;
resets = <&rst GPIO0_RESET>;
status = "disabled";
porta: gpio-controller@0 {
......@@ -605,6 +609,7 @@ gpio1: gpio@ff709000 {
compatible = "snps,dw-apb-gpio";
reg = <0xff709000 0x1000>;
clocks = <&l4_mp_clk>;
resets = <&rst GPIO1_RESET>;
status = "disabled";
portb: gpio-controller@0 {
......@@ -625,6 +630,7 @@ gpio2: gpio@ff70a000 {
compatible = "snps,dw-apb-gpio";
reg = <0xff70a000 0x1000>;
clocks = <&l4_mp_clk>;
resets = <&rst GPIO2_RESET>;
status = "disabled";
portc: gpio-controller@0 {
......@@ -735,6 +741,7 @@ mmc: dwmmc0@ff704000 {
#size-cells = <0>;
clocks = <&l4_mp_clk>, <&sdmmc_clk_divided>;
clock-names = "biu", "ciu";
resets = <&rst SDMMC_RESET>;
status = "disabled";
};
......@@ -748,6 +755,7 @@ nand0: nand@ff900000 {
interrupts = <0x0 0x90 0x4>;
clocks = <&nand_clk>, <&nand_x_clk>, <&nand_ecc_clk>;
clock-names = "nand", "nand_x", "ecc";
resets = <&rst NAND_RESET>;
status = "disabled";
};
......@@ -767,6 +775,7 @@ qspi: spi@ff705000 {
cdns,fifo-width = <4>;
cdns,trigger-address = <0x00000000>;
clocks = <&qspi_clk>;
resets = <&rst QSPI_RESET>;
status = "disabled";
};
......@@ -785,6 +794,7 @@ scu: snoop-control-unit@fffec000 {
sdr: sdr@ffc25000 {
compatible = "altr,sdr-ctl", "syscon";
reg = <0xffc25000 0x1000>;
resets = <&rst SDR_RESET>;
};
sdramedac {
......@@ -801,6 +811,7 @@ spi0: spi@fff00000 {
interrupts = <0 154 4>;
num-cs = <4>;
clocks = <&spi_m_clk>;
resets = <&rst SPIM0_RESET>;
status = "disabled";
};
......@@ -812,6 +823,7 @@ spi1: spi@fff01000 {
interrupts = <0 155 4>;
num-cs = <4>;
clocks = <&spi_m_clk>;
resets = <&rst SPIM1_RESET>;
status = "disabled";
};
......@@ -878,6 +890,7 @@ uart0: serial0@ffc02000 {
dmas = <&pdma 28>,
<&pdma 29>;
dma-names = "tx", "rx";
resets = <&rst UART0_RESET>;
};
uart1: serial1@ffc03000 {
......@@ -890,6 +903,7 @@ uart1: serial1@ffc03000 {
dmas = <&pdma 30>,
<&pdma 31>;
dma-names = "tx", "rx";
resets = <&rst UART1_RESET>;
};
usbphy0: usbphy {
......@@ -929,6 +943,7 @@ watchdog0: watchdog@ffd02000 {
reg = <0xffd02000 0x1000>;
interrupts = <0 171 4>;
clocks = <&osc1>;
resets = <&rst L4WD0_RESET>;
status = "disabled";
};
......@@ -937,6 +952,7 @@ watchdog1: watchdog@ffd03000 {
reg = <0xffd03000 0x1000>;
interrupts = <0 172 4>;
clocks = <&osc1>;
resets = <&rst L4WD1_RESET>;
status = "disabled";
};
};
......
......@@ -470,6 +470,7 @@ gmac2: ethernet@ff804000 {
tx-fifo-depth = <4096>;
rx-fifo-depth = <16384>;
clocks = <&l4_mp_clk>;
resets = <&rst EMAC2_RESET>;
clock-names = "stmmaceth";
snps,axi-config = <&socfpga_axi_setup>;
status = "disabled";
......@@ -480,6 +481,7 @@ gpio0: gpio@ffc02900 {
#size-cells = <0>;
compatible = "snps,dw-apb-gpio";
reg = <0xffc02900 0x100>;
resets = <&rst GPIO0_RESET>;
status = "disabled";
porta: gpio-controller@0 {
......@@ -499,6 +501,7 @@ gpio1: gpio@ffc02a00 {
#size-cells = <0>;
compatible = "snps,dw-apb-gpio";
reg = <0xffc02a00 0x100>;
resets = <&rst GPIO1_RESET>;
status = "disabled";
portb: gpio-controller@0 {
......@@ -518,6 +521,7 @@ gpio2: gpio@ffc02b00 {
#size-cells = <0>;
compatible = "snps,dw-apb-gpio";
reg = <0xffc02b00 0x100>;
resets = <&rst GPIO2_RESET>;
status = "disabled";
portc: gpio-controller@0 {
......@@ -548,6 +552,7 @@ i2c0: i2c@ffc02200 {
reg = <0xffc02200 0x100>;
interrupts = <0 105 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&l4_sp_clk>;
resets = <&rst I2C0_RESET>;
status = "disabled";
};
......@@ -558,6 +563,7 @@ i2c1: i2c@ffc02300 {
reg = <0xffc02300 0x100>;
interrupts = <0 106 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&l4_sp_clk>;
resets = <&rst I2C1_RESET>;
status = "disabled";
};
......@@ -568,6 +574,7 @@ i2c2: i2c@ffc02400 {
reg = <0xffc02400 0x100>;
interrupts = <0 107 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&l4_sp_clk>;
resets = <&rst I2C2_RESET>;
status = "disabled";
};
......@@ -578,6 +585,7 @@ i2c3: i2c@ffc02500 {
reg = <0xffc02500 0x100>;
interrupts = <0 108 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&l4_sp_clk>;
resets = <&rst I2C3_RESET>;
status = "disabled";
};
......@@ -588,6 +596,7 @@ i2c4: i2c@ffc02600 {
reg = <0xffc02600 0x100>;
interrupts = <0 109 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&l4_sp_clk>;
resets = <&rst I2C4_RESET>;
status = "disabled";
};
......@@ -600,6 +609,7 @@ spi0: spi@ffda4000 {
num-cs = <4>;
/*32bit_access;*/
clocks = <&spi_m_clk>;
resets = <&rst SPIM0_RESET>;
status = "disabled";
};
......@@ -614,6 +624,7 @@ spi1: spi@ffda5000 {
tx-dma-channel = <&pdma 16>;
rx-dma-channel = <&pdma 17>;
clocks = <&spi_m_clk>;
resets = <&rst SPIM1_RESET>;
status = "disabled";
};
......@@ -642,6 +653,7 @@ mmc: dwmmc0@ff808000 {
fifo-depth = <0x400>;
clocks = <&l4_mp_clk>, <&sdmmc_clk>;
clock-names = "biu", "ciu";
resets = <&rst SDMMC_RESET>;
status = "disabled";
};
......@@ -655,6 +667,7 @@ nand: nand@ffb90000 {
interrupts = <0 99 4>;
clocks = <&nand_clk>, <&nand_x_clk>, <&nand_ecc_clk>;
clock-names = "nand", "nand_x", "ecc";
resets = <&rst NAND_RESET>;
status = "disabled";
};
......@@ -739,6 +752,7 @@ qspi: spi@ff809000 {
cdns,fifo-width = <4>;
cdns,trigger-address = <0x00000000>;
clocks = <&qspi_clk>;
resets = <&rst QSPI_RESET>;
status = "disabled";
};
......@@ -815,6 +829,7 @@ uart0: serial0@ffc02000 {
reg-shift = <2>;
reg-io-width = <4>;
clocks = <&l4_sp_clk>;
resets = <&rst UART0_RESET>;
status = "disabled";
};
......@@ -825,6 +840,7 @@ uart1: serial1@ffc02100 {
reg-shift = <2>;
reg-io-width = <4>;
clocks = <&l4_sp_clk>;
resets = <&rst UART1_RESET>;
status = "disabled";
};
......@@ -865,6 +881,7 @@ watchdog0: watchdog@ffd00200 {
reg = <0xffd00200 0x100>;
interrupts = <0 119 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&l4_sys_free_clk>;
resets = <&rst L4WD0_RESET>;
status = "disabled";
};
......@@ -873,6 +890,7 @@ watchdog1: watchdog@ffd00300 {
reg = <0xffd00300 0x100>;
interrupts = <0 120 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&l4_sys_free_clk>;
resets = <&rst L4WD1_RESET>;
status = "disabled";
};
};
......
// SPDX-License-Identifier: (GPL-2.0 OR MIT)
/*
* Device Tree file for the Chameleon96
*
* Copyright (c) 2018 Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
*/
#include <dt-bindings/gpio/gpio.h>
#include "socfpga_cyclone5.dtsi"
/ {
model = "Novetech Chameleon96";
compatible = "novtech,chameleon96", "altr,socfpga-cyclone5", "altr,socfpga";
chosen {
bootargs = "earlyprintk";
stdout-path = "serial0:115200n8";
};
memory@0 {
name = "memory";
device_type = "memory";
reg = <0x0 0x20000000>; /* 512MB */
};
regulator_3_3v: 3-3-v-regulator {
compatible = "regulator-fixed";
regulator-name = "3.3V";
regulator-min-microvolt = <3300000>;
regulator-max-microvolt = <3300000>;
};
leds {
compatible = "gpio-leds";
user_led1 {
label = "green:user1";
gpios = <&porta 14 GPIO_ACTIVE_LOW>;
linux,default-trigger = "heartbeat";
};
user_led2 {
label = "green:user2";
gpios = <&porta 22 GPIO_ACTIVE_LOW>;
linux,default-trigger = "mmc0";
};
user_led3 {
label = "green:user3";
gpios = <&porta 25 GPIO_ACTIVE_LOW>;
linux,default-trigger = "none";
};
user_led4 {
label = "green:user4";
gpios = <&portb 3 GPIO_ACTIVE_LOW>;
panic-indicator;
linux,default-trigger = "none";
};
};
};
&gpio0 {
status = "okay";
};
&gpio1 {
status = "okay";
};
&i2c0 {
/* On Low speed expansion */
label = "LS-I2C0";
status = "okay";
};
&i2c1 {
/* On Low speed expansion */
label = "LS-I2C1";
status = "okay";
};
&i2c2 {
status = "okay";
};
&i2c3 {
/* On High speed expansion */
label = "HS-I2C2";
status = "okay";
};
&mmc0 {
vmmc-supply = <&regulator_3_3v>;
vqmmc-supply = <&regulator_3_3v>;
status = "okay";
};
&spi0 {
/* On High speed expansion */
label = "HS-SPI1";
status = "okay";
};
&spi1 {
/* On Low speed expansion */
label = "LS-SPI0";
status = "okay";
};
&uart0 {
/* On Low speed expansion */
label = "LS-UART1";
status = "okay";
};
&uart1 {
/* On Low speed expansion */
label = "LS-UART0";
status = "okay";
};
&usbphy0 {
status = "okay";
};
&usb1 {
status = "okay";
};
......@@ -161,6 +161,7 @@ gmac0: ethernet@ff800000 {
tx-fifo-depth = <16384>;
rx-fifo-depth = <16384>;
snps,multicast-filter-bins = <256>;
iommus = <&smmu 1>;
status = "disabled";
};
......@@ -177,6 +178,7 @@ gmac1: ethernet@ff802000 {
tx-fifo-depth = <16384>;
rx-fifo-depth = <16384>;
snps,multicast-filter-bins = <256>;
iommus = <&smmu 2>;
status = "disabled";
};
......@@ -193,6 +195,7 @@ gmac2: ethernet@ff804000 {
tx-fifo-depth = <16384>;
rx-fifo-depth = <16384>;
snps,multicast-filter-bins = <256>;
iommus = <&smmu 3>;
status = "disabled";
};
......@@ -303,6 +306,7 @@ mmc: dwmmc0@ff808000 {
clocks = <&clkmgr STRATIX10_L4_MP_CLK>,
<&clkmgr STRATIX10_SDMMC_CLK>;
clock-names = "biu", "ciu";
iommus = <&smmu 5>;
status = "disabled";
};
......@@ -336,6 +340,29 @@ rst: rstmgr@ffd11000 {
reg = <0xffd11000 0x1000>;
};
smmu: iommu@fa000000 {
compatible = "arm,mmu-500", "arm,smmu-v2";
reg = <0xfa000000 0x40000>;
#global-interrupts = <2>;
#iommu-cells = <1>;
clocks = <&clkmgr STRATIX10_L4_MAIN_CLK>;
clock-names = "iommu";
interrupt-parent = <&intc>;
interrupts = <0 128 4>, /* Global Secure Fault */
<0 129 4>, /* Global Non-secure Fault */
/* Non-secure Context Interrupts (32) */
<0 138 4>, <0 139 4>, <0 140 4>, <0 141 4>,
<0 142 4>, <0 143 4>, <0 144 4>, <0 145 4>,
<0 146 4>, <0 147 4>, <0 148 4>, <0 149 4>,
<0 150 4>, <0 151 4>, <0 152 4>, <0 153 4>,
<0 154 4>, <0 155 4>, <0 156 4>, <0 157 4>,
<0 158 4>, <0 159 4>, <0 160 4>, <0 161 4>,
<0 162 4>, <0 163 4>, <0 164 4>, <0 165 4>,
<0 166 4>, <0 167 4>, <0 168 4>, <0 169 4>;
stream-match-mask = <0x7ff0>;
status = "disabled";
};
spi0: spi@ffda4000 {
compatible = "snps,dw-apb-ssi";
#address-cells = <1>;
......@@ -445,6 +472,7 @@ usb0: usb@ffb00000 {
resets = <&rst USB0_RESET>, <&rst USB0_OCP_RESET>;
reset-names = "dwc2", "dwc2-ecc";
clocks = <&clkmgr STRATIX10_USB_CLK>;
iommus = <&smmu 6>;
status = "disabled";
};
......@@ -457,6 +485,7 @@ usb1: usb@ffb40000 {
resets = <&rst USB1_RESET>, <&rst USB1_OCP_RESET>;
reset-names = "dwc2", "dwc2-ecc";
clocks = <&clkmgr STRATIX10_USB_CLK>;
iommus = <&smmu 7>;
status = "disabled";
};
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment