Message ID | 1381235073-17134-8-git-send-email-sebastian.hesselbarth@gmail.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On 10/08/2013 02:24 PM, Sebastian Hesselbarth wrote: > This adds very basic device tree files for the Marvell Armada 1500 SoC > (88DE3100) and the Sony NSZ-GS7 GoogleTV board. Currently, SoC only has > nodes for cpus, some clocks, l2 cache controller, local timer, apb timers, > uart, and interrupt controllers. The Sony NSZ-GS7 is a GoogleTV consumer > device comprising the Armada 1500 SoC above. > > Signed-off-by: Sebastian Hesselbarth <sebastian.hesselbarth@gmail.com> > Reviewed-by: Jason Cooper <jason@lakedaemon.net> > Reviewed-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> > Reviewed-by: Arnd Bergmann <arnd@arndb.de> > --- > Changelog: > RCFv2->v1: > - switch to (soon to be) correct "marvell,pj4b" cpu compatible > - reference fixed-clock for uarts instead of hard-coded clock-frequency > - disable timers except two for clksrc and clkevt > RFCv1->RFCv2: > - add binding documentation (Reported by Jason Cooper) > - change l2cc from aurora to tauros3 (Reported by Thomas Petazzoni) > - add copyright reference > - adapt compatibles to mach-berlin instead of mach-mvebu > > Cc: Jason Cooper <jason@lakedaemon.net> > Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> > Cc: Arnd Bergmann <arnd@arndb.de> > Cc: devicetree@vger.kernel.org > Cc: linux-doc@vger.kernel.org > Cc: linux-arm-kernel@lists.infradead.org > Cc: linux-kernel@vger.kernel.org > --- > .../devicetree/bindings/arm/marvell,berlin.txt | 23 ++ > arch/arm/boot/dts/Makefile | 2 + > arch/arm/boot/dts/mv88de3100-sony-nsz-gs7.dts | 29 +++ > arch/arm/boot/dts/mv88de3100.dtsi | 227 ++++++++++++++++++++ > 4 files changed, 281 insertions(+) > create mode 100644 Documentation/devicetree/bindings/arm/marvell,berlin.txt > create mode 100644 arch/arm/boot/dts/mv88de3100-sony-nsz-gs7.dts > create mode 100644 arch/arm/boot/dts/mv88de3100.dtsi > > diff --git a/Documentation/devicetree/bindings/arm/marvell,berlin.txt b/Documentation/devicetree/bindings/arm/marvell,berlin.txt > new file mode 100644 > index 0000000..e389cba > --- /dev/null > +++ b/Documentation/devicetree/bindings/arm/marvell,berlin.txt > @@ -0,0 +1,23 @@ > +Marvell Berlin (88DE3xxx) family SoCs Device Tree Bindings > +--------------------------------------------------------------- > + > +Boards with a SoC of the Marvell Berlin (88DE3xxx) family, e.g. Armada 1500 > +shall have the following properties: > + > +* Required root node properties: > +compatible: must contain "marvell,berlin" > + > +In addition, the above compatible shall be extended with the specific > +SoC and board used. Currently known SoC compatibles are: > + "marvell,88de3100" for Marvell 88DE3100 (Armada 1500), > + "marvell,88de3010" for Marvell 88DE3010 (Armada 1000), > + "marvell,88de3005" for Marvell 88DE3005 (Armada 1500-mini) Jisheng, I am trying to follow your request to get rid of 88DExxxx numbering and replace it where possible with berlin type-of names. For the above, I have: "marvell,berlin-bg2" for Marvell Armada 1500 (BG2, 88DE3100) "marvell,berlin-bg2cd" for Marvell Armada 1500-mini (BG2CD, 88DE3005) I cannot pin down Armada 1000 in the BG naming scheme. It would be great if you provide info here on how Marvell would like to see the compatibles. Sebastian
On 10/15/2013 01:13 AM, Sebastian Hesselbarth wrote: > On 10/08/2013 02:24 PM, Sebastian Hesselbarth wrote: >> This adds very basic device tree files for the Marvell Armada 1500 SoC >> (88DE3100) and the Sony NSZ-GS7 GoogleTV board. Currently, SoC only has >> nodes for cpus, some clocks, l2 cache controller, local timer, apb >> timers, >> uart, and interrupt controllers. The Sony NSZ-GS7 is a GoogleTV consumer >> device comprising the Armada 1500 SoC above. >> >> Signed-off-by: Sebastian Hesselbarth <sebastian.hesselbarth@gmail.com> >> Reviewed-by: Jason Cooper <jason@lakedaemon.net> >> Reviewed-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> >> Reviewed-by: Arnd Bergmann <arnd@arndb.de> >> --- >> Changelog: >> RCFv2->v1: >> - switch to (soon to be) correct "marvell,pj4b" cpu compatible >> - reference fixed-clock for uarts instead of hard-coded clock-frequency >> - disable timers except two for clksrc and clkevt >> RFCv1->RFCv2: >> - add binding documentation (Reported by Jason Cooper) >> - change l2cc from aurora to tauros3 (Reported by Thomas Petazzoni) >> - add copyright reference >> - adapt compatibles to mach-berlin instead of mach-mvebu >> >> Cc: Jason Cooper <jason@lakedaemon.net> >> Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> >> Cc: Arnd Bergmann <arnd@arndb.de> >> Cc: devicetree@vger.kernel.org >> Cc: linux-doc@vger.kernel.org >> Cc: linux-arm-kernel@lists.infradead.org >> Cc: linux-kernel@vger.kernel.org >> --- >> .../devicetree/bindings/arm/marvell,berlin.txt | 23 ++ >> arch/arm/boot/dts/Makefile | 2 + >> arch/arm/boot/dts/mv88de3100-sony-nsz-gs7.dts | 29 +++ >> arch/arm/boot/dts/mv88de3100.dtsi | 227 >> ++++++++++++++++++++ >> 4 files changed, 281 insertions(+) >> create mode 100644 >> Documentation/devicetree/bindings/arm/marvell,berlin.txt >> create mode 100644 arch/arm/boot/dts/mv88de3100-sony-nsz-gs7.dts >> create mode 100644 arch/arm/boot/dts/mv88de3100.dtsi >> >> diff --git a/Documentation/devicetree/bindings/arm/marvell,berlin.txt >> b/Documentation/devicetree/bindings/arm/marvell,berlin.txt >> new file mode 100644 >> index 0000000..e389cba >> --- /dev/null >> +++ b/Documentation/devicetree/bindings/arm/marvell,berlin.txt >> @@ -0,0 +1,23 @@ >> +Marvell Berlin (88DE3xxx) family SoCs Device Tree Bindings >> +--------------------------------------------------------------- >> + >> +Boards with a SoC of the Marvell Berlin (88DE3xxx) family, e.g. >> Armada 1500 >> +shall have the following properties: >> + >> +* Required root node properties: >> +compatible: must contain "marvell,berlin" >> + >> +In addition, the above compatible shall be extended with the specific >> +SoC and board used. Currently known SoC compatibles are: >> + "marvell,88de3100" for Marvell 88DE3100 (Armada 1500), >> + "marvell,88de3010" for Marvell 88DE3010 (Armada 1000), >> + "marvell,88de3005" for Marvell 88DE3005 (Armada 1500-mini) > > Jisheng, (adding Jisheng to Cc, missed that) > I am trying to follow your request to get rid of 88DExxxx numbering and > replace it where possible with berlin type-of names. > > For the above, I have: > "marvell,berlin-bg2" for Marvell Armada 1500 (BG2, 88DE3100) > "marvell,berlin-bg2cd" for Marvell Armada 1500-mini (BG2CD, 88DE3005) > > I cannot pin down Armada 1000 in the BG naming scheme. It would be great > if you provide info here on how Marvell would like to see the > compatibles. > > Sebastian >
Hi Sebastian, On Mon, 14 Oct 2013 16:13:21 -0700 Sebastian Hesselbarth <sebastian.hesselbarth@gmail.com> wrote: > On 10/08/2013 02:24 PM, Sebastian Hesselbarth wrote: > > This adds very basic device tree files for the Marvell Armada 1500 SoC > > (88DE3100) and the Sony NSZ-GS7 GoogleTV board. Currently, SoC only has > > nodes for cpus, some clocks, l2 cache controller, local timer, apb timers, > > uart, and interrupt controllers. The Sony NSZ-GS7 is a GoogleTV consumer > > device comprising the Armada 1500 SoC above. > > > > Signed-off-by: Sebastian Hesselbarth <sebastian.hesselbarth@gmail.com> > > Reviewed-by: Jason Cooper <jason@lakedaemon.net> > > Reviewed-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> > > Reviewed-by: Arnd Bergmann <arnd@arndb.de> > > --- > > Changelog: > > RCFv2->v1: > > - switch to (soon to be) correct "marvell,pj4b" cpu compatible > > - reference fixed-clock for uarts instead of hard-coded clock-frequency > > - disable timers except two for clksrc and clkevt > > RFCv1->RFCv2: > > - add binding documentation (Reported by Jason Cooper) > > - change l2cc from aurora to tauros3 (Reported by Thomas Petazzoni) > > - add copyright reference > > - adapt compatibles to mach-berlin instead of mach-mvebu > > > > Cc: Jason Cooper <jason@lakedaemon.net> > > Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> > > Cc: Arnd Bergmann <arnd@arndb.de> > > Cc: devicetree@vger.kernel.org > > Cc: linux-doc@vger.kernel.org > > Cc: linux-arm-kernel@lists.infradead.org > > Cc: linux-kernel@vger.kernel.org > > --- > > .../devicetree/bindings/arm/marvell,berlin.txt | 23 ++ > > arch/arm/boot/dts/Makefile | 2 + > > arch/arm/boot/dts/mv88de3100-sony-nsz-gs7.dts | 29 +++ > > arch/arm/boot/dts/mv88de3100.dtsi | 227 > > ++++++++++++++++++++ 4 files changed, 281 insertions(+) > > create mode 100644 > > Documentation/devicetree/bindings/arm/marvell,berlin.txt create mode > > 100644 arch/arm/boot/dts/mv88de3100-sony-nsz-gs7.dts create mode 100644 > > arch/arm/boot/dts/mv88de3100.dtsi > > > > diff --git a/Documentation/devicetree/bindings/arm/marvell,berlin.txt > > b/Documentation/devicetree/bindings/arm/marvell,berlin.txt new file mode > > 100644 index 0000000..e389cba > > --- /dev/null > > +++ b/Documentation/devicetree/bindings/arm/marvell,berlin.txt > > @@ -0,0 +1,23 @@ > > +Marvell Berlin (88DE3xxx) family SoCs Device Tree Bindings > > +--------------------------------------------------------------- > > + > > +Boards with a SoC of the Marvell Berlin (88DE3xxx) family, e.g. Armada > > 1500 +shall have the following properties: > > + > > +* Required root node properties: > > +compatible: must contain "marvell,berlin" > > + > > +In addition, the above compatible shall be extended with the specific > > +SoC and board used. Currently known SoC compatibles are: > > + "marvell,88de3100" for Marvell 88DE3100 (Armada 1500), > > + "marvell,88de3010" for Marvell 88DE3010 (Armada 1000), > > + "marvell,88de3005" for Marvell 88DE3005 (Armada 1500-mini) > > Jisheng, > > I am trying to follow your request to get rid of 88DExxxx numbering and > replace it where possible with berlin type-of names. Thanks for your help. > > For the above, I have: > "marvell,berlin-bg2" for Marvell Armada 1500 (BG2, 88DE3100) We prefer "marvell,berlin2" for BG2 > "marvell,berlin-bg2cd" for Marvell Armada 1500-mini (BG2CD, 88DE3005) we prefer "marvell,berlin2cd" for BG2CD, "marvell,berlin2ct" for BG2CT, and "marvell,berlin3" for BG3, etc. Thanks, Jisheng
diff --git a/Documentation/devicetree/bindings/arm/marvell,berlin.txt b/Documentation/devicetree/bindings/arm/marvell,berlin.txt new file mode 100644 index 0000000..e389cba --- /dev/null +++ b/Documentation/devicetree/bindings/arm/marvell,berlin.txt @@ -0,0 +1,23 @@ +Marvell Berlin (88DE3xxx) family SoCs Device Tree Bindings +--------------------------------------------------------------- + +Boards with a SoC of the Marvell Berlin (88DE3xxx) family, e.g. Armada 1500 +shall have the following properties: + +* Required root node properties: +compatible: must contain "marvell,berlin" + +In addition, the above compatible shall be extended with the specific +SoC and board used. Currently known SoC compatibles are: + "marvell,88de3100" for Marvell 88DE3100 (Armada 1500), + "marvell,88de3010" for Marvell 88DE3010 (Armada 1000), + "marvell,88de3005" for Marvell 88DE3005 (Armada 1500-mini) + +* Example: + +/ { + model = "Sony NSZ-GS7"; + compatible = "sony,nsz-gs7", "marvell,88de3100", "marvell,berlin"; + + ... +} diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile index 802720e..e86933a 100644 --- a/arch/arm/boot/dts/Makefile +++ b/arch/arm/boot/dts/Makefile @@ -46,6 +46,8 @@ dtb-$(CONFIG_ARCH_ATLAS6) += atlas6-evb.dtb dtb-$(CONFIG_ARCH_BCM2835) += bcm2835-rpi-b.dtb dtb-$(CONFIG_ARCH_BCM) += bcm11351-brt.dtb \ bcm28155-ap.dtb +dtb-$(CONFIG_ARCH_BERLIN) += \ + mv88de3100-sony-nsz-gs7.dtb dtb-$(CONFIG_ARCH_DAVINCI) += da850-enbw-cmc.dtb \ da850-evm.dtb dtb-$(CONFIG_ARCH_DOVE) += dove-cm-a510.dtb \ diff --git a/arch/arm/boot/dts/mv88de3100-sony-nsz-gs7.dts b/arch/arm/boot/dts/mv88de3100-sony-nsz-gs7.dts new file mode 100644 index 0000000..81025ce --- /dev/null +++ b/arch/arm/boot/dts/mv88de3100-sony-nsz-gs7.dts @@ -0,0 +1,29 @@ +/* + * Device Tree file for Sony NSZ-GS7 + * + * Sebastian Hesselbarth <sebastian.hesselbarth@gmail.com> + * + * This file is licensed under the terms of the GNU General Public + * License version 2. This program is licensed "as is" without any + * warranty of any kind, whether express or implied. + */ + +/dts-v1/; + +#include "mv88de3100.dtsi" + +/ { + model = "Sony NSZ-GS7"; + compatible = "sony,nsz-gs7", "marvell,88de3100", "marvell,berlin"; + + chosen { + bootargs = "console=ttyS0,115200 earlyprintk"; + }; + + memory { + device_type = "memory"; + reg = <0x00000000 0x40000000>; /* 1 GB */ + }; +}; + +&uart0 { status = "okay"; }; diff --git a/arch/arm/boot/dts/mv88de3100.dtsi b/arch/arm/boot/dts/mv88de3100.dtsi new file mode 100644 index 0000000..d434015 --- /dev/null +++ b/arch/arm/boot/dts/mv88de3100.dtsi @@ -0,0 +1,227 @@ +/* + * Device Tree Include file for Marvell 88DE3100 (Armada 1500) SoC + * + * Sebastian Hesselbarth <sebastian.hesselbarth@gmail.com> + * + * based on GPL'ed 2.6 kernel sources + * (c) Marvell International Ltd. + * + * This file is licensed under the terms of the GNU General Public + * License version 2. This program is licensed "as is" without any + * warranty of any kind, whether express or implied. + */ + +#include "skeleton.dtsi" +#include <dt-bindings/interrupt-controller/arm-gic.h> + +/ { + model = "Marvell 88DE3100 (Armada 1500) SoC"; + compatible = "marvell,88de3100", "marvell,berlin"; + + cpus { + #address-cells = <1>; + #size-cells = <0>; + + cpu@0 { + compatible = "marvell,pj4b"; + device_type = "cpu"; + next-level-cache = <&l2>; + reg = <0>; + }; + + cpu@1 { + compatible = "marvell,pj4b"; + device_type = "cpu"; + next-level-cache = <&l2>; + reg = <1>; + }; + }; + + clocks { + smclk: sysmgr-clock { + compatible = "fixed-clock"; + #clock-cells = <0>; + clock-frequency = <25000000>; + }; + + cfgclk: cfg-clock { + compatible = "fixed-clock"; + #clock-cells = <0>; + clock-frequency = <100000000>; + }; + + sysclk: system-clock { + compatible = "fixed-clock"; + #clock-cells = <0>; + clock-frequency = <400000000>; + }; + }; + + soc { + compatible = "simple-bus"; + #address-cells = <1>; + #size-cells = <1>; + interrupt-parent = <&gic>; + + ranges = <0 0xf7000000 0x1000000>; + + l2: l2-cache-controller@ac0000 { + compatible = "marvell,tauros3-cache"; + reg = <0xac0000 0x1000>; + cache-unified; + cache-level = <2>; + }; + + gic: interrupt-controller@ad1000 { + compatible = "arm,cortex-a9-gic"; + reg = <0xad1000 0x1000>, <0xad0100 0x0100>; + interrupt-controller; + #interrupt-cells = <3>; + }; + + local-timer@ad0600 { + compatible = "arm,cortex-a9-twd-timer"; + reg = <0xad0600 0x20>; + interrupts = <GIC_PPI 13 IRQ_TYPE_LEVEL_HIGH>; + clocks = <&sysclk>; + }; + + apb@e80000 { + compatible = "simple-bus"; + #address-cells = <1>; + #size-cells = <1>; + + ranges = <0 0xe80000 0x10000>; + interrupt-parent = <&aic>; + + timer0: timer@2c00 { + compatible = "snps,dw-apb-timer"; + reg = <0x2c00 0x14>; + interrupts = <8>; + clocks = <&cfgclk>; + clock-names = "timer"; + status = "okay"; + }; + + timer1: timer@2c14 { + compatible = "snps,dw-apb-timer"; + reg = <0x2c14 0x14>; + interrupts = <9>; + clocks = <&cfgclk>; + clock-names = "timer"; + status = "okay"; + }; + + timer2: timer@2c28 { + compatible = "snps,dw-apb-timer"; + reg = <0x2c28 0x14>; + interrupts = <10>; + clocks = <&cfgclk>; + clock-names = "timer"; + status = "disabled"; + }; + + timer3: timer@2c3c { + compatible = "snps,dw-apb-timer"; + reg = <0x2c3c 0x14>; + interrupts = <11>; + clocks = <&cfgclk>; + clock-names = "timer"; + status = "disabled"; + }; + + timer4: timer@2c50 { + compatible = "snps,dw-apb-timer"; + reg = <0x2c50 0x14>; + interrupts = <12>; + clocks = <&cfgclk>; + clock-names = "timer"; + status = "disabled"; + }; + + timer5: timer@2c64 { + compatible = "snps,dw-apb-timer"; + reg = <0x2c64 0x14>; + interrupts = <13>; + clocks = <&cfgclk>; + clock-names = "timer"; + status = "disabled"; + }; + + timer6: timer@2c78 { + compatible = "snps,dw-apb-timer"; + reg = <0x2c78 0x14>; + interrupts = <14>; + clocks = <&cfgclk>; + clock-names = "timer"; + status = "disabled"; + }; + + timer7: timer@2c8c { + compatible = "snps,dw-apb-timer"; + reg = <0x2c8c 0x14>; + interrupts = <15>; + clocks = <&cfgclk>; + clock-names = "timer"; + status = "disabled"; + }; + + aic: interrupt-controller@3000 { + compatible = "snps,dw-apb-ictl"; + reg = <0x3000 0xc00>; + interrupt-controller; + #interrupt-cells = <1>; + interrupt-parent = <&gic>; + interrupts = <GIC_SPI 3 IRQ_TYPE_LEVEL_HIGH>; + }; + }; + + apb@fc0000 { + compatible = "simple-bus"; + #address-cells = <1>; + #size-cells = <1>; + + ranges = <0 0xfc0000 0x10000>; + interrupt-parent = <&sic>; + + uart0: serial@9000 { + compatible = "snps,dw-apb-uart"; + reg = <0x9000 0x100>; + reg-shift = <2>; + reg-io-width = <1>; + interrupts = <8>; + clocks = <&smclk>; + status = "disabled"; + }; + + uart1: serial@a000 { + compatible = "snps,dw-apb-uart"; + reg = <0xa000 0x100>; + reg-shift = <2>; + reg-io-width = <1>; + interrupts = <9>; + clocks = <&smclk>; + status = "disabled"; + }; + + uart2: serial@b000 { + compatible = "snps,dw-apb-uart"; + reg = <0xb000 0x100>; + reg-shift = <2>; + reg-io-width = <1>; + interrupts = <10>; + clocks = <&smclk>; + status = "disabled"; + }; + + sic: interrupt-controller@e000 { + compatible = "snps,dw-apb-ictl"; + reg = <0xe000 0x400>; + interrupt-controller; + #interrupt-cells = <1>; + interrupt-parent = <&gic>; + interrupts = <GIC_SPI 15 IRQ_TYPE_LEVEL_HIGH>; + }; + }; + }; +};