forked from Minki/linux
a461a3ecfc
The Nomadik has sporadic crashes because of these latencies, setting them to max makes the platform work nicely, so use this values for now. These latencies were set to 2 since the Nomadik platform was merged, but I suspect they never took effect until the right size and associativity for the cache was specified in the device tree and that is why the crash comes now. Cc: stable@vger.kernel.org Signed-off-by: Linus Walleij <linus.walleij@linaro.org> Signed-off-by: Olof Johansson <olof@lixom.net>
815 lines
18 KiB
Plaintext
815 lines
18 KiB
Plaintext
/*
|
|
* Device Tree for the ST-Ericsson Nomadik 8815 STn8815 SoC
|
|
*/
|
|
|
|
#include <dt-bindings/gpio/gpio.h>
|
|
#include "skeleton.dtsi"
|
|
|
|
/ {
|
|
#address-cells = <1>;
|
|
#size-cells = <1>;
|
|
|
|
memory {
|
|
reg = <0x00000000 0x04000000>,
|
|
<0x08000000 0x04000000>;
|
|
};
|
|
|
|
L2: l2-cache {
|
|
compatible = "arm,l210-cache";
|
|
reg = <0x10210000 0x1000>;
|
|
interrupt-parent = <&vica>;
|
|
interrupts = <30>;
|
|
cache-unified;
|
|
cache-level = <2>;
|
|
cache-size = <131072>;
|
|
cache-sets = <512>;
|
|
cache-line-size = <32>;
|
|
/* At full speed latency must be >=2 */
|
|
arm,tag-latency = <8>;
|
|
arm,data-latency = <8 8>;
|
|
arm,dirty-latency = <8>;
|
|
};
|
|
|
|
mtu0: mtu@101e2000 {
|
|
/* Nomadik system timer */
|
|
compatible = "st,nomadik-mtu";
|
|
reg = <0x101e2000 0x1000>;
|
|
interrupt-parent = <&vica>;
|
|
interrupts = <4>;
|
|
clocks = <&timclk>, <&pclk>;
|
|
clock-names = "timclk", "apb_pclk";
|
|
};
|
|
|
|
mtu1: mtu@101e3000 {
|
|
/* Secondary timer */
|
|
reg = <0x101e3000 0x1000>;
|
|
interrupt-parent = <&vica>;
|
|
interrupts = <5>;
|
|
clocks = <&timclk>, <&pclk>;
|
|
clock-names = "timclk", "apb_pclk";
|
|
};
|
|
|
|
gpio0: gpio@101e4000 {
|
|
compatible = "st,nomadik-gpio";
|
|
reg = <0x101e4000 0x80>;
|
|
interrupt-parent = <&vica>;
|
|
interrupts = <6>;
|
|
interrupt-controller;
|
|
#interrupt-cells = <2>;
|
|
gpio-controller;
|
|
#gpio-cells = <2>;
|
|
gpio-bank = <0>;
|
|
gpio-ranges = <&pinctrl 0 0 32>;
|
|
clocks = <&pclk>;
|
|
};
|
|
|
|
gpio1: gpio@101e5000 {
|
|
compatible = "st,nomadik-gpio";
|
|
reg = <0x101e5000 0x80>;
|
|
interrupt-parent = <&vica>;
|
|
interrupts = <7>;
|
|
interrupt-controller;
|
|
#interrupt-cells = <2>;
|
|
gpio-controller;
|
|
#gpio-cells = <2>;
|
|
gpio-bank = <1>;
|
|
gpio-ranges = <&pinctrl 0 32 32>;
|
|
clocks = <&pclk>;
|
|
};
|
|
|
|
gpio2: gpio@101e6000 {
|
|
compatible = "st,nomadik-gpio";
|
|
reg = <0x101e6000 0x80>;
|
|
interrupt-parent = <&vica>;
|
|
interrupts = <8>;
|
|
interrupt-controller;
|
|
#interrupt-cells = <2>;
|
|
gpio-controller;
|
|
#gpio-cells = <2>;
|
|
gpio-bank = <2>;
|
|
gpio-ranges = <&pinctrl 0 64 32>;
|
|
clocks = <&pclk>;
|
|
};
|
|
|
|
gpio3: gpio@101e7000 {
|
|
compatible = "st,nomadik-gpio";
|
|
reg = <0x101e7000 0x80>;
|
|
ngpio = <28>;
|
|
interrupt-parent = <&vica>;
|
|
interrupts = <9>;
|
|
interrupt-controller;
|
|
#interrupt-cells = <2>;
|
|
gpio-controller;
|
|
#gpio-cells = <2>;
|
|
gpio-bank = <3>;
|
|
gpio-ranges = <&pinctrl 0 96 28>;
|
|
clocks = <&pclk>;
|
|
};
|
|
|
|
pinctrl: pinctrl {
|
|
compatible = "stericsson,stn8815-pinctrl";
|
|
nomadik-gpio-chips = <&gpio0>, <&gpio1>, <&gpio2>, <&gpio3>;
|
|
/* Pin configurations */
|
|
uart1 {
|
|
uart1_default_mux: uart1_mux {
|
|
u1_default_mux {
|
|
function = "u1";
|
|
groups = "u1_a_1";
|
|
};
|
|
};
|
|
};
|
|
mmcsd {
|
|
mmcsd_default_mux: mmcsd_mux {
|
|
mmcsd_default_mux {
|
|
function = "mmcsd";
|
|
groups = "mmcsd_a_1", "mmcsd_b_1";
|
|
};
|
|
};
|
|
mmcsd_default_mode: mmcsd_default {
|
|
mmcsd_default_cfg1 {
|
|
/* MCCLK */
|
|
pins = "GPIO8_B10";
|
|
ste,output = <0>;
|
|
};
|
|
mmcsd_default_cfg2 {
|
|
/* MCCMDDIR, MCDAT0DIR, MCDAT31DIR, MCDATDIR2 */
|
|
pins = "GPIO10_C11", "GPIO15_A12",
|
|
"GPIO16_C13", "GPIO23_D15";
|
|
ste,output = <1>;
|
|
};
|
|
mmcsd_default_cfg3 {
|
|
/* MCCMD, MCDAT3-0, MCMSFBCLK */
|
|
pins = "GPIO9_A10", "GPIO11_B11",
|
|
"GPIO12_A11", "GPIO13_C12",
|
|
"GPIO14_B12", "GPIO24_C15";
|
|
ste,input = <1>;
|
|
};
|
|
};
|
|
};
|
|
i2c0 {
|
|
i2c0_default_mux: i2c0_mux {
|
|
i2c0_default_mux {
|
|
function = "i2c0";
|
|
groups = "i2c0_a_1";
|
|
};
|
|
};
|
|
i2c0_default_mode: i2c0_default {
|
|
i2c0_default_cfg {
|
|
pins = "GPIO62_D3", "GPIO63_D2";
|
|
ste,input = <0>;
|
|
};
|
|
};
|
|
};
|
|
i2c1 {
|
|
i2c1_default_mux: i2c1_mux {
|
|
i2c1_default_mux {
|
|
function = "i2c1";
|
|
groups = "i2c1_a_1";
|
|
};
|
|
};
|
|
i2c1_default_mode: i2c1_default {
|
|
i2c1_default_cfg {
|
|
pins = "GPIO53_L4", "GPIO54_L3";
|
|
ste,input = <0>;
|
|
};
|
|
};
|
|
};
|
|
};
|
|
|
|
src: src@101e0000 {
|
|
compatible = "stericsson,nomadik-src";
|
|
reg = <0x101e0000 0x1000>;
|
|
|
|
/*
|
|
* MXTAL "Main Chrystal" is a chrystal oscillator @19.2 MHz
|
|
* that is parent of TIMCLK, PLL1 and PLL2
|
|
*/
|
|
mxtal: mxtal@19.2M {
|
|
#clock-cells = <0>;
|
|
compatible = "fixed-clock";
|
|
clock-frequency = <19200000>;
|
|
};
|
|
|
|
/*
|
|
* The 2.4 MHz TIMCLK reference clock is active at
|
|
* boot time, this is actually the MXTALCLK @19.2 MHz
|
|
* divided by 8. This clock is used by the timers and
|
|
* watchdog. See page 105 ff.
|
|
*/
|
|
timclk: timclk@2.4M {
|
|
#clock-cells = <0>;
|
|
compatible = "fixed-factor-clock";
|
|
clock-div = <8>;
|
|
clock-mult = <1>;
|
|
clocks = <&mxtal>;
|
|
};
|
|
|
|
/* PLL1 is locked to MXTALI and variable from 20.4 to 334 MHz */
|
|
pll1: pll1@0 {
|
|
#clock-cells = <0>;
|
|
compatible = "st,nomadik-pll-clock";
|
|
pll-id = <1>;
|
|
clocks = <&mxtal>;
|
|
};
|
|
|
|
/* HCLK divides the PLL1 with 1,2,3 or 4 */
|
|
hclk: hclk@0 {
|
|
#clock-cells = <0>;
|
|
compatible = "st,nomadik-hclk-clock";
|
|
clocks = <&pll1>;
|
|
};
|
|
/* The PCLK domain uses HCLK right off */
|
|
pclk: pclk@0 {
|
|
#clock-cells = <0>;
|
|
compatible = "fixed-factor-clock";
|
|
clock-div = <1>;
|
|
clock-mult = <1>;
|
|
clocks = <&hclk>;
|
|
};
|
|
|
|
/* PLL2 is usually 864 MHz and divided into a few fixed rates */
|
|
pll2: pll2@0 {
|
|
#clock-cells = <0>;
|
|
compatible = "st,nomadik-pll-clock";
|
|
pll-id = <2>;
|
|
clocks = <&mxtal>;
|
|
};
|
|
clk216: clk216@216M {
|
|
#clock-cells = <0>;
|
|
compatible = "fixed-factor-clock";
|
|
clock-div = <4>;
|
|
clock-mult = <1>;
|
|
clocks = <&pll2>;
|
|
};
|
|
clk108: clk108@108M {
|
|
#clock-cells = <0>;
|
|
compatible = "fixed-factor-clock";
|
|
clock-div = <2>;
|
|
clock-mult = <1>;
|
|
clocks = <&clk216>;
|
|
};
|
|
clk72: clk72@72M {
|
|
#clock-cells = <0>;
|
|
compatible = "fixed-factor-clock";
|
|
/* The data sheet does not say how this is derived */
|
|
clock-div = <12>;
|
|
clock-mult = <1>;
|
|
clocks = <&pll2>;
|
|
};
|
|
clk48: clk48@48M {
|
|
#clock-cells = <0>;
|
|
compatible = "fixed-factor-clock";
|
|
/* The data sheet does not say how this is derived */
|
|
clock-div = <18>;
|
|
clock-mult = <1>;
|
|
clocks = <&pll2>;
|
|
};
|
|
clk27: clk27@27M {
|
|
#clock-cells = <0>;
|
|
compatible = "fixed-factor-clock";
|
|
clock-div = <4>;
|
|
clock-mult = <1>;
|
|
clocks = <&clk108>;
|
|
};
|
|
|
|
/* This apparently exists as well */
|
|
ulpiclk: ulpiclk@60M {
|
|
#clock-cells = <0>;
|
|
compatible = "fixed-clock";
|
|
clock-frequency = <60000000>;
|
|
};
|
|
|
|
/*
|
|
* IP AMBA bus clocks, driving the bus side of the
|
|
* peripheral clocking, clock gates.
|
|
*/
|
|
|
|
hclkdma0: hclkdma0@48M {
|
|
#clock-cells = <0>;
|
|
compatible = "st,nomadik-src-clock";
|
|
clock-id = <0>;
|
|
clocks = <&hclk>;
|
|
};
|
|
hclksmc: hclksmc@48M {
|
|
#clock-cells = <0>;
|
|
compatible = "st,nomadik-src-clock";
|
|
clock-id = <1>;
|
|
clocks = <&hclk>;
|
|
};
|
|
hclksdram: hclksdram@48M {
|
|
#clock-cells = <0>;
|
|
compatible = "st,nomadik-src-clock";
|
|
clock-id = <2>;
|
|
clocks = <&hclk>;
|
|
};
|
|
hclkdma1: hclkdma1@48M {
|
|
#clock-cells = <0>;
|
|
compatible = "st,nomadik-src-clock";
|
|
clock-id = <3>;
|
|
clocks = <&hclk>;
|
|
};
|
|
hclkclcd: hclkclcd@48M {
|
|
#clock-cells = <0>;
|
|
compatible = "st,nomadik-src-clock";
|
|
clock-id = <4>;
|
|
clocks = <&hclk>;
|
|
};
|
|
pclkirda: pclkirda@48M {
|
|
#clock-cells = <0>;
|
|
compatible = "st,nomadik-src-clock";
|
|
clock-id = <5>;
|
|
clocks = <&pclk>;
|
|
};
|
|
pclkssp: pclkssp@48M {
|
|
#clock-cells = <0>;
|
|
compatible = "st,nomadik-src-clock";
|
|
clock-id = <6>;
|
|
clocks = <&pclk>;
|
|
};
|
|
pclkuart0: pclkuart0@48M {
|
|
#clock-cells = <0>;
|
|
compatible = "st,nomadik-src-clock";
|
|
clock-id = <7>;
|
|
clocks = <&pclk>;
|
|
};
|
|
pclksdi: pclksdi@48M {
|
|
#clock-cells = <0>;
|
|
compatible = "st,nomadik-src-clock";
|
|
clock-id = <8>;
|
|
clocks = <&pclk>;
|
|
};
|
|
pclki2c0: pclki2c0@48M {
|
|
#clock-cells = <0>;
|
|
compatible = "st,nomadik-src-clock";
|
|
clock-id = <9>;
|
|
clocks = <&pclk>;
|
|
};
|
|
pclki2c1: pclki2c1@48M {
|
|
#clock-cells = <0>;
|
|
compatible = "st,nomadik-src-clock";
|
|
clock-id = <10>;
|
|
clocks = <&pclk>;
|
|
};
|
|
pclkuart1: pclkuart1@48M {
|
|
#clock-cells = <0>;
|
|
compatible = "st,nomadik-src-clock";
|
|
clock-id = <11>;
|
|
clocks = <&pclk>;
|
|
};
|
|
pclkmsp0: pclkmsp0@48M {
|
|
#clock-cells = <0>;
|
|
compatible = "st,nomadik-src-clock";
|
|
clock-id = <12>;
|
|
clocks = <&pclk>;
|
|
};
|
|
hclkusb: hclkusb@48M {
|
|
#clock-cells = <0>;
|
|
compatible = "st,nomadik-src-clock";
|
|
clock-id = <13>;
|
|
clocks = <&hclk>;
|
|
};
|
|
hclkdif: hclkdif@48M {
|
|
#clock-cells = <0>;
|
|
compatible = "st,nomadik-src-clock";
|
|
clock-id = <14>;
|
|
clocks = <&hclk>;
|
|
};
|
|
hclksaa: hclksaa@48M {
|
|
#clock-cells = <0>;
|
|
compatible = "st,nomadik-src-clock";
|
|
clock-id = <15>;
|
|
clocks = <&hclk>;
|
|
};
|
|
hclksva: hclksva@48M {
|
|
#clock-cells = <0>;
|
|
compatible = "st,nomadik-src-clock";
|
|
clock-id = <16>;
|
|
clocks = <&hclk>;
|
|
};
|
|
pclkhsi: pclkhsi@48M {
|
|
#clock-cells = <0>;
|
|
compatible = "st,nomadik-src-clock";
|
|
clock-id = <17>;
|
|
clocks = <&pclk>;
|
|
};
|
|
pclkxti: pclkxti@48M {
|
|
#clock-cells = <0>;
|
|
compatible = "st,nomadik-src-clock";
|
|
clock-id = <18>;
|
|
clocks = <&pclk>;
|
|
};
|
|
pclkuart2: pclkuart2@48M {
|
|
#clock-cells = <0>;
|
|
compatible = "st,nomadik-src-clock";
|
|
clock-id = <19>;
|
|
clocks = <&pclk>;
|
|
};
|
|
pclkmsp1: pclkmsp1@48M {
|
|
#clock-cells = <0>;
|
|
compatible = "st,nomadik-src-clock";
|
|
clock-id = <20>;
|
|
clocks = <&pclk>;
|
|
};
|
|
pclkmsp2: pclkmsp2@48M {
|
|
#clock-cells = <0>;
|
|
compatible = "st,nomadik-src-clock";
|
|
clock-id = <21>;
|
|
clocks = <&pclk>;
|
|
};
|
|
pclkowm: pclkowm@48M {
|
|
#clock-cells = <0>;
|
|
compatible = "st,nomadik-src-clock";
|
|
clock-id = <22>;
|
|
clocks = <&pclk>;
|
|
};
|
|
hclkhpi: hclkhpi@48M {
|
|
#clock-cells = <0>;
|
|
compatible = "st,nomadik-src-clock";
|
|
clock-id = <23>;
|
|
clocks = <&hclk>;
|
|
};
|
|
pclkske: pclkske@48M {
|
|
#clock-cells = <0>;
|
|
compatible = "st,nomadik-src-clock";
|
|
clock-id = <24>;
|
|
clocks = <&pclk>;
|
|
};
|
|
pclkhsem: pclkhsem@48M {
|
|
#clock-cells = <0>;
|
|
compatible = "st,nomadik-src-clock";
|
|
clock-id = <25>;
|
|
clocks = <&pclk>;
|
|
};
|
|
hclk3d: hclk3d@48M {
|
|
#clock-cells = <0>;
|
|
compatible = "st,nomadik-src-clock";
|
|
clock-id = <26>;
|
|
clocks = <&hclk>;
|
|
};
|
|
hclkhash: hclkhash@48M {
|
|
#clock-cells = <0>;
|
|
compatible = "st,nomadik-src-clock";
|
|
clock-id = <27>;
|
|
clocks = <&hclk>;
|
|
};
|
|
hclkcryp: hclkcryp@48M {
|
|
#clock-cells = <0>;
|
|
compatible = "st,nomadik-src-clock";
|
|
clock-id = <28>;
|
|
clocks = <&hclk>;
|
|
};
|
|
pclkmshc: pclkmshc@48M {
|
|
#clock-cells = <0>;
|
|
compatible = "st,nomadik-src-clock";
|
|
clock-id = <29>;
|
|
clocks = <&pclk>;
|
|
};
|
|
hclkusbm: hclkusbm@48M {
|
|
#clock-cells = <0>;
|
|
compatible = "st,nomadik-src-clock";
|
|
clock-id = <30>;
|
|
clocks = <&hclk>;
|
|
};
|
|
hclkrng: hclkrng@48M {
|
|
#clock-cells = <0>;
|
|
compatible = "st,nomadik-src-clock";
|
|
clock-id = <31>;
|
|
clocks = <&hclk>;
|
|
};
|
|
|
|
/* IP kernel clocks */
|
|
clcdclk: clcdclk@0 {
|
|
#clock-cells = <0>;
|
|
compatible = "st,nomadik-src-clock";
|
|
clock-id = <36>;
|
|
clocks = <&clk72 &clk48>;
|
|
};
|
|
irdaclk: irdaclk@48M {
|
|
#clock-cells = <0>;
|
|
compatible = "st,nomadik-src-clock";
|
|
clock-id = <37>;
|
|
clocks = <&clk48>;
|
|
};
|
|
sspiclk: sspiclk@48M {
|
|
#clock-cells = <0>;
|
|
compatible = "st,nomadik-src-clock";
|
|
clock-id = <38>;
|
|
clocks = <&clk48>;
|
|
};
|
|
uart0clk: uart0clk@48M {
|
|
#clock-cells = <0>;
|
|
compatible = "st,nomadik-src-clock";
|
|
clock-id = <39>;
|
|
clocks = <&clk48>;
|
|
};
|
|
sdiclk: sdiclk@48M {
|
|
/* Also called MCCLK in some documents */
|
|
#clock-cells = <0>;
|
|
compatible = "st,nomadik-src-clock";
|
|
clock-id = <40>;
|
|
clocks = <&clk48>;
|
|
};
|
|
i2c0clk: i2c0clk@48M {
|
|
#clock-cells = <0>;
|
|
compatible = "st,nomadik-src-clock";
|
|
clock-id = <41>;
|
|
clocks = <&clk48>;
|
|
};
|
|
i2c1clk: i2c1clk@48M {
|
|
#clock-cells = <0>;
|
|
compatible = "st,nomadik-src-clock";
|
|
clock-id = <42>;
|
|
clocks = <&clk48>;
|
|
};
|
|
uart1clk: uart1clk@48M {
|
|
#clock-cells = <0>;
|
|
compatible = "st,nomadik-src-clock";
|
|
clock-id = <43>;
|
|
clocks = <&clk48>;
|
|
};
|
|
mspclk0: mspclk0@48M {
|
|
#clock-cells = <0>;
|
|
compatible = "st,nomadik-src-clock";
|
|
clock-id = <44>;
|
|
clocks = <&clk48>;
|
|
};
|
|
usbclk: usbclk@48M {
|
|
#clock-cells = <0>;
|
|
compatible = "st,nomadik-src-clock";
|
|
clock-id = <45>;
|
|
clocks = <&clk48>; /* 48 MHz not ULPI */
|
|
};
|
|
difclk: difclk@72M {
|
|
#clock-cells = <0>;
|
|
compatible = "st,nomadik-src-clock";
|
|
clock-id = <46>;
|
|
clocks = <&clk72>;
|
|
};
|
|
ipi2cclk: ipi2cclk@48M {
|
|
#clock-cells = <0>;
|
|
compatible = "st,nomadik-src-clock";
|
|
clock-id = <47>;
|
|
clocks = <&clk48>; /* Guess */
|
|
};
|
|
ipbmcclk: ipbmcclk@48M {
|
|
#clock-cells = <0>;
|
|
compatible = "st,nomadik-src-clock";
|
|
clock-id = <48>;
|
|
clocks = <&clk48>; /* Guess */
|
|
};
|
|
hsiclkrx: hsiclkrx@216M {
|
|
#clock-cells = <0>;
|
|
compatible = "st,nomadik-src-clock";
|
|
clock-id = <49>;
|
|
clocks = <&clk216>;
|
|
};
|
|
hsiclktx: hsiclktx@108M {
|
|
#clock-cells = <0>;
|
|
compatible = "st,nomadik-src-clock";
|
|
clock-id = <50>;
|
|
clocks = <&clk108>;
|
|
};
|
|
uart2clk: uart2clk@48M {
|
|
#clock-cells = <0>;
|
|
compatible = "st,nomadik-src-clock";
|
|
clock-id = <51>;
|
|
clocks = <&clk48>;
|
|
};
|
|
mspclk1: mspclk1@48M {
|
|
#clock-cells = <0>;
|
|
compatible = "st,nomadik-src-clock";
|
|
clock-id = <52>;
|
|
clocks = <&clk48>;
|
|
};
|
|
mspclk2: mspclk2@48M {
|
|
#clock-cells = <0>;
|
|
compatible = "st,nomadik-src-clock";
|
|
clock-id = <53>;
|
|
clocks = <&clk48>;
|
|
};
|
|
owmclk: owmclk@48M {
|
|
#clock-cells = <0>;
|
|
compatible = "st,nomadik-src-clock";
|
|
clock-id = <54>;
|
|
clocks = <&clk48>; /* Guess */
|
|
};
|
|
skeclk: skeclk@48M {
|
|
#clock-cells = <0>;
|
|
compatible = "st,nomadik-src-clock";
|
|
clock-id = <56>;
|
|
clocks = <&clk48>; /* Guess */
|
|
};
|
|
x3dclk: x3dclk@48M {
|
|
#clock-cells = <0>;
|
|
compatible = "st,nomadik-src-clock";
|
|
clock-id = <58>;
|
|
clocks = <&clk48>; /* Guess */
|
|
};
|
|
pclkmsp3: pclkmsp3@48M {
|
|
#clock-cells = <0>;
|
|
compatible = "st,nomadik-src-clock";
|
|
clock-id = <59>;
|
|
clocks = <&pclk>;
|
|
};
|
|
mspclk3: mspclk3@48M {
|
|
#clock-cells = <0>;
|
|
compatible = "st,nomadik-src-clock";
|
|
clock-id = <60>;
|
|
clocks = <&clk48>;
|
|
};
|
|
mshcclk: mshcclk@48M {
|
|
#clock-cells = <0>;
|
|
compatible = "st,nomadik-src-clock";
|
|
clock-id = <61>;
|
|
clocks = <&clk48>; /* Guess */
|
|
};
|
|
usbmclk: usbmclk@48M {
|
|
#clock-cells = <0>;
|
|
compatible = "st,nomadik-src-clock";
|
|
clock-id = <62>;
|
|
/* Stated as "48 MHz not ULPI clock" */
|
|
clocks = <&clk48>;
|
|
};
|
|
rngcclk: rngcclk@48M {
|
|
#clock-cells = <0>;
|
|
compatible = "st,nomadik-src-clock";
|
|
clock-id = <63>;
|
|
clocks = <&clk48>; /* Guess */
|
|
};
|
|
};
|
|
|
|
/* A NAND flash of 128 MiB */
|
|
fsmc: flash@40000000 {
|
|
compatible = "stericsson,fsmc-nand";
|
|
#address-cells = <1>;
|
|
#size-cells = <1>;
|
|
reg = <0x10100000 0x1000>, /* FSMC Register*/
|
|
<0x40000000 0x2000>, /* NAND Base DATA */
|
|
<0x41000000 0x2000>, /* NAND Base ADDR */
|
|
<0x40800000 0x2000>; /* NAND Base CMD */
|
|
reg-names = "fsmc_regs", "nand_data", "nand_addr", "nand_cmd";
|
|
clocks = <&hclksmc>;
|
|
status = "okay";
|
|
timings = /bits/ 8 <0 0 0 0x10 0x0a 0>;
|
|
|
|
partition@0 {
|
|
label = "X-Loader(NAND)";
|
|
reg = <0x0 0x40000>;
|
|
};
|
|
partition@40000 {
|
|
label = "MemInit(NAND)";
|
|
reg = <0x40000 0x40000>;
|
|
};
|
|
partition@80000 {
|
|
label = "BootLoader(NAND)";
|
|
reg = <0x80000 0x200000>;
|
|
};
|
|
partition@280000 {
|
|
label = "Kernel zImage(NAND)";
|
|
reg = <0x280000 0x300000>;
|
|
};
|
|
partition@580000 {
|
|
label = "Root Filesystem(NAND)";
|
|
reg = <0x580000 0x1600000>;
|
|
};
|
|
partition@1b80000 {
|
|
label = "User Filesystem(NAND)";
|
|
reg = <0x1b80000 0x6480000>;
|
|
};
|
|
};
|
|
|
|
/* I2C0 connected to the STw4811 power management chip */
|
|
i2c0 {
|
|
compatible = "st,nomadik-i2c", "arm,primecell";
|
|
reg = <0x101f8000 0x1000>;
|
|
interrupt-parent = <&vica>;
|
|
interrupts = <20>;
|
|
clock-frequency = <100000>;
|
|
#address-cells = <1>;
|
|
#size-cells = <0>;
|
|
clocks = <&i2c0clk>, <&pclki2c0>;
|
|
clock-names = "mclk", "apb_pclk";
|
|
pinctrl-names = "default";
|
|
pinctrl-0 = <&i2c0_default_mux>, <&i2c0_default_mode>;
|
|
|
|
stw4811@2d {
|
|
compatible = "st,stw4811";
|
|
reg = <0x2d>;
|
|
vmmc_regulator: vmmc {
|
|
compatible = "st,stw481x-vmmc";
|
|
regulator-name = "VMMC";
|
|
regulator-min-microvolt = <1800000>;
|
|
regulator-max-microvolt = <3300000>;
|
|
};
|
|
};
|
|
};
|
|
|
|
/* I2C1 connected to various sensors */
|
|
i2c1 {
|
|
compatible = "st,nomadik-i2c", "arm,primecell";
|
|
reg = <0x101f7000 0x1000>;
|
|
interrupt-parent = <&vica>;
|
|
interrupts = <21>;
|
|
clock-frequency = <100000>;
|
|
#address-cells = <1>;
|
|
#size-cells = <0>;
|
|
clocks = <&i2c1clk>, <&pclki2c1>;
|
|
clock-names = "mclk", "apb_pclk";
|
|
pinctrl-names = "default";
|
|
pinctrl-0 = <&i2c1_default_mux>, <&i2c1_default_mode>;
|
|
|
|
camera@2d {
|
|
compatible = "st,camera";
|
|
reg = <0x10>;
|
|
};
|
|
stw5095@1a {
|
|
compatible = "st,stw5095";
|
|
reg = <0x1a>;
|
|
};
|
|
};
|
|
|
|
amba {
|
|
compatible = "arm,amba-bus";
|
|
#address-cells = <1>;
|
|
#size-cells = <1>;
|
|
ranges;
|
|
|
|
vica: intc@10140000 {
|
|
compatible = "arm,versatile-vic";
|
|
interrupt-controller;
|
|
#interrupt-cells = <1>;
|
|
reg = <0x10140000 0x20>;
|
|
};
|
|
|
|
vicb: intc@10140020 {
|
|
compatible = "arm,versatile-vic";
|
|
interrupt-controller;
|
|
#interrupt-cells = <1>;
|
|
reg = <0x10140020 0x20>;
|
|
};
|
|
|
|
uart0: uart@101fd000 {
|
|
compatible = "arm,pl011", "arm,primecell";
|
|
reg = <0x101fd000 0x1000>;
|
|
interrupt-parent = <&vica>;
|
|
interrupts = <12>;
|
|
clocks = <&uart0clk>, <&pclkuart0>;
|
|
clock-names = "uartclk", "apb_pclk";
|
|
status = "disabled";
|
|
};
|
|
|
|
uart1: uart@101fb000 {
|
|
compatible = "arm,pl011", "arm,primecell";
|
|
reg = <0x101fb000 0x1000>;
|
|
interrupt-parent = <&vica>;
|
|
interrupts = <17>;
|
|
clocks = <&uart1clk>, <&pclkuart1>;
|
|
clock-names = "uartclk", "apb_pclk";
|
|
pinctrl-names = "default";
|
|
pinctrl-0 = <&uart1_default_mux>;
|
|
};
|
|
|
|
uart2: uart@101f2000 {
|
|
compatible = "arm,pl011", "arm,primecell";
|
|
reg = <0x101f2000 0x1000>;
|
|
interrupt-parent = <&vica>;
|
|
interrupts = <28>;
|
|
clocks = <&uart2clk>, <&pclkuart2>;
|
|
clock-names = "uartclk", "apb_pclk";
|
|
status = "disabled";
|
|
};
|
|
|
|
rng: rng@101b0000 {
|
|
compatible = "arm,primecell";
|
|
reg = <0x101b0000 0x1000>;
|
|
clocks = <&rngcclk>, <&hclkrng>;
|
|
clock-names = "rng", "apb_pclk";
|
|
};
|
|
|
|
rtc: rtc@101e8000 {
|
|
compatible = "arm,pl031", "arm,primecell";
|
|
reg = <0x101e8000 0x1000>;
|
|
clocks = <&pclk>;
|
|
clock-names = "apb_pclk";
|
|
interrupt-parent = <&vica>;
|
|
interrupts = <10>;
|
|
};
|
|
|
|
mmcsd: sdi@101f6000 {
|
|
compatible = "arm,pl18x", "arm,primecell";
|
|
reg = <0x101f6000 0x1000>;
|
|
clocks = <&sdiclk>, <&pclksdi>;
|
|
clock-names = "mclk", "apb_pclk";
|
|
interrupt-parent = <&vica>;
|
|
interrupts = <22>;
|
|
max-frequency = <48000000>;
|
|
bus-width = <4>;
|
|
cap-mmc-highspeed;
|
|
cap-sd-highspeed;
|
|
pinctrl-names = "default";
|
|
pinctrl-0 = <&mmcsd_default_mux>, <&mmcsd_default_mode>;
|
|
vmmc-supply = <&vmmc_regulator>;
|
|
};
|
|
};
|
|
};
|