Merge branch 'master' of git://git.denx.de/u-boot-socfpga

This commit is contained in:
Tom Rini 2018-11-29 16:36:53 -05:00
commit 6d4a3ff264
31 changed files with 1269 additions and 346 deletions

View file

@ -85,7 +85,7 @@
};
qspi: qspi@2940000 {
compatible = "cadence,qspi";
compatible = "cdns,qspi-nor";
#address-cells = <1>;
#size-cells = <0>;
reg = <0x02940000 0x1000>,

View file

@ -1,9 +1,8 @@
// SPDX-License-Identifier: GPL-2.0+
/*
* Copyright (C) 2012 Altera <www.altera.com>
* Copyright (C) 2012 Altera <www.altera.com>
*/
#include "skeleton.dtsi"
#include <dt-bindings/reset/altr,rst-mgr.h>
/ {
@ -11,34 +10,26 @@
#size-cells = <1>;
aliases {
ethernet0 = &gmac0;
ethernet1 = &gmac1;
i2c0 = &i2c0;
i2c1 = &i2c1;
i2c2 = &i2c2;
i2c3 = &i2c3;
serial0 = &uart0;
serial1 = &uart1;
timer0 = &timer0;
timer1 = &timer1;
timer2 = &timer2;
timer3 = &timer3;
spi0 = &qspi;
spi1 = &spi0;
spi2 = &spi1;
};
cpus {
#address-cells = <1>;
#size-cells = <0>;
enable-method = "altr,socfpga-smp";
cpu@0 {
cpu0: cpu@0 {
compatible = "arm,cortex-a9";
device_type = "cpu";
reg = <0>;
next-level-cache = <&L2>;
};
cpu@1 {
cpu1: cpu@1 {
compatible = "arm,cortex-a9";
device_type = "cpu";
reg = <1>;
@ -46,6 +37,15 @@
};
};
pmu: pmu@ff111000 {
compatible = "arm,cortex-a9-pmu";
interrupt-parent = <&intc>;
interrupts = <0 176 4>, <0 177 4>;
interrupt-affinity = <&cpu0>, <&cpu1>;
reg = <0xff111000 0x1000>,
<0xff113000 0x1000>;
};
intc: intc@fffed000 {
compatible = "arm,cortex-a9-gic";
#interrupt-cells = <3>;
@ -63,7 +63,7 @@
ranges;
amba {
compatible = "arm,amba-bus";
compatible = "simple-bus";
#address-cells = <1>;
#size-cells = <1>;
ranges;
@ -87,6 +87,14 @@
};
};
base_fpga_region {
compatible = "fpga-region";
fpga-mgr = <&fpgamgr0>;
#address-cells = <0x1>;
#size-cells = <0x1>;
};
can0: can@ffc00000 {
compatible = "bosch,d_can";
reg = <0xffc00000 0x1000>;
@ -131,7 +139,7 @@
compatible = "fixed-clock";
};
main_pll: main_pll {
main_pll: main_pll@40 {
#address-cells = <1>;
#size-cells = <0>;
#clock-cells = <0>;
@ -139,7 +147,7 @@
clocks = <&osc1>;
reg = <0x40>;
mpuclk: mpuclk {
mpuclk: mpuclk@48 {
#clock-cells = <0>;
compatible = "altr,socfpga-perip-clk";
clocks = <&main_pll>;
@ -147,7 +155,7 @@
reg = <0x48>;
};
mainclk: mainclk {
mainclk: mainclk@4c {
#clock-cells = <0>;
compatible = "altr,socfpga-perip-clk";
clocks = <&main_pll>;
@ -155,29 +163,29 @@
reg = <0x4C>;
};
dbg_base_clk: dbg_base_clk {
dbg_base_clk: dbg_base_clk@50 {
#clock-cells = <0>;
compatible = "altr,socfpga-perip-clk";
clocks = <&main_pll>;
clocks = <&main_pll>, <&osc1>;
div-reg = <0xe8 0 9>;
reg = <0x50>;
};
main_qspi_clk: main_qspi_clk {
main_qspi_clk: main_qspi_clk@54 {
#clock-cells = <0>;
compatible = "altr,socfpga-perip-clk";
clocks = <&main_pll>;
reg = <0x54>;
};
main_nand_sdmmc_clk: main_nand_sdmmc_clk {
main_nand_sdmmc_clk: main_nand_sdmmc_clk@58 {
#clock-cells = <0>;
compatible = "altr,socfpga-perip-clk";
clocks = <&main_pll>;
reg = <0x58>;
};
cfg_h2f_usr0_clk: cfg_h2f_usr0_clk {
cfg_h2f_usr0_clk: cfg_h2f_usr0_clk@5c {
#clock-cells = <0>;
compatible = "altr,socfpga-perip-clk";
clocks = <&main_pll>;
@ -185,7 +193,7 @@
};
};
periph_pll: periph_pll {
periph_pll: periph_pll@80 {
#address-cells = <1>;
#size-cells = <0>;
#clock-cells = <0>;
@ -193,42 +201,42 @@
clocks = <&osc1>, <&osc2>, <&f2s_periph_ref_clk>;
reg = <0x80>;
emac0_clk: emac0_clk {
emac0_clk: emac0_clk@88 {
#clock-cells = <0>;
compatible = "altr,socfpga-perip-clk";
clocks = <&periph_pll>;
reg = <0x88>;
};
emac1_clk: emac1_clk {
emac1_clk: emac1_clk@8c {
#clock-cells = <0>;
compatible = "altr,socfpga-perip-clk";
clocks = <&periph_pll>;
reg = <0x8C>;
};
per_qspi_clk: per_qsi_clk {
per_qspi_clk: per_qsi_clk@90 {
#clock-cells = <0>;
compatible = "altr,socfpga-perip-clk";
clocks = <&periph_pll>;
reg = <0x90>;
};
per_nand_mmc_clk: per_nand_mmc_clk {
per_nand_mmc_clk: per_nand_mmc_clk@94 {
#clock-cells = <0>;
compatible = "altr,socfpga-perip-clk";
clocks = <&periph_pll>;
reg = <0x94>;
};
per_base_clk: per_base_clk {
per_base_clk: per_base_clk@98 {
#clock-cells = <0>;
compatible = "altr,socfpga-perip-clk";
clocks = <&periph_pll>;
reg = <0x98>;
};
h2f_usr1_clk: h2f_usr1_clk {
h2f_usr1_clk: h2f_usr1_clk@9c {
#clock-cells = <0>;
compatible = "altr,socfpga-perip-clk";
clocks = <&periph_pll>;
@ -236,7 +244,7 @@
};
};
sdram_pll: sdram_pll {
sdram_pll: sdram_pll@c0 {
#address-cells = <1>;
#size-cells = <0>;
#clock-cells = <0>;
@ -244,28 +252,28 @@
clocks = <&osc1>, <&osc2>, <&f2s_sdram_ref_clk>;
reg = <0xC0>;
ddr_dqs_clk: ddr_dqs_clk {
ddr_dqs_clk: ddr_dqs_clk@c8 {
#clock-cells = <0>;
compatible = "altr,socfpga-perip-clk";
clocks = <&sdram_pll>;
reg = <0xC8>;
};
ddr_2x_dqs_clk: ddr_2x_dqs_clk {
ddr_2x_dqs_clk: ddr_2x_dqs_clk@cc {
#clock-cells = <0>;
compatible = "altr,socfpga-perip-clk";
clocks = <&sdram_pll>;
reg = <0xCC>;
};
ddr_dq_clk: ddr_dq_clk {
ddr_dq_clk: ddr_dq_clk@d0 {
#clock-cells = <0>;
compatible = "altr,socfpga-perip-clk";
clocks = <&sdram_pll>;
reg = <0xD0>;
};
h2f_usr2_clk: h2f_usr2_clk {
h2f_usr2_clk: h2f_usr2_clk@d4 {
#clock-cells = <0>;
compatible = "altr,socfpga-perip-clk";
clocks = <&sdram_pll>;
@ -312,7 +320,7 @@
l3_sp_clk: l3_sp_clk {
#clock-cells = <0>;
compatible = "altr,socfpga-gate-clk";
clocks = <&mainclk>;
clocks = <&l3_mp_clk>;
div-reg = <0x64 2 2>;
};
@ -343,7 +351,7 @@
dbg_clk: dbg_clk {
#clock-cells = <0>;
compatible = "altr,socfpga-gate-clk";
clocks = <&dbg_base_clk>;
clocks = <&dbg_at_clk>;
div-reg = <0x68 2 2>;
clk-gate = <0x60 5>;
};
@ -446,6 +454,14 @@
clk-phase = <0 135>;
};
sdmmc_clk_divided: sdmmc_clk_divided {
#clock-cells = <0>;
compatible = "altr,socfpga-gate-clk";
clocks = <&sdmmc_clk>;
clk-gate = <0xa0 8>;
fixed-divider = <4>;
};
nand_x_clk: nand_x_clk {
#clock-cells = <0>;
compatible = "altr,socfpga-gate-clk";
@ -453,10 +469,17 @@
clk-gate = <0xa0 9>;
};
nand_ecc_clk: nand_ecc_clk {
#clock-cells = <0>;
compatible = "altr,socfpga-gate-clk";
clocks = <&nand_x_clk>;
clk-gate = <0xa0 9>;
};
nand_clk: nand_clk {
#clock-cells = <0>;
compatible = "altr,socfpga-gate-clk";
clocks = <&f2s_periph_ref_clk>, <&main_nand_sdmmc_clk>, <&per_nand_mmc_clk>;
clocks = <&nand_x_clk>;
clk-gate = <0xa0 10>;
fixed-divider = <4>;
};
@ -467,8 +490,58 @@
clocks = <&f2s_periph_ref_clk>, <&main_qspi_clk>, <&per_qspi_clk>;
clk-gate = <0xa0 11>;
};
ddr_dqs_clk_gate: ddr_dqs_clk_gate {
#clock-cells = <0>;
compatible = "altr,socfpga-gate-clk";
clocks = <&ddr_dqs_clk>;
clk-gate = <0xd8 0>;
};
ddr_2x_dqs_clk_gate: ddr_2x_dqs_clk_gate {
#clock-cells = <0>;
compatible = "altr,socfpga-gate-clk";
clocks = <&ddr_2x_dqs_clk>;
clk-gate = <0xd8 1>;
};
ddr_dq_clk_gate: ddr_dq_clk_gate {
#clock-cells = <0>;
compatible = "altr,socfpga-gate-clk";
clocks = <&ddr_dq_clk>;
clk-gate = <0xd8 2>;
};
h2f_user2_clk: h2f_user2_clk {
#clock-cells = <0>;
compatible = "altr,socfpga-gate-clk";
clocks = <&h2f_usr2_clk>;
clk-gate = <0xd8 3>;
};
};
};
};
fpga_bridge0: fpga_bridge@ff400000 {
compatible = "altr,socfpga-lwhps2fpga-bridge";
reg = <0xff400000 0x100000>;
resets = <&rst LWHPS2FPGA_RESET>;
clocks = <&l4_main_clk>;
};
fpga_bridge1: fpga_bridge@ff500000 {
compatible = "altr,socfpga-hps2fpga-bridge";
reg = <0xff500000 0x10000>;
resets = <&rst HPS2FPGA_RESET>;
clocks = <&l4_main_clk>;
};
fpgamgr0: fpgamgr@ff706000 {
compatible = "altr,socfpga-fpga-mgr";
reg = <0xff706000 0x1000
0xffb90000 0x4>;
interrupts = <0 175 4>;
};
gmac0: ethernet@ff700000 {
compatible = "altr,socfpga-stmmac", "snps,dwmac-3.70a", "snps,dwmac";
@ -477,12 +550,14 @@
interrupts = <0 115 4>;
interrupt-names = "macirq";
mac-address = [00 00 00 00 00 00];/* Filled in by U-Boot */
clocks = <&emac0_clk>;
clocks = <&emac_0_clk>;
clock-names = "stmmaceth";
resets = <&rst EMAC0_RESET>;
reset-names = "stmmaceth";
snps,multicast-filter-bins = <256>;
snps,perfect-filter-entries = <128>;
tx-fifo-depth = <4096>;
rx-fifo-depth = <4096>;
status = "disabled";
};
@ -493,60 +568,14 @@
interrupts = <0 120 4>;
interrupt-names = "macirq";
mac-address = [00 00 00 00 00 00];/* Filled in by U-Boot */
clocks = <&emac1_clk>;
clocks = <&emac_1_clk>;
clock-names = "stmmaceth";
resets = <&rst EMAC1_RESET>;
reset-names = "stmmaceth";
snps,multicast-filter-bins = <256>;
snps,perfect-filter-entries = <128>;
status = "disabled";
};
i2c0: i2c@ffc04000 {
#address-cells = <1>;
#size-cells = <0>;
compatible = "snps,designware-i2c";
reg = <0xffc04000 0x1000>;
clocks = <&l4_sp_clk>;
resets = <&rst I2C0_RESET>;
reset-names = "i2c";
interrupts = <0 158 0x4>;
status = "disabled";
};
i2c1: i2c@ffc05000 {
#address-cells = <1>;
#size-cells = <0>;
compatible = "snps,designware-i2c";
reg = <0xffc05000 0x1000>;
clocks = <&l4_sp_clk>;
resets = <&rst I2C1_RESET>;
reset-names = "i2c";
interrupts = <0 159 0x4>;
status = "disabled";
};
i2c2: i2c@ffc06000 {
#address-cells = <1>;
#size-cells = <0>;
compatible = "snps,designware-i2c";
reg = <0xffc06000 0x1000>;
clocks = <&l4_sp_clk>;
resets = <&rst I2C2_RESET>;
reset-names = "i2c";
interrupts = <0 160 0x4>;
status = "disabled";
};
i2c3: i2c@ffc07000 {
#address-cells = <1>;
#size-cells = <0>;
compatible = "snps,designware-i2c";
reg = <0xffc07000 0x1000>;
clocks = <&l4_sp_clk>;
resets = <&rst I2C3_RESET>;
reset-names = "i2c";
interrupts = <0 161 0x4>;
tx-fifo-depth = <4096>;
rx-fifo-depth = <4096>;
status = "disabled";
};
@ -555,12 +584,11 @@
#size-cells = <0>;
compatible = "snps,dw-apb-gpio";
reg = <0xff708000 0x1000>;
clocks = <&per_base_clk>;
clocks = <&l4_mp_clk>;
status = "disabled";
porta: gpio-controller@0 {
compatible = "snps,dw-apb-gpio-port";
bank-name = "porta";
gpio-controller;
#gpio-cells = <2>;
snps,nr-gpios = <29>;
@ -576,12 +604,11 @@
#size-cells = <0>;
compatible = "snps,dw-apb-gpio";
reg = <0xff709000 0x1000>;
clocks = <&per_base_clk>;
clocks = <&l4_mp_clk>;
status = "disabled";
portb: gpio-controller@0 {
compatible = "snps,dw-apb-gpio-port";
bank-name = "portb";
gpio-controller;
#gpio-cells = <2>;
snps,nr-gpios = <29>;
@ -597,12 +624,11 @@
#size-cells = <0>;
compatible = "snps,dw-apb-gpio";
reg = <0xff70a000 0x1000>;
clocks = <&per_base_clk>;
clocks = <&l4_mp_clk>;
status = "disabled";
portc: gpio-controller@0 {
compatible = "snps,dw-apb-gpio-port";
bank-name = "portc";
gpio-controller;
#gpio-cells = <2>;
snps,nr-gpios = <27>;
@ -613,15 +639,68 @@
};
};
sdr: sdr@ffc25000 {
compatible = "syscon";
reg = <0xffc25000 0x1000>;
i2c0: i2c@ffc04000 {
#address-cells = <1>;
#size-cells = <0>;
compatible = "snps,designware-i2c";
reg = <0xffc04000 0x1000>;
resets = <&rst I2C0_RESET>;
clocks = <&l4_sp_clk>;
interrupts = <0 158 0x4>;
status = "disabled";
};
sdramedac {
compatible = "altr,sdram-edac";
altr,sdr-syscon = <&sdr>;
interrupts = <0 39 4>;
i2c1: i2c@ffc05000 {
#address-cells = <1>;
#size-cells = <0>;
compatible = "snps,designware-i2c";
reg = <0xffc05000 0x1000>;
resets = <&rst I2C1_RESET>;
clocks = <&l4_sp_clk>;
interrupts = <0 159 0x4>;
status = "disabled";
};
i2c2: i2c@ffc06000 {
#address-cells = <1>;
#size-cells = <0>;
compatible = "snps,designware-i2c";
reg = <0xffc06000 0x1000>;
resets = <&rst I2C2_RESET>;
clocks = <&l4_sp_clk>;
interrupts = <0 160 0x4>;
status = "disabled";
};
i2c3: i2c@ffc07000 {
#address-cells = <1>;
#size-cells = <0>;
compatible = "snps,designware-i2c";
reg = <0xffc07000 0x1000>;
resets = <&rst I2C3_RESET>;
clocks = <&l4_sp_clk>;
interrupts = <0 161 0x4>;
status = "disabled";
};
eccmgr: eccmgr {
compatible = "altr,socfpga-ecc-manager";
#address-cells = <1>;
#size-cells = <1>;
ranges;
l2-ecc@ffd08140 {
compatible = "altr,socfpga-l2-ecc";
reg = <0xffd08140 0x4>;
interrupts = <0 36 1>, <0 37 1>;
};
ocram-ecc@ffd08144 {
compatible = "altr,socfpga-ocram-ecc";
reg = <0xffd08144 0x4>;
iram = <&ocram>;
interrupts = <0 178 1>, <0 179 1>;
};
};
L2: l2-cache@fffef000 {
@ -632,36 +711,89 @@
cache-level = <2>;
arm,tag-latency = <1 1 1>;
arm,data-latency = <2 1 1>;
prefetch-data = <1>;
prefetch-instr = <1>;
arm,shared-override;
arm,double-linefill = <1>;
arm,double-linefill-incr = <0>;
arm,double-linefill-wrap = <1>;
arm,prefetch-drop = <0>;
arm,prefetch-offset = <7>;
};
mmc0: dwmmc0@ff704000 {
l3regs@0xff800000 {
compatible = "altr,l3regs", "syscon";
reg = <0xff800000 0x1000>;
};
mmc: dwmmc0@ff704000 {
compatible = "altr,socfpga-dw-mshc";
reg = <0xff704000 0x1000>;
interrupts = <0 139 4>;
fifo-depth = <0x400>;
#address-cells = <1>;
#size-cells = <0>;
clocks = <&l4_mp_clk>, <&sdmmc_clk>;
clocks = <&l4_mp_clk>, <&sdmmc_clk_divided>;
clock-names = "biu", "ciu";
status = "disabled";
};
nand0: nand@ff900000 {
#address-cells = <0x1>;
#size-cells = <0x1>;
compatible = "altr,socfpga-denali-nand";
reg = <0xff900000 0x100000>,
<0xffb80000 0x10000>;
reg-names = "nand_data", "denali_reg";
interrupts = <0x0 0x90 0x4>;
dma-mask = <0xffffffff>;
clocks = <&nand_clk>, <&nand_x_clk>, <&nand_ecc_clk>;
clock-names = "nand", "nand_x", "ecc";
status = "disabled";
};
ocram: sram@ffff0000 {
compatible = "mmio-sram";
reg = <0xffff0000 0x10000>;
};
qspi: spi@ff705000 {
compatible = "cadence,qspi";
#address-cells = <1>;
compatible = "cdns,qspi-nor";
#address-cells = <1>;
#size-cells = <0>;
reg = <0xff705000 0x1000>,
<0xffa00000 0x1000>;
<0xffa00000 0x1000>;
interrupts = <0 151 4>;
clocks = <&qspi_clk>;
ext-decoder = <0>; /* external decoder */
num-cs = <4>;
cdns,fifo-depth = <128>;
cdns,fifo-width = <4>;
cdns,trigger-address = <0x00000000>;
bus-num = <2>;
clocks = <&qspi_clk>;
status = "disabled";
};
rst: rstmgr@ffd05000 {
#reset-cells = <1>;
compatible = "altr,rst-mgr";
reg = <0xffd05000 0x1000>;
altr,modrst-offset = <0x10>;
};
scu: snoop-control-unit@fffec000 {
compatible = "arm,cortex-a9-scu";
reg = <0xfffec000 0x100>;
};
sdr: sdr@ffc25000 {
compatible = "altr,sdr-ctl", "syscon";
reg = <0xffc25000 0x1000>;
};
sdramedac {
compatible = "altr,sdram-edac";
altr,sdr-syscon = <&sdr>;
interrupts = <0 39 4>;
};
spi0: spi@fff00000 {
compatible = "snps,dw-apb-ssi";
#address-cells = <1>;
@ -669,10 +801,7 @@
reg = <0xfff00000 0x1000>;
interrupts = <0 154 4>;
num-cs = <4>;
bus-num = <0>;
tx-dma-channel = <&pdma 16>;
rx-dma-channel = <&pdma 17>;
clocks = <&per_base_clk>;
clocks = <&spi_m_clk>;
status = "disabled";
};
@ -681,20 +810,22 @@
#address-cells = <1>;
#size-cells = <0>;
reg = <0xfff01000 0x1000>;
interrupts = <0 156 4>;
interrupts = <0 155 4>;
num-cs = <4>;
bus-num = <1>;
tx-dma-channel = <&pdma 20>;
rx-dma-channel = <&pdma 21>;
clocks = <&per_base_clk>;
clocks = <&spi_m_clk>;
status = "disabled";
};
sysmgr: sysmgr@ffd08000 {
compatible = "altr,sys-mgr", "syscon";
reg = <0xffd08000 0x4000>;
};
/* Local timer */
timer@fffec600 {
compatible = "arm,cortex-a9-twd-timer";
reg = <0xfffec600 0x100>;
interrupts = <1 13 0xf04>;
interrupts = <1 13 0xf01>;
clocks = <&mpu_periph_clk>;
};
@ -704,6 +835,8 @@
reg = <0xffc08000 0x1000>;
clocks = <&l4_sp_clk>;
clock-names = "timer";
resets = <&rst SPTIMER0_RESET>;
reset-names = "timer";
};
timer1: timer1@ffc09000 {
@ -712,6 +845,8 @@
reg = <0xffc09000 0x1000>;
clocks = <&l4_sp_clk>;
clock-names = "timer";
resets = <&rst SPTIMER1_RESET>;
reset-names = "timer";
};
timer2: timer2@ffd00000 {
@ -720,6 +855,8 @@
reg = <0xffd00000 0x1000>;
clocks = <&osc1>;
clock-names = "timer";
resets = <&rst OSC1TIMER0_RESET>;
reset-names = "timer";
};
timer3: timer3@ffd01000 {
@ -728,6 +865,8 @@
reg = <0xffd01000 0x1000>;
clocks = <&osc1>;
clock-names = "timer";
resets = <&rst OSC1TIMER1_RESET>;
reset-names = "timer";
};
uart0: serial0@ffc02000 {
@ -737,7 +876,9 @@
reg-shift = <2>;
reg-io-width = <4>;
clocks = <&l4_sp_clk>;
clock-frequency = <100000000>;
dmas = <&pdma 28>,
<&pdma 29>;
dma-names = "tx", "rx";
};
uart1: serial1@ffc03000 {
@ -747,16 +888,12 @@
reg-shift = <2>;
reg-io-width = <4>;
clocks = <&l4_sp_clk>;
clock-frequency = <100000000>;
dmas = <&pdma 30>,
<&pdma 31>;
dma-names = "tx", "rx";
};
rst: rstmgr@ffd05000 {
#reset-cells = <1>;
compatible = "altr,rst-mgr";
reg = <0xffd05000 0x1000>;
};
usbphy0: usbphy@0 {
usbphy0: usbphy {
#phy-cells = <0>;
compatible = "usb-nop-xceiv";
status = "okay";
@ -768,6 +905,8 @@
interrupts = <0 125 4>;
clocks = <&usb_mp_clk>;
clock-names = "otg";
resets = <&rst USB0_RESET>;
reset-names = "dwc2";
phys = <&usbphy0>;
phy-names = "usb2-phy";
status = "disabled";
@ -779,6 +918,8 @@
interrupts = <0 128 4>;
clocks = <&usb_mp_clk>;
clock-names = "otg";
resets = <&rst USB1_RESET>;
reset-names = "dwc2";
phys = <&usbphy0>;
phy-names = "usb2-phy";
status = "disabled";
@ -799,10 +940,5 @@
clocks = <&osc1>;
status = "disabled";
};
sysmgr: sysmgr@ffd08000 {
compatible = "altr,sys-mgr", "syscon";
reg = <0xffd08000 0x4000>;
};
};
};

View file

@ -748,7 +748,7 @@
};
qspi: spi@ff809000 {
compatible = "cdns,qspi-nor", "cadence,qspi";
compatible = "cdns,qspi-nor";
#address-cells = <1>;
#size-cells = <0>;
reg = <0xff809000 0x100>,

View file

@ -1,6 +1,6 @@
// SPDX-License-Identifier: GPL-2.0+
// SPDX-License-Identifier: GPL-2.0
/*
* Copyright (C) 2013 Altera Corporation <www.altera.com>
* Copyright (C) 2013 Altera Corporation <www.altera.com>
*/
/dts-v1/;
@ -19,13 +19,10 @@
};
mmc0: dwmmc0@ff704000 {
num-slots = <1>;
broken-cd;
bus-width = <4>;
cap-mmc-highspeed;
cap-sd-highspeed;
drvsel = <3>;
smplsel = <0>;
};
sysmgr@ffd08000 {
@ -33,3 +30,7 @@
};
};
};
&watchdog0 {
status = "okay";
};

View file

@ -0,0 +1,56 @@
// SPDX-License-Identifier: GPL-2.0+
/*
* U-Boot additions
*
* Copyright (C) 2013 Altera Corporation <www.altera.com>
* Copyright (c) 2018 Simon Goldschmidt
*/
/{
aliases {
spi0 = "/soc/spi@ff705000";
udc0 = &usb1;
};
soc {
u-boot,dm-pre-reloc;
};
};
&watchdog0 {
status = "disabled";
};
&mmc {
u-boot,dm-pre-reloc;
};
&qspi {
u-boot,dm-pre-reloc;
};
&flash {
compatible = "n25q00", "spi-flash";
u-boot,dm-pre-reloc;
};
&uart0 {
clock-frequency = <100000000>;
u-boot,dm-pre-reloc;
};
&uart1 {
clock-frequency = <100000000>;
};
&porta {
bank-name = "porta";
};
&portb {
bank-name = "portb";
};
&portc {
bank-name = "portc";
};

View file

@ -1,6 +1,6 @@
// SPDX-License-Identifier: GPL-2.0+
/*
* Copyright (C) 2013 Altera Corporation <www.altera.com>
* Copyright (C) 2013 Altera Corporation <www.altera.com>
*/
#include "socfpga_arria5.dtsi"
@ -10,22 +10,44 @@
compatible = "altr,socfpga-arria5", "altr,socfpga";
chosen {
bootargs = "console=ttyS0,115200";
bootargs = "earlyprintk";
stdout-path = "serial0:115200n8";
};
memory {
memory@0 {
name = "memory";
device_type = "memory";
reg = <0x0 0x40000000>; /* 1GB */
};
aliases {
/* this allow the ethaddr uboot environment variable contents
* to be added to the gmac1 device tree blob.
*/
/* this allow the ethaddr uboot environmnet variable contents
* to be added to the gmac1 device tree blob.
*/
ethernet0 = &gmac1;
udc0 = &usb1;
};
leds {
compatible = "gpio-leds";
hps0 {
label = "hps_led0";
gpios = <&porta 0 1>;
};
hps1 {
label = "hps_led1";
gpios = <&portb 11 1>;
};
hps2 {
label = "hps_led2";
gpios = <&porta 17 1>;
};
hps3 {
label = "hps_led3";
gpios = <&porta 18 1>;
};
};
regulator_3_3v: 3-3-v-regulator {
@ -34,10 +56,6 @@
regulator-min-microvolt = <3300000>;
regulator-max-microvolt = <3300000>;
};
soc {
u-boot,dm-pre-reloc;
};
};
&gmac1 {
@ -54,8 +72,28 @@
rxc-skew-ps = <2000>;
};
&gpio0 {
status = "okay";
};
&gpio1 {
status = "okay";
};
&gpio2 {
status = "okay";
};
&i2c0 {
status = "okay";
clock-frequency = <100000>;
/*
* adjust the falling times to decrease the i2c frequency to 50Khz
* because the LCD module does not work at the standard 100Khz
*/
i2c-sda-falling-time-ns = <5000>;
i2c-scl-falling-time-ns = <5000>;
eeprom@51 {
compatible = "atmel,24c32";
@ -72,35 +110,42 @@
&mmc0 {
vmmc-supply = <&regulator_3_3v>;
vqmmc-supply = <&regulator_3_3v>;
bus-width = <4>;
u-boot,dm-pre-reloc;
};
&usb1 {
status = "okay";
};
&qspi {
status = "okay";
u-boot,dm-pre-reloc;
flash0: n25q00@0 {
u-boot,dm-pre-reloc;
flash: flash@0 {
#address-cells = <1>;
#size-cells = <1>;
compatible = "n25q00", "spi-flash";
reg = <0>; /* chip select */
spi-max-frequency = <50000000>;
compatible = "n25q256a";
reg = <0>;
spi-max-frequency = <100000000>;
m25p,fast-read;
page-size = <256>;
block-size = <16>; /* 2^16, 64KB */
cdns,page-size = <256>;
cdns,block-size = <16>;
cdns,read-delay = <4>;
cdns,tshsl-ns = <50>;
cdns,tsd2d-ns = <50>;
cdns,tchsh-ns = <4>;
cdns,tslch-ns = <4>;
partition@qspi-boot {
/* 8MB for raw data. */
label = "Flash 0 Raw Data";
reg = <0x0 0x800000>;
};
partition@qspi-rootfs {
/* 120MB for jffs2 data. */
label = "Flash 0 jffs2 Filesystem";
reg = <0x800000 0x7800000>;
};
};
};
&uart0 {
u-boot,dm-pre-reloc;
&usb1 {
status = "okay";
};

View file

@ -1,6 +1,6 @@
// SPDX-License-Identifier: GPL-2.0+
/*
* Copyright (C) 2012 Altera Corporation <www.altera.com>
* Copyright (C) 2012 Altera Corporation <www.altera.com>
*/
/dts-v1/;
@ -19,13 +19,10 @@
};
mmc0: dwmmc0@ff704000 {
num-slots = <1>;
broken-cd;
bus-width = <4>;
cap-mmc-highspeed;
cap-sd-highspeed;
drvsel = <3>;
smplsel = <0>;
};
sysmgr@ffd08000 {
@ -33,3 +30,7 @@
};
};
};
&watchdog0 {
status = "okay";
};

View file

@ -47,9 +47,20 @@
status = "okay";
};
&porta {
bank-name = "porta";
};
&portb {
bank-name = "portb";
};
&portc {
bank-name = "portc";
};
&mmc0 {
status = "okay";
bus-width = <4>;
u-boot,dm-pre-reloc;
};
@ -61,3 +72,7 @@
&uart0 {
u-boot,dm-pre-reloc;
};
&watchdog0 {
status = "disabled";
};

View file

@ -0,0 +1,46 @@
// SPDX-License-Identifier: GPL-2.0+
/*
* U-Boot additions
*
* Copyright Altera Corporation (C) 2015
* Copyright (c) 2018 Simon Goldschmidt
*/
/{
aliases {
udc0 = &usb1;
};
soc {
u-boot,dm-pre-reloc;
};
};
&watchdog0 {
status = "disabled";
};
&mmc {
u-boot,dm-pre-reloc;
};
&uart0 {
clock-frequency = <100000000>;
u-boot,dm-pre-reloc;
};
&uart1 {
clock-frequency = <100000000>;
};
&porta {
bank-name = "porta";
};
&portb {
bank-name = "portb";
};
&portc {
bank-name = "portc";
};

View file

@ -1,32 +1,43 @@
// SPDX-License-Identifier: GPL-2.0+
// SPDX-License-Identifier: GPL-2.0
/*
* Copyright Altera Corporation (C) 2015
* Copyright Altera Corporation (C) 2015. All rights reserved.
*/
#include "socfpga_cyclone5.dtsi"
/ {
model = "Terasic DE0-Nano(Atlas)";
compatible = "altr,socfpga-cyclone5", "altr,socfpga";
model = "Terasic DE-0(Atlas)";
compatible = "terasic,de0-atlas", "altr,socfpga-cyclone5", "altr,socfpga";
chosen {
bootargs = "console=ttyS0,115200";
bootargs = "earlyprintk";
stdout-path = "serial0:115200n8";
};
aliases {
ethernet0 = &gmac1;
udc0 = &usb1;
};
memory {
memory@0 {
name = "memory";
device_type = "memory";
reg = <0x0 0x40000000>; /* 1GB */
};
soc {
u-boot,dm-pre-reloc;
aliases {
ethernet0 = &gmac1;
};
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";
hps0 {
label = "hps_led0";
gpios = <&portb 24 0>;
linux,default-trigger = "heartbeat";
};
};
};
@ -34,14 +45,20 @@
status = "okay";
phy-mode = "rgmii";
rxd0-skew-ps = <420>;
rxd1-skew-ps = <420>;
rxd2-skew-ps = <420>;
rxd3-skew-ps = <420>;
txen-skew-ps = <0>;
txc-skew-ps = <1860>;
rxdv-skew-ps = <420>;
rxc-skew-ps = <1680>;
txd0-skew-ps = <0>; /* -420ps */
txd1-skew-ps = <0>; /* -420ps */
txd2-skew-ps = <0>; /* -420ps */
txd3-skew-ps = <0>; /* -420ps */
rxd0-skew-ps = <420>; /* 0ps */
rxd1-skew-ps = <420>; /* 0ps */
rxd2-skew-ps = <420>; /* 0ps */
rxd3-skew-ps = <420>; /* 0ps */
txen-skew-ps = <0>; /* -420ps */
txc-skew-ps = <1860>; /* 960ps */
rxdv-skew-ps = <420>; /* 0ps */
rxc-skew-ps = <1680>; /* 780ps */
max-frame-size = <3800>;
};
&gpio0 {
@ -58,8 +75,9 @@
&i2c0 {
status = "okay";
clock-frequency = <100000>;
dxl345: adxl345@0 {
adxl345: adxl345@53 {
compatible = "adi,adxl345";
reg = <0x53>;
@ -69,14 +87,15 @@
};
&mmc0 {
vmmc-supply = <&regulator_3_3v>;
vqmmc-supply = <&regulator_3_3v>;
status = "okay";
};
&uart0 {
status = "okay";
u-boot,dm-pre-reloc;
};
&usb1 {
status = "okay";
};
&uart0 {
u-boot,dm-pre-reloc;
};

View file

@ -58,6 +58,18 @@
status = "okay";
};
&porta {
bank-name = "porta";
};
&portb {
bank-name = "portb";
};
&portc {
bank-name = "portc";
};
&mmc0 {
status = "okay";
u-boot,dm-pre-reloc;
@ -70,3 +82,7 @@
&uart0 {
u-boot,dm-pre-reloc;
};
&watchdog0 {
status = "disabled";
};

View file

@ -56,6 +56,18 @@
status = "okay";
};
&porta {
bank-name = "porta";
};
&portb {
bank-name = "portb";
};
&portc {
bank-name = "portc";
};
&mmc0 {
status = "okay";
u-boot,dm-pre-reloc;
@ -68,3 +80,7 @@
&uart0 {
u-boot,dm-pre-reloc;
};
&watchdog0 {
status = "disabled";
};

View file

@ -55,6 +55,10 @@
status = "okay";
};
&porta {
bank-name = "porta";
};
&i2c0 {
status = "okay";
@ -107,3 +111,7 @@
&uart0 {
u-boot,dm-pre-reloc;
};
&watchdog0 {
status = "disabled";
};

View file

@ -0,0 +1,72 @@
// SPDX-License-Identifier: GPL-2.0+
/*
* U-Boot additions
*
* Copyright (C) 2012 Altera Corporation <www.altera.com>
* Copyright (c) 2018 Simon Goldschmidt
*/
/{
aliases {
spi0 = "/soc/spi@ff705000";
udc0 = &usb1;
};
soc {
u-boot,dm-pre-reloc;
};
};
&can0 {
status = "okay";
};
&watchdog0 {
status = "disabled";
};
&mmc {
u-boot,dm-pre-reloc;
};
&qspi {
u-boot,dm-pre-reloc;
};
&flash0 {
compatible = "n25q00", "spi-flash";
u-boot,dm-pre-reloc;
partition@qspi-boot {
/* 8MB for raw data. */
label = "Flash 0 Raw Data";
reg = <0x0 0x800000>;
};
partition@qspi-rootfs {
/* 120MB for jffs2 data. */
label = "Flash 0 jffs2 Filesystem";
reg = <0x800000 0x7800000>;
};
};
&uart0 {
clock-frequency = <100000000>;
u-boot,dm-pre-reloc;
};
&uart1 {
clock-frequency = <100000000>;
};
&porta {
bank-name = "porta";
};
&portb {
bank-name = "portb";
};
&portc {
bank-name = "portc";
};

View file

@ -1,31 +1,53 @@
// SPDX-License-Identifier: GPL-2.0+
/*
* Copyright (C) 2012 Altera Corporation <www.altera.com>
* Copyright (C) 2012 Altera Corporation <www.altera.com>
*/
#include "socfpga_cyclone5.dtsi"
/ {
model = "Altera SOCFPGA Cyclone V SoC Development Kit";
compatible = "altr,socfpga-cyclone5", "altr,socfpga";
compatible = "altr,socfpga-cyclone5-socdk", "altr,socfpga-cyclone5", "altr,socfpga";
chosen {
bootargs = "console=ttyS0,115200";
bootargs = "earlyprintk";
stdout-path = "serial0:115200n8";
};
memory {
memory@0 {
name = "memory";
device_type = "memory";
reg = <0x0 0x40000000>; /* 1GB */
};
aliases {
/* this allow the ethaddr uboot environment variable contents
/* this allow the ethaddr uboot environmnet variable contents
* to be added to the gmac1 device tree blob.
*/
ethernet0 = &gmac1;
udc0 = &usb1;
};
leds {
compatible = "gpio-leds";
hps0 {
label = "hps_led0";
gpios = <&portb 15 1>;
};
hps1 {
label = "hps_led1";
gpios = <&portb 14 1>;
};
hps2 {
label = "hps_led2";
gpios = <&portb 13 1>;
};
hps3 {
label = "hps_led3";
gpios = <&portb 12 1>;
};
};
regulator_3_3v: 3-3-v-regulator {
@ -34,10 +56,10 @@
regulator-min-microvolt = <3300000>;
regulator-max-microvolt = <3300000>;
};
};
soc {
u-boot,dm-pre-reloc;
};
&can0 {
status = "okay";
};
&gmac1 {
@ -68,6 +90,14 @@
&i2c0 {
status = "okay";
clock-frequency = <100000>;
/*
* adjust the falling times to decrease the i2c frequency to 50Khz
* because the LCD module does not work at the standard 100Khz
*/
i2c-sda-falling-time-ns = <5000>;
i2c-scl-falling-time-ns = <5000>;
eeprom@51 {
compatible = "atmel,24c32";
@ -82,39 +112,55 @@
};
&mmc0 {
status = "okay";
u-boot,dm-pre-reloc;
cd-gpios = <&portb 18 0>;
vmmc-supply = <&regulator_3_3v>;
vqmmc-supply = <&regulator_3_3v>;
status = "okay";
};
&qspi {
status = "okay";
u-boot,dm-pre-reloc;
flash0: n25q00@0 {
u-boot,dm-pre-reloc;
#address-cells = <1>;
#size-cells = <1>;
compatible = "n25q00", "spi-flash";
reg = <0>; /* chip select */
compatible = "n25q00";
reg = <0>; /* chip select */
spi-max-frequency = <100000000>;
m25p,fast-read;
page-size = <256>;
block-size = <16>; /* 2^16, 64KB */
cdns,page-size = <256>;
cdns,block-size = <16>;
cdns,read-delay = <4>;
cdns,tshsl-ns = <50>;
cdns,tsd2d-ns = <50>;
cdns,tchsh-ns = <4>;
cdns,tslch-ns = <4>;
partition@qspi-boot {
/* 8MB for raw data. */
label = "Flash 0 Raw Data";
reg = <0x0 0x800000>;
};
partition@qspi-rootfs {
/* 120MB for jffs2 data. */
label = "Flash 0 jffs2 Filesystem";
reg = <0x800000 0x7800000>;
};
};
};
&spi0 {
status = "okay";
spidev@0 {
compatible = "rohm,dh2228fv";
reg = <0>;
spi-max-frequency = <1000000>;
};
};
&usb1 {
status = "okay";
};
&uart0 {
u-boot,dm-pre-reloc;
};

View file

@ -0,0 +1,56 @@
// SPDX-License-Identifier: GPL-2.0+
/*
* U-Boot additions
*
* Copyright (C) 2013 Steffen Trumtrar <s.trumtrar@pengutronix.de>
* Copyright (c) 2018 Simon Goldschmidt
*/
/{
aliases {
spi0 = "/soc/spi@ff705000";
udc0 = &usb1;
};
soc {
u-boot,dm-pre-reloc;
};
};
&watchdog0 {
status = "disabled";
};
&mmc {
u-boot,dm-pre-reloc;
};
&qspi {
u-boot,dm-pre-reloc;
};
&flash {
compatible = "n25q00", "spi-flash";
u-boot,dm-pre-reloc;
};
&uart0 {
clock-frequency = <100000000>;
u-boot,dm-pre-reloc;
};
&uart1 {
clock-frequency = <100000000>;
};
&porta {
bank-name = "porta";
};
&portb {
bank-name = "portb";
};
&portc {
bank-name = "portc";
};

View file

@ -1,32 +1,121 @@
// SPDX-License-Identifier: GPL-2.0+
/*
* Copyright (C) 2014 Steffen Trumtrar <s.trumtrar@pengutronix.de>
* Copyright (C) 2013 Steffen Trumtrar <s.trumtrar@pengutronix.de>
*/
#include "socfpga_cyclone5.dtsi"
/ {
model = "Terasic SoCkit";
compatible = "altr,socfpga-cyclone5", "altr,socfpga";
compatible = "terasic,socfpga-cyclone5-sockit", "altr,socfpga-cyclone5", "altr,socfpga";
chosen {
bootargs = "console=ttyS0,115200";
bootargs = "earlyprintk";
stdout-path = "serial0:115200n8";
};
aliases {
ethernet0 = &gmac1;
udc0 = &usb1;
};
memory {
memory@0 {
name = "memory";
device_type = "memory";
reg = <0x0 0x40000000>; /* 1GB */
};
soc {
u-boot,dm-pre-reloc;
aliases {
/* this allow the ethaddr uboot environmnet variable contents
* to be added to the gmac1 device tree blob.
*/
ethernet0 = &gmac1;
};
leds {
compatible = "gpio-leds";
hps_led0 {
label = "hps:blue:led0";
gpios = <&portb 24 0>; /* HPS_GPIO53 */
linux,default-trigger = "heartbeat";
};
hps_led1 {
label = "hps:blue:led1";
gpios = <&portb 25 0>; /* HPS_GPIO54 */
linux,default-trigger = "heartbeat";
};
hps_led2 {
label = "hps:blue:led2";
gpios = <&portb 26 0>; /* HPS_GPIO55 */
linux,default-trigger = "heartbeat";
};
hps_led3 {
label = "hps:blue:led3";
gpios = <&portb 27 0>; /* HPS_GPIO56 */
linux,default-trigger = "heartbeat";
};
};
gpio-keys {
compatible = "gpio-keys";
hps_sw0 {
label = "hps_sw0";
gpios = <&portc 20 0>; /* HPS_GPI7 */
linux,input-type = <5>; /* EV_SW */
linux,code = <0x0>; /* SW_LID */
};
hps_sw1 {
label = "hps_sw1";
gpios = <&portc 19 0>; /* HPS_GPI6 */
linux,input-type = <5>; /* EV_SW */
linux,code = <0x5>; /* SW_DOCK */
};
hps_sw2 {
label = "hps_sw2";
gpios = <&portc 18 0>; /* HPS_GPI5 */
linux,input-type = <5>; /* EV_SW */
linux,code = <0xa>; /* SW_KEYPAD_SLIDE */
};
hps_sw3 {
label = "hps_sw3";
gpios = <&portc 17 0>; /* HPS_GPI4 */
linux,input-type = <5>; /* EV_SW */
linux,code = <0xc>; /* SW_ROTATE_LOCK */
};
hps_hkey0 {
label = "hps_hkey0";
gpios = <&portc 21 1>; /* HPS_GPI8 */
linux,code = <187>; /* KEY_F17 */
};
hps_hkey1 {
label = "hps_hkey1";
gpios = <&portc 22 1>; /* HPS_GPI9 */
linux,code = <188>; /* KEY_F18 */
};
hps_hkey2 {
label = "hps_hkey2";
gpios = <&portc 23 1>; /* HPS_GPI10 */
linux,code = <189>; /* KEY_F19 */
};
hps_hkey3 {
label = "hps_hkey3";
gpios = <&portc 24 1>; /* HPS_GPI11 */
linux,code = <190>; /* KEY_F20 */
};
};
regulator_3_3v: vcc3p3-regulator {
compatible = "regulator-fixed";
regulator-name = "VCC3P3";
regulator-min-microvolt = <3300000>;
regulator-max-microvolt = <3300000>;
};
};
@ -44,46 +133,50 @@
rxc-skew-ps = <2000>;
};
&gpio0 {
&gpio0 { /* GPIO 0..29 */
status = "okay";
};
&gpio1 {
&gpio1 { /* GPIO 30..57 */
status = "okay";
};
&gpio2 {
&gpio2 { /* GPIO 58..66 (HLGPI 0..13 at offset 13) */
status = "okay";
};
&i2c0 {
&i2c1 {
status = "okay";
rtc: rtc@68 {
compatible = "stm,m41t82";
reg = <0x68>;
accel1: accelerometer@53 {
compatible = "adi,adxl345";
reg = <0x53>;
interrupt-parent = <&portc>;
interrupts = <3 2>;
};
};
&mmc0 {
vmmc-supply = <&regulator_3_3v>;
vqmmc-supply = <&regulator_3_3v>;
status = "okay";
u-boot,dm-pre-reloc;
};
&qspi {
status = "okay";
u-boot,dm-pre-reloc;
flash0: n25q00@0 {
u-boot,dm-pre-reloc;
flash: flash@0 {
#address-cells = <1>;
#size-cells = <1>;
compatible = "n25q00", "spi-flash";
reg = <0>; /* chip select */
spi-max-frequency = <50000000>;
compatible = "n25q00";
reg = <0>;
spi-max-frequency = <100000000>;
m25p,fast-read;
page-size = <256>;
block-size = <16>; /* 2^16, 64KB */
cdns,page-size = <256>;
cdns,block-size = <16>;
cdns,read-delay = <4>;
cdns,tshsl-ns = <50>;
cdns,tsd2d-ns = <50>;
cdns,tchsh-ns = <4>;
@ -94,7 +187,3 @@
&usb1 {
status = "okay";
};
&uart0 {
u-boot,dm-pre-reloc;
};

View file

@ -0,0 +1,60 @@
// SPDX-License-Identifier: GPL-2.0+
/*
* U-Boot additions
*
* Copyright (C) 2014 Steffen Trumtrar <s.trumtrar@pengutronix.de>
* Copyright (c) 2018 Simon Goldschmidt
*/
/{
aliases {
spi0 = "/soc/spi@ff705000";
udc0 = &usb1;
};
soc {
u-boot,dm-pre-reloc;
};
};
&watchdog0 {
status = "disabled";
};
&mmc {
u-boot,dm-pre-reloc;
};
&qspi {
u-boot,dm-pre-reloc;
};
&flash {
compatible = "n25q256a", "spi-flash";
u-boot,dm-pre-reloc;
};
&uart0 {
clock-frequency = <100000000>;
u-boot,dm-pre-reloc;
};
&uart1 {
clock-frequency = <100000000>;
};
&usb1 {
status = "okay";
};
&porta {
bank-name = "porta";
};
&portb {
bank-name = "portb";
};
&portc {
bank-name = "portc";
};

View file

@ -1,6 +1,6 @@
// SPDX-License-Identifier: GPL-2.0+
/*
* Copyright (C) 2014 Steffen Trumtrar <s.trumtrar@pengutronix.de>
* Copyright (C) 2014 Steffen Trumtrar <s.trumtrar@pengutronix.de>
*/
#include "socfpga_cyclone5.dtsi"
@ -9,83 +9,88 @@
model = "EBV SOCrates";
compatible = "ebv,socrates", "altr,socfpga-cyclone5", "altr,socfpga";
aliases {
ethernet0 = &gmac1;
};
chosen {
bootargs = "console=ttyS0,115200";
bootargs = "earlyprintk";
stdout-path = "serial0:115200n8";
};
aliases {
/*
* This allows the ethaddr uboot environment variable
* contents to be added to the gmac1 device tree blob.
*/
ethernet0 = &gmac1;
udc0 = &usb1;
};
memory {
memory@0 {
name = "memory";
device_type = "memory";
reg = <0x0 0x40000000>; /* 1GB */
};
soc {
u-boot,dm-pre-reloc;
leds: gpio-leds {
};
};
&gmac1 {
status = "okay";
phy-mode = "rgmii";
status = "okay";
};
rxd0-skew-ps = <0>;
rxd1-skew-ps = <0>;
rxd2-skew-ps = <0>;
rxd3-skew-ps = <0>;
txen-skew-ps = <0>;
txc-skew-ps = <2600>;
rxdv-skew-ps = <0>;
rxc-skew-ps = <2000>;
&gpio0 {
status = "okay";
};
&gpio1 {
status = "okay";
};
&i2c0 {
status = "okay";
rtc: rtc@68 {
compatible = "stm,m41t82";
compatible = "st,m41t82";
reg = <0x68>;
};
};
&mmc0 {
&leds {
compatible = "gpio-leds";
led0 {
label = "led:green:heartbeat";
gpios = <&porta 28 1>;
linux,default-trigger = "heartbeat";
};
led1 {
label = "led:green:D7";
gpios = <&portb 19 1>;
};
led2 {
label = "led:green:D8";
gpios = <&portb 25 1>;
};
};
&mmc {
status = "okay";
u-boot,dm-pre-reloc;
};
&qspi {
status = "okay";
u-boot,dm-pre-reloc;
flash0: n25q00@0 {
flash: flash@0 {
#address-cells = <1>;
#size-cells = <1>;
compatible = "n25q00", "spi-flash";
reg = <0>; /* chip select */
spi-max-frequency = <50000000>;
compatible = "n25q256a";
reg = <0>;
spi-max-frequency = <100000000>;
m25p,fast-read;
page-size = <256>;
block-size = <16>; /* 2^16, 64KB */
cdns,read-delay = <4>;
cdns,tshsl-ns = <50>;
cdns,tsd2d-ns = <50>;
cdns,tchsh-ns = <4>;
cdns,tslch-ns = <4>;
status = "okay";
u-boot,dm-pre-reloc;
};
};
&usb1 {
disable-over-current;
status = "okay";
};
&uart0 {
u-boot,dm-pre-reloc;
};

View file

@ -50,6 +50,18 @@
status = "okay";
};
&porta {
bank-name = "porta";
};
&portb {
bank-name = "portb";
};
&portc {
bank-name = "portc";
};
&i2c0 {
status = "okay";
speed-mode = <0>;

View file

@ -0,0 +1,60 @@
// SPDX-License-Identifier: (GPL-2.0+ OR X11)
/*
* U-Boot additions
*
* Copyright (C) 2015 Marek Vasut <marex@denx.de>
* Copyright (c) 2018 Simon Goldschmidt
*/
/{
aliases {
spi0 = "/soc/spi@ff705000";
udc0 = &usb0;
};
soc {
u-boot,dm-pre-reloc;
};
};
&watchdog0 {
status = "disabled";
};
&mmc {
u-boot,dm-pre-reloc;
};
&qspi {
u-boot,dm-pre-reloc;
n25q128@0 {
compatible = "n25q128", "spi-flash";
u-boot,dm-pre-reloc;
};
n25q00@1 {
compatible = "n25q00", "spi-flash";
u-boot,dm-pre-reloc;
};
};
&uart0 {
clock-frequency = <100000000>;
u-boot,dm-pre-reloc;
};
&uart1 {
clock-frequency = <100000000>;
};
&porta {
bank-name = "porta";
};
&portb {
bank-name = "portb";
};
&portc {
bank-name = "portc";
};

View file

@ -1,100 +1,238 @@
// SPDX-License-Identifier: GPL-2.0+
// SPDX-License-Identifier: (GPL-2.0+ OR X11)
/*
* Copyright (C) 2015 Marek Vasut <marex@denx.de>
*/
#include "socfpga_cyclone5.dtsi"
#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/input/input.h>
/ {
model = "samtec VIN|ING FPGA";
compatible = "altr,socfpga-cyclone5", "altr,socfpga";
compatible = "samtec,vining", "altr,socfpga-cyclone5", "altr,socfpga";
chosen {
bootargs = "console=ttyS0,115200";
bootargs = "earlyprintk";
stdout-path = "serial0:115200n8";
};
aliases {
ethernet0 = &gmac1;
udc0 = &usb0;
};
memory {
memory@0 {
name = "memory";
device_type = "memory";
reg = <0x0 0x40000000>; /* 1GB */
};
soc {
u-boot,dm-pre-reloc;
aliases {
/*
* This allow the ethaddr uboot environment variable contents
* to be added to the gmac1 device tree blob.
*/
ethernet0 = &gmac1;
ethernet1 = &gmac0;
};
gpio-keys {
compatible = "gpio-keys";
hps_temp0 {
label = "BTN_0"; /* TEMP_OS */
gpios = <&portc 18 GPIO_ACTIVE_LOW>; /* HPS_GPIO60 */
linux,code = <BTN_0>;
};
hps_hkey0 {
label = "BTN_1"; /* DIS_PWR */
gpios = <&portc 19 GPIO_ACTIVE_LOW>; /* HPS_GPIO61 */
linux,code = <BTN_1>;
};
hps_hkey1 {
label = "hps_hkey1"; /* POWER_DOWN */
gpios = <&portc 20 GPIO_ACTIVE_LOW>; /* HPS_GPIO62 */
linux,code = <KEY_POWER>;
};
};
regulator-usb-nrst {
compatible = "regulator-fixed";
regulator-name = "usb_nrst";
regulator-min-microvolt = <5000000>;
regulator-max-microvolt = <5000000>;
gpio = <&portb 5 GPIO_ACTIVE_HIGH>;
startup-delay-us = <70000>;
enable-active-high;
regulator-always-on;
};
};
&gmac1 {
status = "okay";
phy-mode = "rgmii";
phy-handle = <&phy1>;
rxd0-skew-ps = <0>;
rxd1-skew-ps = <0>;
rxd2-skew-ps = <0>;
rxd3-skew-ps = <0>;
txen-skew-ps = <0>;
txc-skew-ps = <2600>;
rxdv-skew-ps = <0>;
rxc-skew-ps = <2000>;
snps,reset-gpio = <&porta 0 GPIO_ACTIVE_LOW>;
snps,reset-active-low;
snps,reset-delays-us = <10000 10000 10000>;
mdio0 {
#address-cells = <1>;
#size-cells = <0>;
compatible = "snps,dwmac-mdio";
phy1: ethernet-phy@1 {
reg = <1>;
rxd0-skew-ps = <0>;
rxd1-skew-ps = <0>;
rxd2-skew-ps = <0>;
rxd3-skew-ps = <0>;
txen-skew-ps = <0>;
txc-skew-ps = <2600>;
rxdv-skew-ps = <0>;
rxc-skew-ps = <2000>;
};
};
};
&gpio0 {
&gpio0 { /* GPIO 0..29 */
status = "okay";
};
&gpio1 {
&gpio1 { /* GPIO 30..57 */
status = "okay";
};
&gpio2 {
&gpio2 { /* GPIO 58..66 (HLGPI 0..13 at offset 13) */
status = "okay";
};
&i2c0 {
status = "okay";
rtc: rtc@68 {
compatible = "stm,m41t82";
reg = <0x68>;
gpio: pca9557@1f {
compatible = "nxp,pca9557";
reg = <0x1f>;
gpio-controller;
#gpio-cells = <2>;
};
temp: lm75@48 {
compatible = "lm75";
reg = <0x48>;
};
at24@50 {
compatible = "atmel,24c01";
pagesize = <8>;
reg = <0x50>;
};
i2cswitch@70 {
compatible = "nxp,pca9548";
#address-cells = <1>;
#size-cells = <0>;
reg = <0x70>;
i2c@0 {
#address-cells = <1>;
#size-cells = <0>;
reg = <0>;
};
i2c@1 {
#address-cells = <1>;
#size-cells = <0>;
reg = <1>;
};
i2c@2 {
#address-cells = <1>;
#size-cells = <0>;
reg = <2>;
};
i2c@3 {
#address-cells = <1>;
#size-cells = <0>;
reg = <3>;
};
i2c@4 {
#address-cells = <1>;
#size-cells = <0>;
reg = <4>;
};
i2c@5 {
#address-cells = <1>;
#size-cells = <0>;
reg = <5>;
};
i2c@6 { /* Backplane EEPROM */
#address-cells = <1>;
#size-cells = <0>;
reg = <6>;
eeprom@51 {
compatible = "atmel,24c01";
pagesize = <8>;
reg = <0x51>;
};
};
i2c@7 { /* Power board EEPROM */
#address-cells = <1>;
#size-cells = <0>;
reg = <7>;
eeprom@51 {
compatible = "atmel,24c01";
pagesize = <8>;
reg = <0x51>;
};
};
};
};
&i2c1 {
status = "okay";
clock-frequency = <100000>;
at24@50 {
compatible = "atmel,24c02";
pagesize = <8>;
reg = <0x50>;
};
};
&qspi {
status = "okay";
u-boot,dm-pre-reloc;
flash0: n25q128@0 {
u-boot,dm-pre-reloc;
n25q128@0 {
#address-cells = <1>;
#size-cells = <1>;
compatible = "n25q128", "spi-flash";
reg = <0>; /* chip select */
spi-max-frequency = <50000000>;
compatible = "n25q128";
reg = <0>; /* chip select */
spi-max-frequency = <100000000>;
m25p,fast-read;
page-size = <256>;
block-size = <16>; /* 2^16, 64KB */
cdns,page-size = <256>;
cdns,block-size = <16>;
cdns,read-delay = <4>;
cdns,tshsl-ns = <50>;
cdns,tsd2d-ns = <50>;
cdns,tchsh-ns = <4>;
cdns,tslch-ns = <4>;
};
flash1: n25q00@1 {
u-boot,dm-pre-reloc;
n25q00@1 {
#address-cells = <1>;
#size-cells = <1>;
compatible = "n25q00", "spi-flash";
reg = <1>; /* chip select */
spi-max-frequency = <50000000>;
compatible = "n25q00";
reg = <1>; /* chip select */
spi-max-frequency = <100000000>;
m25p,fast-read;
page-size = <256>;
block-size = <16>; /* 2^16, 64KB */
cdns,page-size = <256>;
cdns,block-size = <16>;
cdns,read-delay = <4>;
cdns,tshsl-ns = <50>;
cdns,tsd2d-ns = <50>;
cdns,tchsh-ns = <4>;
@ -103,13 +241,11 @@
};
&usb0 {
dr_mode = "host";
status = "okay";
};
&usb1 {
dr_mode = "peripheral";
status = "okay";
};
&uart0 {
u-boot,dm-pre-reloc;
};

View file

@ -26,7 +26,7 @@
};
qspi: spi@80203000 {
compatible = "cadence,qspi";
compatible = "cdns,qspi-nor";
#address-cells = <1>;
#size-cells = <0>;
reg = <0x80203000 0x100>,

View file

@ -6,6 +6,7 @@
#ifndef _SOCFPGA_BASE_ADDRS_H_
#define _SOCFPGA_BASE_ADDRS_H_
#define SOCFPGA_FPGA_SLAVES_ADDRESS 0xc0000000
#define SOCFPGA_STM_ADDRESS 0xfc000000
#define SOCFPGA_DAP_ADDRESS 0xff000000
#define SOCFPGA_EMAC0_ADDRESS 0xff700000

View file

@ -6,6 +6,8 @@
#ifndef _MISC_H_
#define _MISC_H_
#include <asm/sections.h>
void dwmac_deassert_reset(const unsigned int of_reset_id, const u32 phymode);
struct bsel {
@ -23,6 +25,13 @@ static inline void socfpga_fpga_add(void) {}
#ifdef CONFIG_TARGET_SOCFPGA_GEN5
void socfpga_sdram_remap_zero(void);
static inline bool socfpga_is_booting_from_fpga(void)
{
if ((__image_copy_start >= (char *)SOCFPGA_FPGA_SLAVES_ADDRESS) &&
(__image_copy_start < (char *)SOCFPGA_STM_ADDRESS))
return true;
return false;
}
#endif
#ifdef CONFIG_TARGET_SOCFPGA_ARRIA10

View file

@ -177,6 +177,8 @@ static void socfpga_nic301_slave_ns(void)
void socfpga_sdram_remap_zero(void)
{
u32 remap;
socfpga_nic301_slave_ns();
/*
@ -187,7 +189,12 @@ void socfpga_sdram_remap_zero(void)
setbits_le32(&scu_regs->sacr, 0xfff);
/* Configure the L2 controller to make SDRAM start at 0 */
writel(0x1, &nic301_regs->remap); /* remap.mpuzero */
remap = 0x1; /* remap.mpuzero */
/* Keep fpga bridge enabled when running from FPGA onchip RAM */
if (socfpga_is_booting_from_fpga())
remap |= 0x8; /* remap.hps2fpga */
writel(remap, &nic301_regs->remap);
writel(0x1, &pl310->pl310_addr_filter_start);
}

View file

@ -92,8 +92,11 @@ void board_init_f(ulong dummy)
/* Put everything into reset but L4WD0. */
socfpga_per_reset_all();
/* Put FPGA bridges into reset too. */
socfpga_bridges_reset(1);
if (!socfpga_is_booting_from_fpga()) {
/* Put FPGA bridges into reset too. */
socfpga_bridges_reset(1);
}
socfpga_per_reset(SOCFPGA_RESET(SDR), 0);
socfpga_per_reset(SOCFPGA_RESET(UART0), 0);
@ -163,5 +166,6 @@ void board_init_f(ulong dummy)
hang();
}
socfpga_bridges_reset(1);
if (!socfpga_is_booting_from_fpga())
socfpga_bridges_reset(1);
}

View file

@ -251,7 +251,7 @@ static const struct socfpga_sdram_rw_mgr_config rw_mgr_config = {
RW_MGR_MEM_VIRTUAL_GROUPS_PER_WRITE_DQS,
};
struct socfpga_sdram_io_config io_config = {
static const struct socfpga_sdram_io_config io_config = {
.delay_per_dchain_tap = IO_DELAY_PER_DCHAIN_TAP,
.delay_per_dqs_en_dchain_tap = IO_DELAY_PER_DQS_EN_DCHAIN_TAP,
.delay_per_opa_tap = IO_DELAY_PER_OPA_TAP,
@ -269,7 +269,7 @@ struct socfpga_sdram_io_config io_config = {
.shift_dqs_en_when_shift_dqs = IO_SHIFT_DQS_EN_WHEN_SHIFT_DQS,
};
struct socfpga_sdram_misc_config misc_config = {
static const struct socfpga_sdram_misc_config misc_config = {
.afi_rate_ratio = AFI_RATE_RATIO,
.calib_lfifo_offset = CALIB_LFIFO_OFFSET,
.calib_vfifo_offset = CALIB_VFIFO_OFFSET,

View file

@ -2,7 +2,7 @@ Cadence QSPI controller device tree bindings
--------------------------------------------
Required properties:
- compatible : should be "cadence,qspi".
- compatible : should be "cdns,qspi-nor"
- reg : 1.Physical base address and size of SPI registers map.
2. Physical base address & size of NOR Flash.
- clocks : Clock phandles (see clock bindings for details).

View file

@ -180,6 +180,13 @@ static int gpio_dwapb_bind(struct udevice *dev)
plat->pins = fdtdec_get_int(blob, node, "snps,nr-gpios", 0);
plat->name = fdt_stringlist_get(blob, node, "bank-name", 0,
NULL);
if (!plat->name) {
/*
* Fall back to node name. This means accessing pins
* via bank name won't work.
*/
plat->name = fdt_get_name(blob, node, NULL);
}
ret = device_bind(dev, dev->driver, plat->name,
plat, -1, &subdev);

View file

@ -329,7 +329,7 @@ static const struct dm_spi_ops cadence_spi_ops = {
};
static const struct udevice_id cadence_spi_ids[] = {
{ .compatible = "cadence,qspi" },
{ .compatible = "cdns,qspi-nor" },
{ }
};