diff mbox

[v2,1/8] arm64: dts: db820c: add basic board support

Message ID 1466529769-2674-2-git-send-email-srinivas.kandagatla@linaro.org (mailing list archive)
State New, archived
Headers show

Commit Message

Srinivas Kandagatla June 21, 2016, 5:22 p.m. UTC
This patch adds apq8096 db820c basic support with serial port.

Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
---
 arch/arm64/boot/dts/qcom/Makefile            |  1 +
 arch/arm64/boot/dts/qcom/apq8096-db820c.dts  | 21 +++++++++++++++++
 arch/arm64/boot/dts/qcom/apq8096-db820c.dtsi | 34 ++++++++++++++++++++++++++++
 3 files changed, 56 insertions(+)
 create mode 100644 arch/arm64/boot/dts/qcom/apq8096-db820c.dts
 create mode 100644 arch/arm64/boot/dts/qcom/apq8096-db820c.dtsi

Comments

Bjorn Andersson June 22, 2016, 4:49 a.m. UTC | #1
On Tue 21 Jun 10:22 PDT 2016, Srinivas Kandagatla wrote:

[..]
> diff --git a/arch/arm64/boot/dts/qcom/apq8096-db820c.dts b/arch/arm64/boot/dts/qcom/apq8096-db820c.dts
[..]
> +
> +/ {
> +	model = "Qualcomm Technologies, Inc. DB820c";
> +	compatible = "qcom,apq8096-sbc";

I'm still not buying the concept of this being the one and only
single-board-computer.

If this compatible fully and exclusively identifies this particular
board then dtbTool should be updated to follow the product name
"qcom,apq8096-db820c". If on the other hand this identifies a class of
single-board-computers, then the compatible should list both
"qcom,apq8096-dtb820c" and "qcom,apq8096-sbc".



Further more, the ePAPR defines this property as:
"Specifies a list of platform architectures with which this platform is
compatible. This property can be used by operating systems in selecting
platform specific code."

So I think we should follow the common pattern of having the least
significant entry being "qcom,apq8096".

> +};

Regards,
Bjorn
Srinivas Kandagatla June 22, 2016, 8:52 a.m. UTC | #2
On 22/06/16 05:49, Bjorn Andersson wrote:
> On Tue 21 Jun 10:22 PDT 2016, Srinivas Kandagatla wrote:
>
> [..]
>> diff --git a/arch/arm64/boot/dts/qcom/apq8096-db820c.dts b/arch/arm64/boot/dts/qcom/apq8096-db820c.dts
> [..]
>> +
>> +/ {
>> +	model = "Qualcomm Technologies, Inc. DB820c";
>> +	compatible = "qcom,apq8096-sbc";
>
> I'm still not buying the concept of this being the one and only
> single-board-computer.
>
+1

AFAIK, The problem is the dtbTool. dtbTool has predefined all the 
platform names along with its platform ID's [1] for auto generating 
board-id, pmic-id and soc-id. dtbTool checks the compatible strings 
along with soc name with its static list, it would fail if it did not 
find a matching combination of soc,platform compatible.

Either we have to cope up with this and have a compatbile strings which 
keep dtbTool happy
  or
Keep patching dtbtool to be more flexible.

There is another problem with dtbTool, We can not use dtbTool with new 
boards from other vendors with own board names, like SD600 or IFC6410 
and so..


IMO, we should patch dtbTool to make it more flexible to cope up with 
situations like this.

> If this compatible fully and exclusively identifies this particular
> board then dtbTool should be updated to follow the product name
> "qcom,apq8096-db820c". If on the other hand this identifies a class of
> single-board-computers, then the compatible should list both
> "qcom,apq8096-dtb820c" and "qcom,apq8096-sbc".

Am not sure this would actually work when we have two boards with same 
sbc platform ID. Which one would the bootloader pick? and on what basis?

>
>
>
> Further more, the ePAPR defines this property as:
> "Specifies a list of platform architectures with which this platform is
> compatible. This property can be used by operating systems in selecting
> platform specific code."
>
> So I think we should follow the common pattern of having the least
> significant entry being "qcom,apq8096".
I agree.

Thanks,
srini

[1] https://source.codeaurora.org/quic/kernel/skales/tree/dtbTool#n83



>
>> +};
>
> Regards,
> Bjorn
>
Mark Rutland June 22, 2016, 1:06 p.m. UTC | #3
On Tue, Jun 21, 2016 at 06:22:42PM +0100, Srinivas Kandagatla wrote:
> +	chosen {
> +		stdout-path = "serial0";
> +	};

Please add the configuration (e.g. make this "serial0:115200n8"), as per
Documentation/devicetree/bindings/chosen.txt, so that we're not relying
on implicit defaults.

Otherwise this looks ok.

Thanks,
Mark.
Bjorn Andersson June 22, 2016, 4:04 p.m. UTC | #4
On Wed 22 Jun 01:52 PDT 2016, Srinivas Kandagatla wrote:

> 
> 
> On 22/06/16 05:49, Bjorn Andersson wrote:
> >On Tue 21 Jun 10:22 PDT 2016, Srinivas Kandagatla wrote:
> >
> >[..]
> >>diff --git a/arch/arm64/boot/dts/qcom/apq8096-db820c.dts b/arch/arm64/boot/dts/qcom/apq8096-db820c.dts
> >[..]
> >>+
> >>+/ {
> >>+	model = "Qualcomm Technologies, Inc. DB820c";
> >>+	compatible = "qcom,apq8096-sbc";
> >
> >I'm still not buying the concept of this being the one and only
> >single-board-computer.
> >
> +1
> 
> AFAIK, The problem is the dtbTool. dtbTool has predefined all the platform
> names along with its platform ID's [1] for auto generating board-id, pmic-id
> and soc-id. dtbTool checks the compatible strings along with soc name with
> its static list, it would fail if it did not find a matching combination of
> soc,platform compatible.
> 
> Either we have to cope up with this and have a compatbile strings which keep
> dtbTool happy
>  or
> Keep patching dtbtool to be more flexible.

dtbTool is unfortunately broken if it can't handle unknown compatibles.

> 
> There is another problem with dtbTool, We can not use dtbTool with new
> boards from other vendors with own board names, like SD600 or IFC6410 and
> so..
> 

Which means that everyone will, just like in Android-land, ship their
products with the one-and-only-supported qcom,apq8096-sbc.

If at least dtbTool would skip (and potentially warn about) unknown
entries vendors could add their specific name and then have the sbc
compatible, allowing for compatibility while dtbTool is updated.

> 
> IMO, we should patch dtbTool to make it more flexible to cope up with
> situations like this.
> 
> >If this compatible fully and exclusively identifies this particular
> >board then dtbTool should be updated to follow the product name
> >"qcom,apq8096-db820c". If on the other hand this identifies a class of
> >single-board-computers, then the compatible should list both
> >"qcom,apq8096-dtb820c" and "qcom,apq8096-sbc".
> 
> Am not sure this would actually work when we have two boards with same sbc
> platform ID. Which one would the bootloader pick? and on what basis?
> 

In Android land you don't have this problem, you know which zImage and
which set of dtbs you should put into your boot.img. So based on above
problem (requirement to update dtbTool) and the lack of need companies
will continue to ship their products as "mtp" or "sbc".

Regards,
Bjorn
diff mbox

Patch

diff --git a/arch/arm64/boot/dts/qcom/Makefile b/arch/arm64/boot/dts/qcom/Makefile
index fa1f661..5dd05de 100644
--- a/arch/arm64/boot/dts/qcom/Makefile
+++ b/arch/arm64/boot/dts/qcom/Makefile
@@ -1,5 +1,6 @@ 
 dtb-$(CONFIG_ARCH_QCOM)	+= apq8016-sbc.dtb msm8916-mtp.dtb
 dtb-$(CONFIG_ARCH_QCOM)	+= msm8996-mtp.dtb
+dtb-$(CONFIG_ARCH_QCOM)	+= apq8096-db820c.dtb
 
 always		:= $(dtb-y)
 subdir-y	:= $(dts-dirs)
diff --git a/arch/arm64/boot/dts/qcom/apq8096-db820c.dts b/arch/arm64/boot/dts/qcom/apq8096-db820c.dts
new file mode 100644
index 0000000..c1d8919
--- /dev/null
+++ b/arch/arm64/boot/dts/qcom/apq8096-db820c.dts
@@ -0,0 +1,21 @@ 
+/*
+ * Copyright (c) 2014-2016, 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.
+ */
+
+/dts-v1/;
+
+#include "apq8096-db820c.dtsi"
+
+/ {
+	model = "Qualcomm Technologies, Inc. DB820c";
+	compatible = "qcom,apq8096-sbc";
+};
diff --git a/arch/arm64/boot/dts/qcom/apq8096-db820c.dtsi b/arch/arm64/boot/dts/qcom/apq8096-db820c.dtsi
new file mode 100644
index 0000000..01916a5
--- /dev/null
+++ b/arch/arm64/boot/dts/qcom/apq8096-db820c.dtsi
@@ -0,0 +1,34 @@ 
+/*
+ * Copyright (c) 2014-2016, 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 "msm8996.dtsi"
+
+/ {
+	aliases {
+		serial0 = &blsp2_uart1;
+	};
+
+	chosen {
+		stdout-path = "serial0";
+	};
+
+	soc {
+		serial@75b0000 {
+			label = "LS-UART1";
+			status = "okay";
+			pinctrl-names = "default", "sleep";
+			pinctrl-0 = <&blsp2_uart1_2pins_default>;
+			pinctrl-1 = <&blsp2_uart1_2pins_sleep>;
+		};
+	};
+};