123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884 |
- // SPDX-License-Identifier: GPL-2.0
- /*
- * Device Tree for the ST-Ericsson Nomadik 8815 STn8815 SoC
- */
- #include <dt-bindings/gpio/gpio.h>
- / {
- #address-cells = <1>;
- #size-cells = <1>;
- memory {
- device_type = "memory";
- reg = <0x00000000 0x04000000>,
- <0x08000000 0x04000000>;
- };
- L2: cache-controller {
- 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, MCCMDDIR, MCDAT0DIR, MCDAT31DIR, MCDATDIR2
- * MCCMD, MCDAT3-0, MCMSFBCLK
- */
- pins = "GPIO8_B10", "GPIO9_A10", "GPIO10_C11", "GPIO11_B11",
- "GPIO12_A11", "GPIO13_C12", "GPIO14_B12", "GPIO15_A12",
- "GPIO16_C13", "GPIO23_D15", "GPIO24_C15";
- ste,output = <2>;
- };
- };
- };
- 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>;
- };
- };
- };
- clcd {
- /*
- * This should be activated to use the additional
- * 8 lines for bits 16 thru 23 from the CLCD block.
- */
- clcd_24bit_mux: clcd_mux {
- clcd_24bit_mux {
- function = "clcd";
- groups = "clcd_16_23_b_1";
- };
- };
- };
- };
- /* Power Management Unit */
- pmu: pmu@101e9000 {
- compatible = "stericsson,nomadik-pmu", "syscon";
- reg = <0x101e0000 0x1000>;
- };
- 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: [email protected] {
- #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: [email protected] {
- #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";
- 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 = "simple-bus";
- #address-cells = <1>;
- #size-cells = <1>;
- ranges;
- clcd@10120000 {
- compatible = "arm,pl110", "arm,primecell";
- reg = <0x10120000 0x1000>;
- interrupt-names = "combined";
- interrupts = <14>;
- interrupt-parent = <&vica>;
- clocks = <&clcdclk>, <&hclkclcd>;
- clock-names = "clcdclk", "apb_pclk";
- status = "disabled";
- };
- vica: interrupt-controller@10140000 {
- compatible = "arm,versatile-vic";
- interrupt-controller;
- #interrupt-cells = <1>;
- reg = <0x10140000 0x20>;
- };
- vicb: interrupt-controller@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";
- dmas = <&dmac0 14 1>,
- <&dmac0 15 1>;
- dma-names = "rx", "tx";
- };
- 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>;
- dmas = <&dmac1 22 1>,
- <&dmac1 23 1>;
- dma-names = "rx", "tx";
- };
- 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";
- dmas = <&dmac1 30 1>,
- <&dmac1 31 1>;
- dma-names = "rx", "tx";
- };
- 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: mmc@101f6000 {
- compatible = "arm,pl18x", "arm,primecell";
- reg = <0x101f6000 0x1000>;
- clocks = <&sdiclk>, <&pclksdi>;
- clock-names = "mclk", "apb_pclk";
- interrupt-parent = <&vica>;
- interrupts = <22>;
- max-frequency = <400000>;
- bus-width = <4>;
- cap-mmc-highspeed;
- cap-sd-highspeed;
- full-pwr-cycle;
- /*
- * The STw4811 circuit used with the Nomadik strictly
- * requires that all of these signal direction pins be
- * routed and used for its 4-bit levelshifter.
- */
- st,sig-dir-dat0;
- st,sig-dir-dat2;
- st,sig-dir-dat31;
- st,sig-dir-cmd;
- st,sig-pin-fbclk;
- pinctrl-names = "default";
- pinctrl-0 = <&mmcsd_default_mux>, <&mmcsd_default_mode>;
- vmmc-supply = <&vmmc_regulator>;
- };
- dmac0: dma-controller@10130000 {
- compatible = "arm,pl080", "arm,primecell";
- reg = <0x10130000 0x1000>;
- interrupt-parent = <&vica>;
- interrupts = <15>;
- clocks = <&hclkdma0>;
- clock-names = "apb_pclk";
- lli-bus-interface-ahb1;
- lli-bus-interface-ahb2;
- mem-bus-interface-ahb2;
- memcpy-burst-size = <256>;
- memcpy-bus-width = <32>;
- #dma-cells = <2>;
- };
- dmac1: dma-controller@10150000 {
- compatible = "arm,pl080", "arm,primecell";
- reg = <0x10150000 0x1000>;
- interrupt-parent = <&vica>;
- interrupts = <13>;
- clocks = <&hclkdma1>;
- clock-names = "apb_pclk";
- lli-bus-interface-ahb1;
- lli-bus-interface-ahb2;
- mem-bus-interface-ahb2;
- memcpy-burst-size = <256>;
- memcpy-bus-width = <32>;
- #dma-cells = <2>;
- };
- };
- };
|