Message ID | 20170228063535.32069-12-afaerber@suse.de (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Hi, On Tue, Feb 28, 2017 at 07:35:21AM +0100, Andreas Färber wrote: > +/dts-v1/; > + > +#include "s500-guitar.dtsi" > + > +/ { > + compatible = "lemaker,guitar-bb-rev-b", "lemaker,guitar", "actions,s500"; > + model = "LeMaker Guitar Base Board rev. B"; > + > + aliases { > + serial3 = &uart3; > + }; > + > + chosen { > + stdout-path = "serial3:115200n8"; > + }; > +}; > + > +&uart3 { > + status = "okay"; > +}; > +#include "s500.dtsi" > + > +/ { > + compatible = "lemaker,guitar", "actions,s500"; > + > + /delete-node/ memory; Eww. Is this just bodging around skeleton.dtsi? > + > + memory@0 { > + device_type = "memory"; > + reg = <0x0 0x40000000>; > + }; > +}; > +#include "skeleton.dtsi" Please don't include skeleton.dtsi. Please add the relevant nodes and properties explciitly to your dts{i,} files. > + > +#include <dt-bindings/interrupt-controller/arm-gic.h> > + > +/ { Please define your #address-cells and #size-cells here. If you want, add an empty /chosen node (not strictly necessary since your dts file has a non-empty one anyhow). Thanks, Mark.
Hi Mark, Am 28.02.2017 um 13:32 schrieb Mark Rutland: > On Tue, Feb 28, 2017 at 07:35:21AM +0100, Andreas Färber wrote: >> +/dts-v1/; >> + >> +#include "s500-guitar.dtsi" >> + >> +/ { >> + compatible = "lemaker,guitar-bb-rev-b", "lemaker,guitar", "actions,s500"; >> + model = "LeMaker Guitar Base Board rev. B"; >> + >> + aliases { >> + serial3 = &uart3; >> + }; >> + >> + chosen { >> + stdout-path = "serial3:115200n8"; >> + }; >> +}; >> + >> +&uart3 { >> + status = "okay"; >> +}; > >> +#include "s500.dtsi" >> + >> +/ { >> + compatible = "lemaker,guitar", "actions,s500"; >> + >> + /delete-node/ memory; > > Eww. Is this just bodging around skeleton.dtsi? I guess so: Working around its hardcoded name without unit address, not finding a /rename-node/ to that effect. >> + >> + memory@0 { >> + device_type = "memory"; >> + reg = <0x0 0x40000000>; >> + }; >> +}; > >> +#include "skeleton.dtsi" > > Please don't include skeleton.dtsi. Wasn't aware that was permissible. I now see it has been updated with a textual comment, which predates my past uses of skeleton.dtsi - for other pending work such as FM4 and XMC4500 I only noticed it was moved out of armv7m.dtsi so that dtc started spewing scary messages. ;) A #warning might be a more effective way to make people aware of its deprecation - but sadly we have users that predate #include: $ git grep /include/ -- arch/arm/boot/dts/ | grep skeleton.dtsi | wc --lines 32 $ git grep /include/ -- arch/arm/boot/dts/ | grep skeleton64.dtsi | wc --lines 0 $ git grep skeleton -- arch/arm/boot/dts/ | wc --lines 117 Might updating those 32 users be a suitable Outreachy project (CC'ed), to then get the remaining 85 occurrences to be eliminated by their maintainers, so that it doesn't get copied for new SoCs any more? :) > Please add the relevant nodes and > properties explciitly to your dts{i,} files. Great, will do. But this series has grown too large to resend just for such nits. Is there a chance we can get initial patches queued on some arm-soc for-next branch soonish? It seems -rc1 pulls were merged 5 days ago? Regards, Andreas
On Tue, Feb 28, 2017 at 04:13:00PM +0100, Andreas Färber wrote: > Am 28.02.2017 um 13:32 schrieb Mark Rutland: > > On Tue, Feb 28, 2017 at 07:35:21AM +0100, Andreas Färber wrote: > >> +#include "skeleton.dtsi" > > > > Please don't include skeleton.dtsi. > > Wasn't aware that was permissible. I now see it has been updated with a > textual comment, which predates my past uses of skeleton.dtsi - for > other pending work such as FM4 and XMC4500 I only noticed it was moved > out of armv7m.dtsi so that dtc started spewing scary messages. ;) > > A #warning might be a more effective way to make people aware of its > deprecation - but sadly we have users that predate #include: > > $ git grep /include/ -- arch/arm/boot/dts/ | grep skeleton.dtsi | wc --lines > 32 > $ git grep /include/ -- arch/arm/boot/dts/ | grep skeleton64.dtsi | wc > --lines > 0 > $ git grep skeleton -- arch/arm/boot/dts/ | wc --lines > 117 I deliberately didn't go that route, since people would blindly fix up the warning and mess it up (e.g. forgetting to add the required nodes). While it should be avoided for new dts, it's largely not problematic for old dts, and we can fix those up at our leisure. > > Please add the relevant nodes and > > properties explciitly to your dts{i,} files. > > Great, will do. > > But this series has grown too large to resend just for such nits. Is > there a chance we can get initial patches queued on some arm-soc > for-next branch soonish? It seems -rc1 pulls were merged 5 days ago? There seem to be other comments on this series, and I was under the impression that arm-soc generally pulled branches. Even if you're not going to repost, surely you can fold in the fixup before sending the pull request? Thanks, Mark.
diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile index 0118084..578a20b 100644 --- a/arch/arm/boot/dts/Makefile +++ b/arch/arm/boot/dts/Makefile @@ -638,6 +638,8 @@ dtb-$(CONFIG_ARCH_ORION5X) += \ orion5x-maxtor-shared-storage-2.dtb \ orion5x-netgear-wnr854t.dtb \ orion5x-rd88f5182-nas.dtb +dtb-$(CONFIG_ARCH_ACTIONS) += \ + s500-guitar-bb-rev-b.dtb dtb-$(CONFIG_ARCH_PRIMA2) += \ prima2-evb.dtb dtb-$(CONFIG_ARCH_OXNAS) += \ diff --git a/arch/arm/boot/dts/s500-guitar-bb-rev-b.dts b/arch/arm/boot/dts/s500-guitar-bb-rev-b.dts new file mode 100644 index 0000000..834b71d --- /dev/null +++ b/arch/arm/boot/dts/s500-guitar-bb-rev-b.dts @@ -0,0 +1,26 @@ +/* + * Copyright (c) 2016-2017 Andreas Färber + * + * SPDX-License-Identifier: (GPL-2.0+ OR MIT) + */ + +/dts-v1/; + +#include "s500-guitar.dtsi" + +/ { + compatible = "lemaker,guitar-bb-rev-b", "lemaker,guitar", "actions,s500"; + model = "LeMaker Guitar Base Board rev. B"; + + aliases { + serial3 = &uart3; + }; + + chosen { + stdout-path = "serial3:115200n8"; + }; +}; + +&uart3 { + status = "okay"; +}; diff --git a/arch/arm/boot/dts/s500-guitar.dtsi b/arch/arm/boot/dts/s500-guitar.dtsi new file mode 100644 index 0000000..31c5def --- /dev/null +++ b/arch/arm/boot/dts/s500-guitar.dtsi @@ -0,0 +1,24 @@ +/* + * LeMaker Guitar SoM + * + * Copyright (c) 2016-2017 Andreas Färber + * + * SPDX-License-Identifier: (GPL-2.0+ OR MIT) + */ + +#include "s500.dtsi" + +/ { + compatible = "lemaker,guitar", "actions,s500"; + + /delete-node/ memory; + + memory@0 { + device_type = "memory"; + reg = <0x0 0x40000000>; + }; +}; + +&timer { + clocks = <&hosc>; +}; diff --git a/arch/arm/boot/dts/s500.dtsi b/arch/arm/boot/dts/s500.dtsi new file mode 100644 index 0000000..1973181 --- /dev/null +++ b/arch/arm/boot/dts/s500.dtsi @@ -0,0 +1,170 @@ +/* + * Actions Semi S500 SoC + * + * Copyright (c) 2016-2017 Andreas Färber + * + * SPDX-License-Identifier: (GPL-2.0+ OR MIT) + */ + +#include "skeleton.dtsi" + +#include <dt-bindings/interrupt-controller/arm-gic.h> + +/ { + compatible = "actions,s500"; + interrupt-parent = <&gic>; + + cpus { + #address-cells = <1>; + #size-cells = <0>; + + cpu0: cpu@0 { + device_type = "cpu"; + compatible = "arm,cortex-a9"; + reg = <0x0>; + }; + + cpu1: cpu@1 { + device_type = "cpu"; + compatible = "arm,cortex-a9"; + reg = <0x1>; + }; + + cpu2: cpu@2 { + device_type = "cpu"; + compatible = "arm,cortex-a9"; + reg = <0x2>; + }; + + cpu3: cpu@3 { + device_type = "cpu"; + compatible = "arm,cortex-a9"; + reg = <0x3>; + }; + }; + + arm-pmu { + compatible = "arm,cortex-a9-pmu"; + interrupts = <GIC_SPI 4 IRQ_TYPE_LEVEL_HIGH>, + <GIC_SPI 5 IRQ_TYPE_LEVEL_HIGH>, + <GIC_SPI 6 IRQ_TYPE_LEVEL_HIGH>, + <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>; + interrupt-affinity = <&cpu0>, <&cpu1>, <&cpu2>, <&cpu3>; + }; + + hosc: hosc { + compatible = "fixed-clock"; + clock-frequency = <24000000>; + #clock-cells = <0>; + }; + + soc { + compatible = "simple-bus"; + #address-cells = <1>; + #size-cells = <1>; + ranges; + + scu: scu@b0020000 { + compatible = "arm,cortex-a9-scu"; + reg = <0xb0020000 0x100>; + }; + + global_timer: timer@b0020200 { + compatible = "arm,cortex-a9-global-timer"; + reg = <0xb0020200 0x100>; + interrupts = <GIC_PPI 0 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_EDGE_RISING)>; + status = "disabled"; + }; + + twd_timer: timer@b0020600 { + compatible = "arm,cortex-a9-twd-timer"; + reg = <0xb0020600 0x20>; + interrupts = <GIC_PPI 2 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_EDGE_RISING)>; + status = "disabled"; + }; + + twd_wdt: wdt@b0020620 { + compatible = "arm,cortex-a9-twd-wdt"; + reg = <0xb0020620 0xe0>; + interrupts = <GIC_PPI 3 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_EDGE_RISING)>; + status = "disabled"; + }; + + gic: interrupt-controller@b0021000 { + compatible = "arm,cortex-a9-gic"; + reg = <0xb0021000 0x1000>, + <0xb0020100 0x0100>; + interrupt-controller; + #interrupt-cells = <3>; + }; + + l2: cache-controller@b0022000 { + compatible = "arm,pl310-cache"; + reg = <0xb0022000 0x1000>; + cache-unified; + cache-level = <2>; + interrupts = <GIC_SPI 55 IRQ_TYPE_LEVEL_HIGH>; + arm,tag-latency = <3 3 2>; + arm,data-latency = <5 3 3>; + }; + + uart0: serial@b0120000 { + compatible = "actions,s500-uart", "actions,owl-uart"; + reg = <0xb0120000 0x2000>; + interrupts = <GIC_SPI 29 IRQ_TYPE_LEVEL_HIGH>; + status = "disabled"; + }; + + uart1: serial@b0122000 { + compatible = "actions,s500-uart", "actions,owl-uart"; + reg = <0xb0122000 0x2000>; + interrupts = <GIC_SPI 30 IRQ_TYPE_LEVEL_HIGH>; + status = "disabled"; + }; + + uart2: serial@b0124000 { + compatible = "actions,s500-uart", "actions,owl-uart"; + reg = <0xb0124000 0x2000>; + interrupts = <GIC_SPI 31 IRQ_TYPE_LEVEL_HIGH>; + status = "disabled"; + }; + + uart3: serial@b0126000 { + compatible = "actions,s500-uart", "actions,owl-uart"; + reg = <0xb0126000 0x2000>; + interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>; + status = "disabled"; + }; + + uart4: serial@b0128000 { + compatible = "actions,s500-uart", "actions,owl-uart"; + reg = <0xb0128000 0x2000>; + interrupts = <GIC_SPI 33 IRQ_TYPE_LEVEL_HIGH>; + status = "disabled"; + }; + + uart5: serial@b012a000 { + compatible = "actions,s500-uart", "actions,owl-uart"; + reg = <0xb012a000 0x2000>; + interrupts = <GIC_SPI 34 IRQ_TYPE_LEVEL_HIGH>; + status = "disabled"; + }; + + uart6: serial@b012c000 { + compatible = "actions,s500-uart", "actions,owl-uart"; + reg = <0xb012c000 0x2000>; + interrupts = <GIC_SPI 35 IRQ_TYPE_LEVEL_HIGH>; + status = "disabled"; + }; + + timer: timer@b0168000 { + compatible = "actions,s500-timer", "actions,owl-timer"; + reg = <0xb0168000 0x8000>; + interrupts = <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>, + <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>, + <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>, + <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>; + interrupt-names = "2Hz0", "2Hz1", "Timer0", "Timer1"; + }; + }; +};
Signed-off-by: Andreas Färber <afaerber@suse.de> --- v2 -> v3: * Fixed uart2 reg offset * Enlarged timer reg size * Added 2 Hz timer interrupts, interrupt-names * Disabled CPUs 1-3 for now (cf. later patches) * Added Cortex-A9 SCU, global timer, TWD timer/wdt nodes * Added HOSC clock for timer v1 -> v2: * Reworded subject * Updated ARCH_OWL to ARCH_ACTIONS (Arnd) * Adopted "actions" vendor prefix * Dropped irq.h include * Added memory@0 node for Guitar SoM * Dropped bogus uart3 clock-frequency * Added device_type for CPU nodes * Fixed UART reg size * Adopted SPDX-License-Identifier (Rob) * Added remaining UART nodes * Added timer node arch/arm/boot/dts/Makefile | 2 + arch/arm/boot/dts/s500-guitar-bb-rev-b.dts | 26 +++++ arch/arm/boot/dts/s500-guitar.dtsi | 24 ++++ arch/arm/boot/dts/s500.dtsi | 170 +++++++++++++++++++++++++++++ 4 files changed, 222 insertions(+) create mode 100644 arch/arm/boot/dts/s500-guitar-bb-rev-b.dts create mode 100644 arch/arm/boot/dts/s500-guitar.dtsi create mode 100644 arch/arm/boot/dts/s500.dtsi