Patchwork [1/2] ARM: dts: mx6: Add mx6solo support

login
register
mail settings
Submitter Fabio Estevam
Date Sept. 9, 2013, 1 a.m.
Message ID <1378688408-8689-1-git-send-email-festevam@gmail.com>
Download mbox | patch
Permalink /patch/273466/
State New
Headers show

Comments

Fabio Estevam - Sept. 9, 2013, 1 a.m.
From: Fabio Estevam <fabio.estevam@freescale.com>

Allow booting a device tree kernel on mx6solo.

Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com>
---
 arch/arm/boot/dts/imx6s.dtsi   | 82 ++++++++++++++++++++++++++++++++++++++++++
 arch/arm/mach-imx/Kconfig      |  4 +--
 arch/arm/mach-imx/mach-imx6q.c |  3 +-
 3 files changed, 86 insertions(+), 3 deletions(-)
 create mode 100644 arch/arm/boot/dts/imx6s.dtsi
Shawn Guo - Sept. 9, 2013, 3:08 p.m.
On Sun, Sep 08, 2013 at 10:00:07PM -0300, Fabio Estevam wrote:
> From: Fabio Estevam <fabio.estevam@freescale.com>
> 
> Allow booting a device tree kernel on mx6solo.
> 
> Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com>
> ---
>  arch/arm/boot/dts/imx6s.dtsi   | 82 ++++++++++++++++++++++++++++++++++++++++++

The imx6s is not another SoC but just imx6dl with one core fused out.
This is the exactly same case as imx6q and imx6d. See commit dc13ba2
(ARM: imx: do not bring up unavailable cores) for how we handle that
in kernel.

Are you running into any problem to boot imx6s wandboard with
imx6dl-wandboard.dtb?

Shawn
Fabio Estevam - Sept. 9, 2013, 3:59 p.m.
On Mon, Sep 9, 2013 at 12:08 PM, Shawn Guo <shawn.guo@linaro.org> wrote:
> On Sun, Sep 08, 2013 at 10:00:07PM -0300, Fabio Estevam wrote:
>> From: Fabio Estevam <fabio.estevam@freescale.com>
>>
>> Allow booting a device tree kernel on mx6solo.
>>
>> Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com>
>> ---
>>  arch/arm/boot/dts/imx6s.dtsi   | 82 ++++++++++++++++++++++++++++++++++++++++++
>
> The imx6s is not another SoC but just imx6dl with one core fused out.
> This is the exactly same case as imx6q and imx6d. See commit dc13ba2
> (ARM: imx: do not bring up unavailable cores) for how we handle that
> in kernel.
>
> Are you running into any problem to boot imx6s wandboard with
> imx6dl-wandboard.dtb?

Ok, I made this test and it booted fine.

So I will change U-boot so that it searches for imx6dl-wandboard.dtb
instead of imx6s-wandboard.dtb.
robertcnelson@gmail.com - Sept. 9, 2013, 4:19 p.m.
On Mon, Sep 9, 2013 at 10:59 AM, Fabio Estevam <festevam@gmail.com> wrote:
> On Mon, Sep 9, 2013 at 12:08 PM, Shawn Guo <shawn.guo@linaro.org> wrote:
>> On Sun, Sep 08, 2013 at 10:00:07PM -0300, Fabio Estevam wrote:
>>> From: Fabio Estevam <fabio.estevam@freescale.com>
>>>
>>> Allow booting a device tree kernel on mx6solo.
>>>
>>> Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com>
>>> ---
>>>  arch/arm/boot/dts/imx6s.dtsi   | 82 ++++++++++++++++++++++++++++++++++++++++++
>>
>> The imx6s is not another SoC but just imx6dl with one core fused out.
>> This is the exactly same case as imx6q and imx6d. See commit dc13ba2
>> (ARM: imx: do not bring up unavailable cores) for how we handle that
>> in kernel.
>>
>> Are you running into any problem to boot imx6s wandboard with
>> imx6dl-wandboard.dtb?
>
> Ok, I made this test and it booted fine.
>
> So I will change U-boot so that it searches for imx6dl-wandboard.dtb
> instead of imx6s-wandboard.dtb.

Since there is no WiFi/Bluetooth on the "solo" vs the wandboard dual
lite, we should really still have a separate solo dtb file..

Regards,
Fabio Estevam - Sept. 9, 2013, 9:24 p.m.
On Mon, Sep 9, 2013 at 1:19 PM, Robert Nelson <robertcnelson@gmail.com> wrote:

>> Ok, I made this test and it booted fine.
>>
>> So I will change U-boot so that it searches for imx6dl-wandboard.dtb
>> instead of imx6s-wandboard.dtb.
>
> Since there is no WiFi/Bluetooth on the "solo" vs the wandboard dual
> lite, we should really still have a separate solo dtb file..

I think we could still represent the im6solo-wandboard using the
imx6dl-wandboard.dts.

In the case of lack of bcm4329 populated on a mx6solo board, the SDHC3
port will just not probe bcm4329 without any negative effect, right?
Shawn Guo - Sept. 10, 2013, 3:05 p.m.
On Tue, Sep 10, 2013 at 07:42:04AM -0700, Kevin Hilman wrote:
> Fabio Estevam <festevam@gmail.com> writes:
> 
> > On Mon, Sep 9, 2013 at 1:19 PM, Robert Nelson <robertcnelson@gmail.com> wrote:
> >
> >>> Ok, I made this test and it booted fine.
> >>>
> >>> So I will change U-boot so that it searches for imx6dl-wandboard.dtb
> >>> instead of imx6s-wandboard.dtb.
> >>
> >> Since there is no WiFi/Bluetooth on the "solo" vs the wandboard dual
> >> lite, we should really still have a separate solo dtb file..
> >
> > I think we could still represent the im6solo-wandboard using the
> > imx6dl-wandboard.dts.
> >
> > In the case of lack of bcm4329 populated on a mx6solo board, the SDHC3
> > port will just not probe bcm4329 without any negative effect, right?
> 
> I've noticed in my auto build/boot[1] that booting a wandboard solo with
> imx6dl-wandboard.dtb actually faults[2].  Just disabling usdhc2[3] makes
> it boot fine.
> 
> This only happens on current linus/HEAD.  v3.11 boots fine as does
> linux-next (as of next-20130910.)  

It may be because commit 2af502c (mmc: sdhci: request irq after
sdhci_init() is called) which is on linux-next right now hasn't landed
on mainline yet.

Shawn
Kevin Hilman - Sept. 10, 2013, 3:15 p.m.
On Tue, Sep 10, 2013 at 8:05 AM, Shawn Guo <shawn.guo@linaro.org> wrote:
> On Tue, Sep 10, 2013 at 07:42:04AM -0700, Kevin Hilman wrote:
>> Fabio Estevam <festevam@gmail.com> writes:
>>
>> > On Mon, Sep 9, 2013 at 1:19 PM, Robert Nelson <robertcnelson@gmail.com> wrote:
>> >
>> >>> Ok, I made this test and it booted fine.
>> >>>
>> >>> So I will change U-boot so that it searches for imx6dl-wandboard.dtb
>> >>> instead of imx6s-wandboard.dtb.
>> >>
>> >> Since there is no WiFi/Bluetooth on the "solo" vs the wandboard dual
>> >> lite, we should really still have a separate solo dtb file..
>> >
>> > I think we could still represent the im6solo-wandboard using the
>> > imx6dl-wandboard.dts.
>> >
>> > In the case of lack of bcm4329 populated on a mx6solo board, the SDHC3
>> > port will just not probe bcm4329 without any negative effect, right?
>>
>> I've noticed in my auto build/boot[1] that booting a wandboard solo with
>> imx6dl-wandboard.dtb actually faults[2].  Just disabling usdhc2[3] makes
>> it boot fine.
>>
>> This only happens on current linus/HEAD.  v3.11 boots fine as does
>> linux-next (as of next-20130910.)
>
> It may be because commit 2af502c (mmc: sdhci: request irq after
> sdhci_init() is called) which is on linux-next right now hasn't landed
> on mainline yet.

Yup, linus/HEAD + that commit makes things work again.  Thanks.

Kevin

Patch

diff --git a/arch/arm/boot/dts/imx6s.dtsi b/arch/arm/boot/dts/imx6s.dtsi
new file mode 100644
index 0000000..461f44c
--- /dev/null
+++ b/arch/arm/boot/dts/imx6s.dtsi
@@ -0,0 +1,82 @@ 
+/*
+ * Copyright 2013 Freescale Semiconductor, Inc.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation.
+ *
+ */
+
+#include "imx6dl-pinfunc.h"
+#include "imx6qdl.dtsi"
+
+/ {
+	cpus {
+		#address-cells = <1>;
+		#size-cells = <0>;
+
+		cpu@0 {
+			compatible = "arm,cortex-a9";
+			device_type = "cpu";
+			reg = <0>;
+			next-level-cache = <&L2>;
+		};
+	};
+
+	soc {
+		ocram: sram@00900000 {
+			compatible = "mmio-sram";
+			reg = <0x00900000 0x20000>;
+			clocks = <&clks 142>;
+		};
+
+		aips1: aips-bus@02000000 {
+			iomuxc: iomuxc@020e0000 {
+				compatible = "fsl,imx6dl-iomuxc";
+			};
+
+			pxp: pxp@020f0000 {
+				reg = <0x020f0000 0x4000>;
+				interrupts = <0 98 0x04>;
+			};
+
+			epdc: epdc@020f4000 {
+				reg = <0x020f4000 0x4000>;
+				interrupts = <0 97 0x04>;
+			};
+
+			lcdif: lcdif@020f8000 {
+				reg = <0x020f8000 0x4000>;
+				interrupts = <0 39 0x04>;
+			};
+		};
+
+		aips2: aips-bus@02100000 {
+			i2c4: i2c@021f8000 {
+				#address-cells = <1>;
+				#size-cells = <0>;
+				compatible = "fsl,imx1-i2c";
+				reg = <0x021f8000 0x4000>;
+				interrupts = <0 35 0x04>;
+				status = "disabled";
+			};
+		};
+	};
+};
+
+&ldb {
+	clocks = <&clks 33>, <&clks 34>,
+		 <&clks 39>, <&clks 40>,
+		 <&clks 135>, <&clks 136>;
+	clock-names = "di0_pll", "di1_pll",
+		      "di0_sel", "di1_sel",
+		      "di0", "di1";
+
+	lvds-channel@0 {
+		crtcs = <&ipu1 0>, <&ipu1 1>;
+	};
+
+	lvds-channel@1 {
+		crtcs = <&ipu1 0>, <&ipu1 1>;
+	};
+};
diff --git a/arch/arm/mach-imx/Kconfig b/arch/arm/mach-imx/Kconfig
index 29a8af6..9d96be8 100644
--- a/arch/arm/mach-imx/Kconfig
+++ b/arch/arm/mach-imx/Kconfig
@@ -784,7 +784,7 @@  config	SOC_IMX53
 	  This enables support for Freescale i.MX53 processor.
 
 config SOC_IMX6Q
-	bool "i.MX6 Quad/DualLite support"
+	bool "i.MX6 Quad/DualLite/Solo support"
 	select ARCH_HAS_CPUFREQ
 	select ARCH_HAS_OPP
 	select ARM_ERRATA_754322
@@ -809,7 +809,7 @@  config SOC_IMX6Q
 	select PM_OPP if PM
 
 	help
-	  This enables support for Freescale i.MX6 Quad processor.
+	  This enables support for Freescale i.MX6 Q/DL/S processors.
 
 config SOC_IMX6SL
 	bool "i.MX6 SoloLite support"
diff --git a/arch/arm/mach-imx/mach-imx6q.c b/arch/arm/mach-imx/mach-imx6q.c
index 85a1b51..3d22a6c 100644
--- a/arch/arm/mach-imx/mach-imx6q.c
+++ b/arch/arm/mach-imx/mach-imx6q.c
@@ -299,10 +299,11 @@  static void __init imx6q_timer_init(void)
 static const char *imx6q_dt_compat[] __initdata = {
 	"fsl,imx6dl",
 	"fsl,imx6q",
+	"fsl,imx6s",
 	NULL,
 };
 
-DT_MACHINE_START(IMX6Q, "Freescale i.MX6 Quad/DualLite (Device Tree)")
+DT_MACHINE_START(IMX6Q, "Freescale i.MX6 Q/DL/S (Device Tree)")
 	.smp		= smp_ops(imx_smp_ops),
 	.map_io		= imx6q_map_io,
 	.init_irq	= imx6q_init_irq,