From: Olof Johansson <olof@lixom.net>
To: Rohit Vaswani <rvaswani@codeaurora.org>
Cc: David Brown <davidb@codeaurora.org>,
Rob Herring <rob.herring@calxeda.com>,
Pawel Moll <pawel.moll@arm.com>,
Mark Rutland <mark.rutland@arm.com>,
Stephen Warren <swarren@wwwdotorg.org>,
Ian Campbell <ian.campbell@citrix.com>,
Russell King <linux@arm.linux.org.uk>,
Daniel Walker <dwalker@fifo99.com>,
Bryan Huntsman <bryanh@codeaurora.org>,
devicetree@vger.kernel.org, linux-arm-kernel@lists.infradead.org,
linux-kernel@vger.kernel.org, linux-arm-msm@vger.kernel.org
Subject: Re: [PATCHv3 1/2] ARM: msm: Add support for APQ8074 Dragonboard
Date: Fri, 6 Sep 2013 14:50:51 -0700 [thread overview]
Message-ID: <20130906215051.GA29253@quad.lixom.net> (raw)
In-Reply-To: <1378495943-2572-1-git-send-email-rvaswani@codeaurora.org>
Hi,
Some comments below.
On Fri, Sep 06, 2013 at 12:32:22PM -0700, Rohit Vaswani wrote:
> This patch adds basic board support for APQ8074 Dragonboard
> which belongs to the Snapdragon 800 family.
> For now, just support a basic machine with device tree.
>
> Signed-off-by: Rohit Vaswani <rvaswani@codeaurora.org>
> ---
> arch/arm/boot/dts/Makefile | 3 ++-
> arch/arm/boot/dts/apq8074-dragonboard.dts | 6 ++++++
> arch/arm/boot/dts/msm8974.dtsi | 35 +++++++++++++++++++++++++++++++
> arch/arm/mach-msm/Kconfig | 20 ++++++++++++++++--
> arch/arm/mach-msm/Makefile | 1 +
> arch/arm/mach-msm/board-dt-8974.c | 24 +++++++++++++++++++++
> 6 files changed, 86 insertions(+), 3 deletions(-)
> create mode 100644 arch/arm/boot/dts/apq8074-dragonboard.dts
> create mode 100644 arch/arm/boot/dts/msm8974.dtsi
> create mode 100644 arch/arm/mach-msm/board-dt-8974.c
>
> diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile
> index 641b3c9a..bea54a7 100644
> --- a/arch/arm/boot/dts/Makefile
> +++ b/arch/arm/boot/dts/Makefile
> @@ -97,7 +97,8 @@ dtb-$(CONFIG_ARCH_KIRKWOOD) += kirkwood-cloudbox.dtb \
> kirkwood-openblocks_a6.dtb
> dtb-$(CONFIG_ARCH_MARCO) += marco-evb.dtb
> dtb-$(CONFIG_ARCH_MSM) += msm8660-surf.dtb \
> - msm8960-cdp.dtb
> + msm8960-cdp.dtb \
> + apq8074-dragonboard.dtb
Please add boards alphabetically.
> dtb-$(CONFIG_ARCH_MVEBU) += armada-370-db.dtb \
> armada-370-mirabox.dtb \
> armada-370-rd.dtb \
> diff --git a/arch/arm/boot/dts/apq8074-dragonboard.dts b/arch/arm/boot/dts/apq8074-dragonboard.dts
> new file mode 100644
> index 0000000..5b7b6a0
> --- /dev/null
> +++ b/arch/arm/boot/dts/apq8074-dragonboard.dts
arch/arm/boot/dts/ is getting really crowded. It's been working best if the SoC
family or vendor is used as a prefix to keep things a bit more organized. In
that spirit, prefixing these with msm-<foo> makes sense. Can you please do so?
> @@ -0,0 +1,6 @@
> +/include/ "msm8974.dtsi"
> +
> +/ {
> + model = "Qualcomm APQ8074 Dragonboard";
> + compatible = "qcom,apq8074-dragonboard", "qcom,apq8074";
> +};
Ok, I'm all for merging a early minimal dts file, but things like memory and
a default bootargs tend to make sense.
> diff --git a/arch/arm/boot/dts/msm8974.dtsi b/arch/arm/boot/dts/msm8974.dtsi
> new file mode 100644
> index 0000000..f04b643
> --- /dev/null
> +++ b/arch/arm/boot/dts/msm8974.dtsi
> @@ -0,0 +1,35 @@
> +/dts-v1/;
> +
> +/include/ "skeleton.dtsi"
> +
> +/ {
> + model = "Qualcomm MSM8974";
> + compatible = "qcom,msm8974";
the board uses "qcom,apq8074" and this overrides this. Which way is it?
> + interrupt-parent = <&intc>;
> +
> + soc: soc { };
For files that include this it's ok to use the &phandle syntax, but in this
base dtsi, please use proper structure. In other words, move the contents of
the soc node up above instead.
> +};
> +
> +&soc {
> + #address-cells = <1>;
> + #size-cells = <1>;
> + ranges;
> + compatible = "simple-bus";
> +
> + intc: interrupt-controller@f9000000 {
> + compatible = "qcom,msm-qgic2";
> + interrupt-controller;
> + #interrupt-cells = <3>;
> + reg = <0xf9000000 0x1000>,
> + <0xf9002000 0x1000>;
> + };
> +
> + timer {
> + compatible = "arm,armv7-timer";
> + interrupts = <1 2 0xf08>,
> + <1 3 0xf08>,
> + <1 4 0xf08>,
> + <1 1 0xf08>;
> + clock-frequency = <19200000>;
> + };
> +};
It'd make a lot of sense to include at least cpu nodes here as well, and
ideally basics for the drivers you have already merged, such as uarts.
> diff --git a/arch/arm/mach-msm/Kconfig b/arch/arm/mach-msm/Kconfig
> index 905efc8..499e8fe 100644
> --- a/arch/arm/mach-msm/Kconfig
> +++ b/arch/arm/mach-msm/Kconfig
> @@ -1,12 +1,12 @@
> if ARCH_MSM
>
> comment "Qualcomm MSM SoC Type"
> - depends on (ARCH_MSM8X60 || ARCH_MSM8960)
> + depends on ARCH_MSM_DT
>
> choice
> prompt "Qualcomm MSM SoC Type"
> default ARCH_MSM7X00A
> - depends on !(ARCH_MSM8X60 || ARCH_MSM8960)
> + depends on !ARCH_MSM_DT
This has nothing to do with adding support for dragonboard. Please break
out the cleanup separately.
I'm not sure what the purpose of ARCH_MSM_DT is either, it just looks to
complicate matter here?
> +config ARCH_MSM8974
> + bool "MSM8974"
> + select ARM_GIC
> + select CPU_V7
> + select HAVE_ARM_ARCH_TIMER
> + select HAVE_SMP
> + select MSM_SCM if SMP
> + select USE_OF
> +
> +config ARCH_MSM_DT
> + def_bool y
> + depends on (ARCH_MSM8X60 || ARCH_MSM8960 || ARCH_MSM8974)
> +
> config MSM_HAS_DEBUG_UART_HS
> bool
>
> @@ -68,6 +81,7 @@ config MSM_SOC_REV_A
>
> config ARCH_MSM_ARM11
> bool
> +
> config ARCH_MSM_SCORPION
> bool
>
> @@ -75,6 +89,7 @@ config MSM_VIC
> bool
>
> menu "Qualcomm MSM Board Type"
> + depends on !ARCH_MSM_DT
>
> config MACH_HALIBUT
> depends on ARCH_MSM
> @@ -122,6 +137,7 @@ config MSM_SMD
>
> config MSM_GPIOMUX
> bool
> + depends on !ARCH_MSM_DT
> help
> Support for MSM V1 TLMM GPIOMUX architecture.
All of the above should be in a separate patch and motivated.
>
> diff --git a/arch/arm/mach-msm/Makefile b/arch/arm/mach-msm/Makefile
> index d257ff4..80e3b15 100644
> --- a/arch/arm/mach-msm/Makefile
> +++ b/arch/arm/mach-msm/Makefile
> @@ -29,5 +29,6 @@ obj-$(CONFIG_ARCH_MSM7X30) += board-msm7x30.o devices-msm7x30.o
> obj-$(CONFIG_ARCH_QSD8X50) += board-qsd8x50.o devices-qsd8x50.o
> obj-$(CONFIG_ARCH_MSM8X60) += board-dt-8660.o
> obj-$(CONFIG_ARCH_MSM8960) += board-dt-8960.o
> +obj-$(CONFIG_ARCH_MSM8974) += board-dt-8974.o
> obj-$(CONFIG_MSM_GPIOMUX) += gpiomux.o
> obj-$(CONFIG_ARCH_QSD8X50) += gpiomux-8x50.o
> diff --git a/arch/arm/mach-msm/board-dt-8974.c b/arch/arm/mach-msm/board-dt-8974.c
> new file mode 100644
> index 0000000..01ed8d0
> --- /dev/null
> +++ b/arch/arm/mach-msm/board-dt-8974.c
> @@ -0,0 +1,24 @@
> +/* Copyright (c) 2013, The Linux Foundation. All rights reserved.
> + *
> + * This program is free software; you can redistribute it and/or modify
> + * it under the terms of the GNU General Public License version 2 and
> + * only version 2 as published by the Free Software Foundation.
> + *
> + * This program is distributed in the hope that it will be useful,
> + * but WITHOUT ANY WARRANTY; without even the implied warranty of
> + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
> + * GNU General Public License for more details.
> + */
> +
> +#include <linux/of_platform.h>
> +#include <asm/mach/arch.h>
> +
> +static const char * const msm8974_dt_match[] __initconst = {
> + "qcom,msm8974",
> + "qcom,apq8074",
> + NULL
> +};
> +
> +DT_MACHINE_START(MSM8974_DT, "Qualcomm MSM (Flattened Device Tree)")
> + .dt_compat = msm8974_dt_match,
> +MACHINE_END
This file should be shared across SoCs. You should avoid adding a new dt board
file for every SoC like this.
-Olof
WARNING: multiple messages have this Message-ID (diff)
From: olof@lixom.net (Olof Johansson)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCHv3 1/2] ARM: msm: Add support for APQ8074 Dragonboard
Date: Fri, 6 Sep 2013 14:50:51 -0700 [thread overview]
Message-ID: <20130906215051.GA29253@quad.lixom.net> (raw)
In-Reply-To: <1378495943-2572-1-git-send-email-rvaswani@codeaurora.org>
Hi,
Some comments below.
On Fri, Sep 06, 2013 at 12:32:22PM -0700, Rohit Vaswani wrote:
> This patch adds basic board support for APQ8074 Dragonboard
> which belongs to the Snapdragon 800 family.
> For now, just support a basic machine with device tree.
>
> Signed-off-by: Rohit Vaswani <rvaswani@codeaurora.org>
> ---
> arch/arm/boot/dts/Makefile | 3 ++-
> arch/arm/boot/dts/apq8074-dragonboard.dts | 6 ++++++
> arch/arm/boot/dts/msm8974.dtsi | 35 +++++++++++++++++++++++++++++++
> arch/arm/mach-msm/Kconfig | 20 ++++++++++++++++--
> arch/arm/mach-msm/Makefile | 1 +
> arch/arm/mach-msm/board-dt-8974.c | 24 +++++++++++++++++++++
> 6 files changed, 86 insertions(+), 3 deletions(-)
> create mode 100644 arch/arm/boot/dts/apq8074-dragonboard.dts
> create mode 100644 arch/arm/boot/dts/msm8974.dtsi
> create mode 100644 arch/arm/mach-msm/board-dt-8974.c
>
> diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile
> index 641b3c9a..bea54a7 100644
> --- a/arch/arm/boot/dts/Makefile
> +++ b/arch/arm/boot/dts/Makefile
> @@ -97,7 +97,8 @@ dtb-$(CONFIG_ARCH_KIRKWOOD) += kirkwood-cloudbox.dtb \
> kirkwood-openblocks_a6.dtb
> dtb-$(CONFIG_ARCH_MARCO) += marco-evb.dtb
> dtb-$(CONFIG_ARCH_MSM) += msm8660-surf.dtb \
> - msm8960-cdp.dtb
> + msm8960-cdp.dtb \
> + apq8074-dragonboard.dtb
Please add boards alphabetically.
> dtb-$(CONFIG_ARCH_MVEBU) += armada-370-db.dtb \
> armada-370-mirabox.dtb \
> armada-370-rd.dtb \
> diff --git a/arch/arm/boot/dts/apq8074-dragonboard.dts b/arch/arm/boot/dts/apq8074-dragonboard.dts
> new file mode 100644
> index 0000000..5b7b6a0
> --- /dev/null
> +++ b/arch/arm/boot/dts/apq8074-dragonboard.dts
arch/arm/boot/dts/ is getting really crowded. It's been working best if the SoC
family or vendor is used as a prefix to keep things a bit more organized. In
that spirit, prefixing these with msm-<foo> makes sense. Can you please do so?
> @@ -0,0 +1,6 @@
> +/include/ "msm8974.dtsi"
> +
> +/ {
> + model = "Qualcomm APQ8074 Dragonboard";
> + compatible = "qcom,apq8074-dragonboard", "qcom,apq8074";
> +};
Ok, I'm all for merging a early minimal dts file, but things like memory and
a default bootargs tend to make sense.
> diff --git a/arch/arm/boot/dts/msm8974.dtsi b/arch/arm/boot/dts/msm8974.dtsi
> new file mode 100644
> index 0000000..f04b643
> --- /dev/null
> +++ b/arch/arm/boot/dts/msm8974.dtsi
> @@ -0,0 +1,35 @@
> +/dts-v1/;
> +
> +/include/ "skeleton.dtsi"
> +
> +/ {
> + model = "Qualcomm MSM8974";
> + compatible = "qcom,msm8974";
the board uses "qcom,apq8074" and this overrides this. Which way is it?
> + interrupt-parent = <&intc>;
> +
> + soc: soc { };
For files that include this it's ok to use the &phandle syntax, but in this
base dtsi, please use proper structure. In other words, move the contents of
the soc node up above instead.
> +};
> +
> +&soc {
> + #address-cells = <1>;
> + #size-cells = <1>;
> + ranges;
> + compatible = "simple-bus";
> +
> + intc: interrupt-controller at f9000000 {
> + compatible = "qcom,msm-qgic2";
> + interrupt-controller;
> + #interrupt-cells = <3>;
> + reg = <0xf9000000 0x1000>,
> + <0xf9002000 0x1000>;
> + };
> +
> + timer {
> + compatible = "arm,armv7-timer";
> + interrupts = <1 2 0xf08>,
> + <1 3 0xf08>,
> + <1 4 0xf08>,
> + <1 1 0xf08>;
> + clock-frequency = <19200000>;
> + };
> +};
It'd make a lot of sense to include at least cpu nodes here as well, and
ideally basics for the drivers you have already merged, such as uarts.
> diff --git a/arch/arm/mach-msm/Kconfig b/arch/arm/mach-msm/Kconfig
> index 905efc8..499e8fe 100644
> --- a/arch/arm/mach-msm/Kconfig
> +++ b/arch/arm/mach-msm/Kconfig
> @@ -1,12 +1,12 @@
> if ARCH_MSM
>
> comment "Qualcomm MSM SoC Type"
> - depends on (ARCH_MSM8X60 || ARCH_MSM8960)
> + depends on ARCH_MSM_DT
>
> choice
> prompt "Qualcomm MSM SoC Type"
> default ARCH_MSM7X00A
> - depends on !(ARCH_MSM8X60 || ARCH_MSM8960)
> + depends on !ARCH_MSM_DT
This has nothing to do with adding support for dragonboard. Please break
out the cleanup separately.
I'm not sure what the purpose of ARCH_MSM_DT is either, it just looks to
complicate matter here?
> +config ARCH_MSM8974
> + bool "MSM8974"
> + select ARM_GIC
> + select CPU_V7
> + select HAVE_ARM_ARCH_TIMER
> + select HAVE_SMP
> + select MSM_SCM if SMP
> + select USE_OF
> +
> +config ARCH_MSM_DT
> + def_bool y
> + depends on (ARCH_MSM8X60 || ARCH_MSM8960 || ARCH_MSM8974)
> +
> config MSM_HAS_DEBUG_UART_HS
> bool
>
> @@ -68,6 +81,7 @@ config MSM_SOC_REV_A
>
> config ARCH_MSM_ARM11
> bool
> +
> config ARCH_MSM_SCORPION
> bool
>
> @@ -75,6 +89,7 @@ config MSM_VIC
> bool
>
> menu "Qualcomm MSM Board Type"
> + depends on !ARCH_MSM_DT
>
> config MACH_HALIBUT
> depends on ARCH_MSM
> @@ -122,6 +137,7 @@ config MSM_SMD
>
> config MSM_GPIOMUX
> bool
> + depends on !ARCH_MSM_DT
> help
> Support for MSM V1 TLMM GPIOMUX architecture.
All of the above should be in a separate patch and motivated.
>
> diff --git a/arch/arm/mach-msm/Makefile b/arch/arm/mach-msm/Makefile
> index d257ff4..80e3b15 100644
> --- a/arch/arm/mach-msm/Makefile
> +++ b/arch/arm/mach-msm/Makefile
> @@ -29,5 +29,6 @@ obj-$(CONFIG_ARCH_MSM7X30) += board-msm7x30.o devices-msm7x30.o
> obj-$(CONFIG_ARCH_QSD8X50) += board-qsd8x50.o devices-qsd8x50.o
> obj-$(CONFIG_ARCH_MSM8X60) += board-dt-8660.o
> obj-$(CONFIG_ARCH_MSM8960) += board-dt-8960.o
> +obj-$(CONFIG_ARCH_MSM8974) += board-dt-8974.o
> obj-$(CONFIG_MSM_GPIOMUX) += gpiomux.o
> obj-$(CONFIG_ARCH_QSD8X50) += gpiomux-8x50.o
> diff --git a/arch/arm/mach-msm/board-dt-8974.c b/arch/arm/mach-msm/board-dt-8974.c
> new file mode 100644
> index 0000000..01ed8d0
> --- /dev/null
> +++ b/arch/arm/mach-msm/board-dt-8974.c
> @@ -0,0 +1,24 @@
> +/* Copyright (c) 2013, The Linux Foundation. All rights reserved.
> + *
> + * This program is free software; you can redistribute it and/or modify
> + * it under the terms of the GNU General Public License version 2 and
> + * only version 2 as published by the Free Software Foundation.
> + *
> + * This program is distributed in the hope that it will be useful,
> + * but WITHOUT ANY WARRANTY; without even the implied warranty of
> + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
> + * GNU General Public License for more details.
> + */
> +
> +#include <linux/of_platform.h>
> +#include <asm/mach/arch.h>
> +
> +static const char * const msm8974_dt_match[] __initconst = {
> + "qcom,msm8974",
> + "qcom,apq8074",
> + NULL
> +};
> +
> +DT_MACHINE_START(MSM8974_DT, "Qualcomm MSM (Flattened Device Tree)")
> + .dt_compat = msm8974_dt_match,
> +MACHINE_END
This file should be shared across SoCs. You should avoid adding a new dt board
file for every SoC like this.
-Olof
next prev parent reply other threads:[~2013-09-06 21:50 UTC|newest]
Thread overview: 32+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-09-06 19:32 [PATCHv3 1/2] ARM: msm: Add support for APQ8074 Dragonboard Rohit Vaswani
2013-09-06 19:32 ` Rohit Vaswani
2013-09-06 19:32 ` [PATCHv3 2/2] defconfig: msm_defconfig: Enable CONFIG_ARCH_MSM8974 Rohit Vaswani
2013-09-06 19:32 ` Rohit Vaswani
2013-09-06 19:53 ` [PATCHv3 1/2] ARM: msm: Add support for APQ8074 Dragonboard Josh Cartwright
2013-09-06 19:53 ` Josh Cartwright
2013-09-06 20:31 ` [PATCH] ARM: msm: Remove irqs-*.h files for DT based targets Stephen Boyd
2013-09-06 20:31 ` Stephen Boyd
2013-09-06 20:50 ` Stephen Boyd
2013-09-06 20:50 ` Stephen Boyd
2013-09-06 20:55 ` Josh Cartwright
2013-09-06 20:55 ` Josh Cartwright
2013-09-06 21:50 ` Olof Johansson [this message]
2013-09-06 21:50 ` [PATCHv3 1/2] ARM: msm: Add support for APQ8074 Dragonboard Olof Johansson
2013-09-09 17:48 ` Rohit Vaswani
2013-09-09 17:48 ` Rohit Vaswani
2013-09-09 19:17 ` Kumar Gala
2013-09-09 19:17 ` Kumar Gala
2013-09-09 19:29 ` Stephen Warren
2013-09-09 19:29 ` Stephen Warren
2013-09-09 19:48 ` Kumar Gala
2013-09-09 19:48 ` Kumar Gala
2013-09-09 21:21 ` Stephen Warren
2013-09-09 21:21 ` Stephen Warren
2013-09-09 21:25 ` Kumar Gala
2013-09-09 21:25 ` Kumar Gala
2013-09-09 21:42 ` Rohit Vaswani
2013-09-09 21:42 ` Rohit Vaswani
2013-09-09 22:04 ` Kumar Gala
2013-09-09 22:04 ` Kumar Gala
2013-09-09 22:30 ` Rohit Vaswani
2013-09-09 22:30 ` Rohit Vaswani
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20130906215051.GA29253@quad.lixom.net \
--to=olof@lixom.net \
--cc=bryanh@codeaurora.org \
--cc=davidb@codeaurora.org \
--cc=devicetree@vger.kernel.org \
--cc=dwalker@fifo99.com \
--cc=ian.campbell@citrix.com \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-arm-msm@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux@arm.linux.org.uk \
--cc=mark.rutland@arm.com \
--cc=pawel.moll@arm.com \
--cc=rob.herring@calxeda.com \
--cc=rvaswani@codeaurora.org \
--cc=swarren@wwwdotorg.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.