diff mbox

[3/3] ARM: dts: Add peach-pi board support

Message ID 1399035821-25096-4-git-send-email-arun.kk@samsung.com (mailing list archive)
State New, archived
Headers show

Commit Message

Arun Kumar K May 2, 2014, 1:03 p.m. UTC
Adds support for google peach-pi board having the
Exynos5800 SoC.

Signed-off-by: Arun Kumar K <arun.kk@samsung.com>
Signed-off-by: Doug Anderson <dianders@chromium.org>
---
 arch/arm/boot/dts/Makefile                |    3 +-
 arch/arm/boot/dts/exynos5800-peach-pi.dts |  144 +++++++++++++++++++++++++++++
 2 files changed, 146 insertions(+), 1 deletion(-)
 create mode 100644 arch/arm/boot/dts/exynos5800-peach-pi.dts

Comments

Tomasz Figa May 2, 2014, 5:10 p.m. UTC | #1
Hi Arun,

On 02.05.2014 15:03, Arun Kumar K wrote:
> Adds support for google peach-pi board having the
> Exynos5800 SoC.
>
> Signed-off-by: Arun Kumar K <arun.kk@samsung.com>
> Signed-off-by: Doug Anderson <dianders@chromium.org>
> ---
>   arch/arm/boot/dts/Makefile                |    3 +-
>   arch/arm/boot/dts/exynos5800-peach-pi.dts |  144 +++++++++++++++++++++++++++++
>   2 files changed, 146 insertions(+), 1 deletion(-)
>   create mode 100644 arch/arm/boot/dts/exynos5800-peach-pi.dts
>
> diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile
> index 35c146f..efe1573 100644
> --- a/arch/arm/boot/dts/Makefile
> +++ b/arch/arm/boot/dts/Makefile
> @@ -76,7 +76,8 @@ dtb-$(CONFIG_ARCH_EXYNOS) += exynos4210-origen.dtb \
>   	exynos5420-arndale-octa.dtb \
>   	exynos5420-smdk5420.dtb \
>   	exynos5440-sd5v1.dtb \
> -	exynos5440-ssdk5440.dtb
> +	exynos5440-ssdk5440.dtb \
> +	exynos5800-peach-pi.dtb
>   dtb-$(CONFIG_ARCH_HI3xxx) += hi3620-hi4511.dtb
>   dtb-$(CONFIG_ARCH_HIGHBANK) += highbank.dtb \
>   	ecx-2000.dtb
> diff --git a/arch/arm/boot/dts/exynos5800-peach-pi.dts b/arch/arm/boot/dts/exynos5800-peach-pi.dts
> new file mode 100644
> index 0000000..e0f8633
> --- /dev/null
> +++ b/arch/arm/boot/dts/exynos5800-peach-pi.dts
> @@ -0,0 +1,144 @@
> +/*
> + * Google Peach Pi Rev 10+ board device tree source
> + *
> + * Copyright (c) 2014 Google, 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.
> + */
> +
> +/dts-v1/;
> +#include <dt-bindings/input/input.h>
> +#include <dt-bindings/gpio/gpio.h>
> +#include "exynos5800.dtsi"
> +
> +/ {
> +	model = "Google Peach Pi Rev 10+";
> +
> +	compatible = "google,pi-rev16",
> +		"google,pi-rev15", "google,pi-rev14",
> +		"google,pi-rev13", "google,pi-rev12",
> +		"google,pi-rev11", "google,pi-rev10",
> +		"google,pi", "google,peach", "samsung,exynos5800",
> +		"samsung,exynos5";

I can see this board using the "google,peach" compatible string, which 
is the same as one listed for peach-pit board. Since they are based on 
different SoCs, are they really compatible?

> +
> +	memory {
> +		reg = <0 0>;

I don't think this is a good idea, because this is basically rendering 
this dts file useless, unless used with a bootloader that can actually 
inject correct values. I believe that some generic setup could be 
provided in the dts, so you could at least get the board running.

Otherwise looks good, so after addressing the two comments above feel 
free to add my Reviewed-by.

Best regards,
Tomasz
--
To unsubscribe from this list: send the line "unsubscribe linux-samsung-soc" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Doug Anderson May 2, 2014, 6:31 p.m. UTC | #2
Tomasz,

On Fri, May 2, 2014 at 10:10 AM, Tomasz Figa <tomasz.figa@gmail.com> wrote:
> Hi Arun,
>
>
> On 02.05.2014 15:03, Arun Kumar K wrote:
>>
>> Adds support for google peach-pi board having the
>> Exynos5800 SoC.
>>
>> Signed-off-by: Arun Kumar K <arun.kk@samsung.com>
>> Signed-off-by: Doug Anderson <dianders@chromium.org>
>> ---
>>   arch/arm/boot/dts/Makefile                |    3 +-
>>   arch/arm/boot/dts/exynos5800-peach-pi.dts |  144
>> +++++++++++++++++++++++++++++
>>   2 files changed, 146 insertions(+), 1 deletion(-)
>>   create mode 100644 arch/arm/boot/dts/exynos5800-peach-pi.dts
>>
>> diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile
>> index 35c146f..efe1573 100644
>> --- a/arch/arm/boot/dts/Makefile
>> +++ b/arch/arm/boot/dts/Makefile
>> @@ -76,7 +76,8 @@ dtb-$(CONFIG_ARCH_EXYNOS) += exynos4210-origen.dtb \
>>         exynos5420-arndale-octa.dtb \
>>         exynos5420-smdk5420.dtb \
>>         exynos5440-sd5v1.dtb \
>> -       exynos5440-ssdk5440.dtb
>> +       exynos5440-ssdk5440.dtb \
>> +       exynos5800-peach-pi.dtb
>>   dtb-$(CONFIG_ARCH_HI3xxx) += hi3620-hi4511.dtb
>>   dtb-$(CONFIG_ARCH_HIGHBANK) += highbank.dtb \
>>         ecx-2000.dtb
>> diff --git a/arch/arm/boot/dts/exynos5800-peach-pi.dts
>> b/arch/arm/boot/dts/exynos5800-peach-pi.dts
>> new file mode 100644
>> index 0000000..e0f8633
>> --- /dev/null
>> +++ b/arch/arm/boot/dts/exynos5800-peach-pi.dts
>> @@ -0,0 +1,144 @@
>> +/*
>> + * Google Peach Pi Rev 10+ board device tree source
>> + *
>> + * Copyright (c) 2014 Google, 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.
>> + */
>> +
>> +/dts-v1/;
>> +#include <dt-bindings/input/input.h>
>> +#include <dt-bindings/gpio/gpio.h>
>> +#include "exynos5800.dtsi"
>> +
>> +/ {
>> +       model = "Google Peach Pi Rev 10+";
>> +
>> +       compatible = "google,pi-rev16",
>> +               "google,pi-rev15", "google,pi-rev14",
>> +               "google,pi-rev13", "google,pi-rev12",
>> +               "google,pi-rev11", "google,pi-rev10",
>> +               "google,pi", "google,peach", "samsung,exynos5800",
>> +               "samsung,exynos5";
>
>
> I can see this board using the "google,peach" compatible string, which is
> the same as one listed for peach-pit board. Since they are based on
> different SoCs, are they really compatible?

I'd like to see "google,peach" continue to be here but won't fight too
strongly if it's rejected.  The pit and pi boards are incredibly
similar to each other.  They have a 380 point difference in their
processor and a few minor peripheral differences, but not a lot else.

I could totally imagine some code somewhere wanting to know if this
board is compatible with "google,peach" just like you can imagine code
somewhere wanting to know if this is compatible with
"samsung,exynos5".

Potentially you could swap the order of "google,peach" and
"samsung,exynos5800" though...


>> +
>> +       memory {
>> +               reg = <0 0>;
>
> I don't think this is a good idea, because this is basically rendering this
> dts file useless, unless used with a bootloader that can actually inject
> correct values. I believe that some generic setup could be provided in the
> dts, so you could at least get the board running.

I won't say that I care a whole lot, but I think that was what was
agreed upon the other day.  Specifically Tom Rini of U-Boot was
worried about the fact that U-Boot will read the memory node and
totally clobber it.  He thought there might be cases where someone
might _purposely_ not want U-Boot to do that.

...I would wonder what alternate bootloader you're imagining will
actually run on this board and not do this?


In any case, if people don't like it then we can get rid of it IMHO.

-Doug
--
To unsubscribe from this list: send the line "unsubscribe linux-samsung-soc" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Tomasz Figa May 3, 2014, 2 a.m. UTC | #3
Hi Doug,

On 02.05.2014 20:31, Doug Anderson wrote:
> Tomasz,
>
> On Fri, May 2, 2014 at 10:10 AM, Tomasz Figa <tomasz.figa@gmail.com> wrote:
>> Hi Arun,
>>
>>
>> On 02.05.2014 15:03, Arun Kumar K wrote:
>>>
>>> Adds support for google peach-pi board having the
>>> Exynos5800 SoC.
>>>
>>> Signed-off-by: Arun Kumar K <arun.kk@samsung.com>
>>> Signed-off-by: Doug Anderson <dianders@chromium.org>
>>> ---
>>>    arch/arm/boot/dts/Makefile                |    3 +-
>>>    arch/arm/boot/dts/exynos5800-peach-pi.dts |  144
>>> +++++++++++++++++++++++++++++
>>>    2 files changed, 146 insertions(+), 1 deletion(-)
>>>    create mode 100644 arch/arm/boot/dts/exynos5800-peach-pi.dts
>>>
>>> diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile
>>> index 35c146f..efe1573 100644
>>> --- a/arch/arm/boot/dts/Makefile
>>> +++ b/arch/arm/boot/dts/Makefile
>>> @@ -76,7 +76,8 @@ dtb-$(CONFIG_ARCH_EXYNOS) += exynos4210-origen.dtb \
>>>          exynos5420-arndale-octa.dtb \
>>>          exynos5420-smdk5420.dtb \
>>>          exynos5440-sd5v1.dtb \
>>> -       exynos5440-ssdk5440.dtb
>>> +       exynos5440-ssdk5440.dtb \
>>> +       exynos5800-peach-pi.dtb
>>>    dtb-$(CONFIG_ARCH_HI3xxx) += hi3620-hi4511.dtb
>>>    dtb-$(CONFIG_ARCH_HIGHBANK) += highbank.dtb \
>>>          ecx-2000.dtb
>>> diff --git a/arch/arm/boot/dts/exynos5800-peach-pi.dts
>>> b/arch/arm/boot/dts/exynos5800-peach-pi.dts
>>> new file mode 100644
>>> index 0000000..e0f8633
>>> --- /dev/null
>>> +++ b/arch/arm/boot/dts/exynos5800-peach-pi.dts
>>> @@ -0,0 +1,144 @@
>>> +/*
>>> + * Google Peach Pi Rev 10+ board device tree source
>>> + *
>>> + * Copyright (c) 2014 Google, 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.
>>> + */
>>> +
>>> +/dts-v1/;
>>> +#include <dt-bindings/input/input.h>
>>> +#include <dt-bindings/gpio/gpio.h>
>>> +#include "exynos5800.dtsi"
>>> +
>>> +/ {
>>> +       model = "Google Peach Pi Rev 10+";
>>> +
>>> +       compatible = "google,pi-rev16",
>>> +               "google,pi-rev15", "google,pi-rev14",
>>> +               "google,pi-rev13", "google,pi-rev12",
>>> +               "google,pi-rev11", "google,pi-rev10",
>>> +               "google,pi", "google,peach", "samsung,exynos5800",
>>> +               "samsung,exynos5";
>>
>>
>> I can see this board using the "google,peach" compatible string, which is
>> the same as one listed for peach-pit board. Since they are based on
>> different SoCs, are they really compatible?
>
> I'd like to see "google,peach" continue to be here but won't fight too
> strongly if it's rejected.  The pit and pi boards are incredibly
> similar to each other.  They have a 380 point difference in their
> processor and a few minor peripheral differences, but not a lot else.
>
> I could totally imagine some code somewhere wanting to know if this
> board is compatible with "google,peach" just like you can imagine code
> somewhere wanting to know if this is compatible with
> "samsung,exynos5".
>
> Potentially you could swap the order of "google,peach" and
> "samsung,exynos5800" though...
>

Well, if you can use the device tree of peach-pit board and boot 
peach-pi and vice-versa and it won't cause any hardware failures then I 
guess it's fine to keep this string.

Not sure about the order, though, as both "google,peach" and 
"samsung,exynos5800" strings can't really be strictly ordered. IMHO 
current order is the closest to ideal, as particular family of similar 
boards is supposedly less generic than all boards based on particular SoC.

>
>>> +
>>> +       memory {
>>> +               reg = <0 0>;
>>
>> I don't think this is a good idea, because this is basically rendering this
>> dts file useless, unless used with a bootloader that can actually inject
>> correct values. I believe that some generic setup could be provided in the
>> dts, so you could at least get the board running.
>
> I won't say that I care a whole lot, but I think that was what was
> agreed upon the other day.  Specifically Tom Rini of U-Boot was
> worried about the fact that U-Boot will read the memory node and
> totally clobber it.  He thought there might be cases where someone
> might _purposely_ not want U-Boot to do that.
>
> ...I would wonder what alternate bootloader you're imagining will
> actually run on this board and not do this?

People should have the freedom to choose anything they want. We have 
also barebox and coreboot with ARM and even Exynos5 support (in 
coreboot), but people might want to use something completely exotic as 
well and the device tree should let them do so.

Best regards,
Tomasz
--
To unsubscribe from this list: send the line "unsubscribe linux-samsung-soc" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Doug Anderson May 5, 2014, 3:17 p.m. UTC | #4
On Fri, May 2, 2014 at 7:00 PM, Tomasz Figa <tomasz.figa@gmail.com> wrote:
> Well, if you can use the device tree of peach-pit board and boot peach-pi
> and vice-versa and it won't cause any hardware failures then I guess it's
> fine to keep this string.

I believe you can actually make it a good portion of the way through
boot, though a bunch of things (including graphics) won't work.  I
general I don't think it's all that different from "exynos5".


>>> I don't think this is a good idea, because this is basically rendering
>>> this
>>> dts file useless, unless used with a bootloader that can actually inject
>>> correct values. I believe that some generic setup could be provided in
>>> the
>>> dts, so you could at least get the board running.
>>
>>
>> I won't say that I care a whole lot, but I think that was what was
>> agreed upon the other day.  Specifically Tom Rini of U-Boot was
>> worried about the fact that U-Boot will read the memory node and
>> totally clobber it.  He thought there might be cases where someone
>> might _purposely_ not want U-Boot to do that.
>>
>> ...I would wonder what alternate bootloader you're imagining will
>> actually run on this board and not do this?
>
>
> People should have the freedom to choose anything they want. We have also
> barebox and coreboot with ARM and even Exynos5 support (in coreboot), but
> people might want to use something completely exotic as well and the device
> tree should let them do so.

Fair enough.  Unless Tom cares about this enough to throw his opinion
in here, I guess our answer is that the memory node should have a sane
default and we'll expect the bootloader to put something better in if
it can properly probe memory.

In this case I guess it would be 2GB.

-Doug
--
To unsubscribe from this list: send the line "unsubscribe linux-samsung-soc" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Tom Rini May 5, 2014, 6:18 p.m. UTC | #5
On 05/05/2014 11:17 AM, Doug Anderson wrote:
> On Fri, May 2, 2014 at 7:00 PM, Tomasz Figa <tomasz.figa@gmail.com> wrote:
>> Well, if you can use the device tree of peach-pit board and boot peach-pi
>> and vice-versa and it won't cause any hardware failures then I guess it's
>> fine to keep this string.
> 
> I believe you can actually make it a good portion of the way through
> boot, though a bunch of things (including graphics) won't work.  I
> general I don't think it's all that different from "exynos5".
> 
> 
>>>> I don't think this is a good idea, because this is basically rendering
>>>> this
>>>> dts file useless, unless used with a bootloader that can actually inject
>>>> correct values. I believe that some generic setup could be provided in
>>>> the
>>>> dts, so you could at least get the board running.
>>>
>>>
>>> I won't say that I care a whole lot, but I think that was what was
>>> agreed upon the other day.  Specifically Tom Rini of U-Boot was
>>> worried about the fact that U-Boot will read the memory node and
>>> totally clobber it.  He thought there might be cases where someone
>>> might _purposely_ not want U-Boot to do that.
>>>
>>> ...I would wonder what alternate bootloader you're imagining will
>>> actually run on this board and not do this?
>>
>>
>> People should have the freedom to choose anything they want. We have also
>> barebox and coreboot with ARM and even Exynos5 support (in coreboot), but
>> people might want to use something completely exotic as well and the device
>> tree should let them do so.
> 
> Fair enough.  Unless Tom cares about this enough to throw his opinion
> in here, I guess our answer is that the memory node should have a sane
> default and we'll expect the bootloader to put something better in if
> it can properly probe memory.
> 
> In this case I guess it would be 2GB.

So, a memory node that says a size of 0 is a valid and long standing
(see PowerPC folks) way of saying "please fill in my memory node value
for me" due to any number of reasons for not knowing before hand how
much memory there is.  Any boot loader which cannot fill in the memory
node is going to have problems with the various boards (PowerPC, ARM and
other) which say "my memory size is 0, I want this fixed up at run time".

The problem I was raising at the ELC BoF is that today we can't just
stop overwriting values in the non-zero case as many boards lie about
their memory size, in non-zero ways, but no one noticed as they only
tested with U-Boot which was performing the fixup.
Bjorn Andersson May 8, 2014, 9:55 p.m. UTC | #6
On Mon, May 5, 2014 at 11:18 AM, Tom Rini <trini@ti.com> wrote:
[...]
> The problem I was raising at the ELC BoF is that today we can't just
> stop overwriting values in the non-zero case as many boards lie about
> their memory size, in non-zero ways, but no one noticed as they only
> tested with U-Boot which was performing the fixup.

So, should we conclude are we stuck being bug-compatible forever?

I was hoping to add this logic to the kernel by [1], but of course
this won't fly
based on the argument you highlighted (as was pointed out by Uwe).

[1] https://lkml.org/lkml/2014/5/7/28

Regards,
Bjorn
--
To unsubscribe from this list: send the line "unsubscribe linux-samsung-soc" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Tom Rini May 8, 2014, 10:16 p.m. UTC | #7
On 05/08/2014 05:55 PM, Bjorn Andersson wrote:
> On Mon, May 5, 2014 at 11:18 AM, Tom Rini <trini@ti.com> wrote:
> [...]
>> The problem I was raising at the ELC BoF is that today we can't just
>> stop overwriting values in the non-zero case as many boards lie about
>> their memory size, in non-zero ways, but no one noticed as they only
>> tested with U-Boot which was performing the fixup.
> 
> So, should we conclude are we stuck being bug-compatible forever?
> 
> I was hoping to add this logic to the kernel by [1], but of course
> this won't fly
> based on the argument you highlighted (as was pointed out by Uwe).
> 
> [1] https://lkml.org/lkml/2014/5/7/28

Well, device tree should always win and once passed to the kernel, be
correct.  If you have control of the kernel but not bootloader, like Uwe
says, drop the ATAG support.
Bjorn Andersson May 8, 2014, 10:22 p.m. UTC | #8
On Thu, May 8, 2014 at 3:16 PM, Tom Rini <trini@ti.com> wrote:
> On 05/08/2014 05:55 PM, Bjorn Andersson wrote:
>> On Mon, May 5, 2014 at 11:18 AM, Tom Rini <trini@ti.com> wrote:
>> [...]
>>> The problem I was raising at the ELC BoF is that today we can't just
>>> stop overwriting values in the non-zero case as many boards lie about
>>> their memory size, in non-zero ways, but no one noticed as they only
>>> tested with U-Boot which was performing the fixup.
>>
>> So, should we conclude are we stuck being bug-compatible forever?
>>
>> I was hoping to add this logic to the kernel by [1], but of course
>> this won't fly
>> based on the argument you highlighted (as was pointed out by Uwe).
>>
>> [1] https://lkml.org/lkml/2014/5/7/28
>
> Well, device tree should always win and once passed to the kernel, be
> correct.  If you have control of the kernel but not bootloader, like Uwe
> says, drop the ATAG support.

Yeah, that would be all nice and dandy, except for the bootloader passing
device specific parameters on the command line. Maybe I can recreate
enough of the data later on to actually go with that though...

Regards,
Bjorn
--
To unsubscribe from this list: send the line "unsubscribe linux-samsung-soc" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
diff mbox

Patch

diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile
index 35c146f..efe1573 100644
--- a/arch/arm/boot/dts/Makefile
+++ b/arch/arm/boot/dts/Makefile
@@ -76,7 +76,8 @@  dtb-$(CONFIG_ARCH_EXYNOS) += exynos4210-origen.dtb \
 	exynos5420-arndale-octa.dtb \
 	exynos5420-smdk5420.dtb \
 	exynos5440-sd5v1.dtb \
-	exynos5440-ssdk5440.dtb
+	exynos5440-ssdk5440.dtb \
+	exynos5800-peach-pi.dtb
 dtb-$(CONFIG_ARCH_HI3xxx) += hi3620-hi4511.dtb
 dtb-$(CONFIG_ARCH_HIGHBANK) += highbank.dtb \
 	ecx-2000.dtb
diff --git a/arch/arm/boot/dts/exynos5800-peach-pi.dts b/arch/arm/boot/dts/exynos5800-peach-pi.dts
new file mode 100644
index 0000000..e0f8633
--- /dev/null
+++ b/arch/arm/boot/dts/exynos5800-peach-pi.dts
@@ -0,0 +1,144 @@ 
+/*
+ * Google Peach Pi Rev 10+ board device tree source
+ *
+ * Copyright (c) 2014 Google, 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.
+ */
+
+/dts-v1/;
+#include <dt-bindings/input/input.h>
+#include <dt-bindings/gpio/gpio.h>
+#include "exynos5800.dtsi"
+
+/ {
+	model = "Google Peach Pi Rev 10+";
+
+	compatible = "google,pi-rev16",
+		"google,pi-rev15", "google,pi-rev14",
+		"google,pi-rev13", "google,pi-rev12",
+		"google,pi-rev11", "google,pi-rev10",
+		"google,pi", "google,peach", "samsung,exynos5800",
+		"samsung,exynos5";
+
+	memory {
+		reg = <0 0>;
+	};
+
+	fixed-rate-clocks {
+		oscclk {
+			compatible = "samsung,exynos5420-oscclk";
+			clock-frequency = <24000000>;
+		};
+	};
+
+	gpio-keys {
+		compatible = "gpio-keys";
+
+		pinctrl-names = "default";
+		pinctrl-0 = <&power_key_irq>;
+
+		power {
+			label = "Power";
+			gpios = <&gpx1 2 GPIO_ACTIVE_LOW>;
+			linux,code = <KEY_POWER>;
+			gpio-key,wakeup;
+		};
+	};
+
+	backlight {
+		compatible = "pwm-backlight";
+		pwms = <&pwm 0 1000000 0>;
+		brightness-levels = <0 100 500 1000 1500 2000 2500 2800>;
+		default-brightness-level = <7>;
+		pinctrl-0 = <&pwm0_out>;
+		pinctrl-names = "default";
+	};
+};
+
+&pinctrl_0 {
+	tpm_irq: tpm-irq {
+		samsung,pins = "gpx1-0";
+		samsung,pin-function = <0>;
+		samsung,pin-pud = <0>;
+		samsung,pin-drv = <0>;
+	};
+
+	power_key_irq: power-key-irq {
+		samsung,pins = "gpx1-2";
+		samsung,pin-function = <0>;
+		samsung,pin-pud = <0>;
+		samsung,pin-drv = <0>;
+	};
+};
+
+&rtc {
+	status = "okay";
+};
+
+&serial_3 {
+	status = "okay";
+};
+
+&mmc_0 {
+	status = "okay";
+	num-slots = <1>;
+	broken-cd;
+	caps2-mmc-hs200-1_8v;
+	supports-highspeed;
+	non-removable;
+	card-detect-delay = <200>;
+	clock-frequency = <400000000>;
+	samsung,dw-mshc-ciu-div = <3>;
+	samsung,dw-mshc-sdr-timing = <0 4>;
+	samsung,dw-mshc-ddr-timing = <0 2>;
+	pinctrl-names = "default";
+	pinctrl-0 = <&sd0_clk &sd0_cmd &sd0_bus4 &sd0_bus8>;
+
+	slot@0 {
+		reg = <0>;
+		bus-width = <8>;
+	};
+};
+
+&mmc_2 {
+	status = "okay";
+	num-slots = <1>;
+	supports-highspeed;
+	card-detect-delay = <200>;
+	clock-frequency = <400000000>;
+	samsung,dw-mshc-ciu-div = <3>;
+	samsung,dw-mshc-sdr-timing = <2 3>;
+	samsung,dw-mshc-ddr-timing = <1 2>;
+	pinctrl-names = "default";
+	pinctrl-0 = <&sd2_clk &sd2_cmd &sd2_cd &sd2_bus4>;
+
+	slot@0 {
+		reg = <0>;
+		bus-width = <4>;
+	};
+};
+
+&hsi2c_9 {
+	status = "okay";
+	clock-frequency = <400000>;
+
+	tpm@20 {
+		compatible = "infineon,slb9645tt";
+		reg = <0x20>;
+		/* Unused irq; but still need to configure the pins */
+		pinctrl-names = "default";
+		pinctrl-0 = <&tpm_irq>;
+	};
+};
+
+/*
+ * Use longest HW watchdog in SoC (32 seconds) since the hardware
+ * watchdog provides no debugging information (compared to soft/hard
+ * lockup detectors) and so should be last resort.
+ */
+&watchdog {
+	timeout-sec = <32>;
+};