Patchwork [U-Boot,v3,1/3] Tegra: fdt: Add/enhance sdhci (mmc) nodes for all T20 DT files

login
register
mail settings
Submitter Tom Warren
Date Feb. 13, 2013, 9:44 p.m.
Message ID <1360791890-6644-2-git-send-email-twarren@nvidia.com>
Download mbox | patch
Permalink /patch/220264/
State Superseded
Delegated to: Tom Warren
Headers show

Comments

Tom Warren - Feb. 13, 2013, 9:44 p.m.
Linux dts files were used for those boards that didn't already
have sdhci info populated. Tamonten has their own dtsi file with
common sdhci nodes (sourced from Linux).

Signed-off-by: Tom Warren <twarren@nvidia.com>
Tested-by: Thierry Reding <thierry.reding@avionic-design.de>
---
v2:
- cleanup comments in dts files/match w/kernel files
- add sdhci aliases in all dts files
- use tegra20-tamonten.dtsi from the kernel for AD boards
v3:
- include tamonten.dtsi file directly in AD dts files
- fix Seaboard power-gpios flags
- add cd-gpios for Colibri T20 Iris
- add include paths to DTC command

 arch/arm/dts/tegra20.dtsi                        |   16 ++++++++++++----
 board/avionic-design/dts/tegra20-medcom-wide.dts |    3 ++-
 board/avionic-design/dts/tegra20-plutux.dts      |    3 ++-
 board/avionic-design/dts/tegra20-tec.dts         |    3 ++-
 board/compal/dts/tegra20-paz00.dts               |   19 +++++++++++++++++--
 board/compulab/dts/tegra20-trimslice.dts         |   14 ++++++++++++++
 board/nvidia/dts/tegra20-harmony.dts             |   18 ++++++++++++++++++
 board/nvidia/dts/tegra20-seaboard.dts            |   10 +++++++---
 board/nvidia/dts/tegra20-ventana.dts             |   15 +++++++++++++++
 board/nvidia/dts/tegra20-whistler.dts            |   13 +++++++++++++
 board/toradex/dts/tegra20-colibri_t20_iris.dts   |    7 +++++++
 dts/Makefile                                     |    2 +-
 12 files changed, 110 insertions(+), 13 deletions(-)
Stephen Warren - Feb. 14, 2013, 12:10 a.m.
On 02/13/2013 02:44 PM, Tom Warren wrote:
> Linux dts files were used for those boards that didn't already
> have sdhci info populated. Tamonten has their own dtsi file with
> common sdhci nodes (sourced from Linux).

> diff --git a/dts/Makefile b/dts/Makefile
> index 922c78c..2ef31e9 100644
> --- a/dts/Makefile
> +++ b/dts/Makefile
> @@ -50,7 +50,7 @@ DT_BIN	:= $(obj)dt.dtb
>  $(DT_BIN): $(TOPDIR)/board/$(VENDOR)/dts/$(DEVICE_TREE).dts
>  	rc=$$( \
>  		cat $< | $(CPP) -P $(DTS_CPPFLAGS) - | \
> -		{ { $(DTC) -R 4 -p 0x1000 -O dtb -o ${DT_BIN} - 2>&1 ; \
> +		{ { $(DTC) -R 4 -p 0x1000 -i $(TOPDIR)/board/$(VENDOR)/dts -i $(TOPDIR)/arch/$(ARCH)/dts -O dtb -o ${DT_BIN} - 2>&1 ; \
>  		    echo $$? >&3 ; } | \
>  		  grep -v '^DTC: dts->dtb  on file' ; \
>  	        } 3>&1 1>&2 ) ; \

Shouldn't this be a separate patch?

The one issue with this is that only newer versions of dtc support the
-i option. The version packaged with most distros won't support it.
That'll mean something like "MAKEALL -a arm" is going to fail for a lot
of people without some kind of explicit action (i.e. manually installing
a newer version of dtc).

That's why I suggested switching from /include/ to #include, and adding
the include path to the cpp command rather than dtc.
Tom Warren - Feb. 14, 2013, 4:14 p.m.
Stephen,

On Wed, Feb 13, 2013 at 5:10 PM, Stephen Warren <swarren@wwwdotorg.org> wrote:
> On 02/13/2013 02:44 PM, Tom Warren wrote:
>> Linux dts files were used for those boards that didn't already
>> have sdhci info populated. Tamonten has their own dtsi file with
>> common sdhci nodes (sourced from Linux).
>
>> diff --git a/dts/Makefile b/dts/Makefile
>> index 922c78c..2ef31e9 100644
>> --- a/dts/Makefile
>> +++ b/dts/Makefile
>> @@ -50,7 +50,7 @@ DT_BIN      := $(obj)dt.dtb
>>  $(DT_BIN): $(TOPDIR)/board/$(VENDOR)/dts/$(DEVICE_TREE).dts
>>       rc=$$( \
>>               cat $< | $(CPP) -P $(DTS_CPPFLAGS) - | \
>> -             { { $(DTC) -R 4 -p 0x1000 -O dtb -o ${DT_BIN} - 2>&1 ; \
>> +             { { $(DTC) -R 4 -p 0x1000 -i $(TOPDIR)/board/$(VENDOR)/dts -i $(TOPDIR)/arch/$(ARCH)/dts -O dtb -o ${DT_BIN} - 2>&1 ; \
>>                   echo $$? >&3 ; } | \
>>                 grep -v '^DTC: dts->dtb  on file' ; \
>>               } 3>&1 1>&2 ) ; \
>
> Shouldn't this be a separate patch?

I can move it into a separate patch in v4.

>
> The one issue with this is that only newer versions of dtc support the
> -i option. The version packaged with most distros won't support it.
> That'll mean something like "MAKEALL -a arm" is going to fail for a lot
> of people without some kind of explicit action (i.e. manually installing
> a newer version of dtc).
>
> That's why I suggested switching from /include/ to #include, and adding
> the include path to the cpp command rather than dtc.
I tried using '#include, and added the 2 dts paths to the DTS_CPPFLAGS
so gcc could find the files, but I got a 'couldn't open
'skeleton.dtsi' error. I didn't want to change tegra20.dtsi to
#include "skeleton.dtsi', and all the other board dts files to
#include ARCH_CPU_DTS, just so we can support the common tamonten
dtsi, so I went back to the DTC include path changes.

There was talk at one time of putting an up-to-date DTC binary in the
U-Boot tools area so everyone would have a consistent level of DT
support. With the small number of boards using DT at this time, I
think we can live with letting people know where to find the latest
DTC release until then.

If someone has a better approach, let me know. Otherwise, I want to
get this into a v4 patch (with the DTC include path changes in it's
own patch so it can be reworked later if needed) today as I'll be gone
until next Weds.

Tom
Stephen Warren - Feb. 14, 2013, 8:24 p.m.
On 02/14/2013 09:14 AM, Tom Warren wrote:
> Stephen,
> 
> On Wed, Feb 13, 2013 at 5:10 PM, Stephen Warren <swarren@wwwdotorg.org> wrote:
>> On 02/13/2013 02:44 PM, Tom Warren wrote:
>>> Linux dts files were used for those boards that didn't already
>>> have sdhci info populated. Tamonten has their own dtsi file with
>>> common sdhci nodes (sourced from Linux).
>>
>>> diff --git a/dts/Makefile b/dts/Makefile
>>> index 922c78c..2ef31e9 100644
>>> --- a/dts/Makefile
>>> +++ b/dts/Makefile
>>> @@ -50,7 +50,7 @@ DT_BIN      := $(obj)dt.dtb
>>>  $(DT_BIN): $(TOPDIR)/board/$(VENDOR)/dts/$(DEVICE_TREE).dts
>>>       rc=$$( \
>>>               cat $< | $(CPP) -P $(DTS_CPPFLAGS) - | \
>>> -             { { $(DTC) -R 4 -p 0x1000 -O dtb -o ${DT_BIN} - 2>&1 ; \
>>> +             { { $(DTC) -R 4 -p 0x1000 -i $(TOPDIR)/board/$(VENDOR)/dts -i $(TOPDIR)/arch/$(ARCH)/dts -O dtb -o ${DT_BIN} - 2>&1 ; \
>>>                   echo $$? >&3 ; } | \
>>>                 grep -v '^DTC: dts->dtb  on file' ; \
>>>               } 3>&1 1>&2 ) ; \
>>
>> Shouldn't this be a separate patch?
> 
> I can move it into a separate patch in v4.
> 
>>
>> The one issue with this is that only newer versions of dtc support the
>> -i option. The version packaged with most distros won't support it.
>> That'll mean something like "MAKEALL -a arm" is going to fail for a lot
>> of people without some kind of explicit action (i.e. manually installing
>> a newer version of dtc).
>>
>> That's why I suggested switching from /include/ to #include, and adding
>> the include path to the cpp command rather than dtc.
>
> I tried using '#include, and added the 2 dts paths to the DTS_CPPFLAGS
> so gcc could find the files, but I got a 'couldn't open
> 'skeleton.dtsi' error. I didn't want to change tegra20.dtsi to
> #include "skeleton.dtsi', and all the other board dts files to
> #include ARCH_CPU_DTS, just so we can support the common tamonten
> dtsi, so I went back to the DTC include path changes.

I think that's exactly where we should end up though. It's certainly the
way the kernel is also heading.

Right now, the Avionic Design boards might be the only place this
problem crops up, but as we support more features on Cardhu, we'll hit
exactly the same issue, so have to solve it there too.

> There was talk at one time of putting an up-to-date DTC binary in the
> U-Boot tools area so everyone would have a consistent level of DT
> support.

I think Wolfgang nak'd that.

 With the small number of boards using DT at this time, I
> think we can live with letting people know where to find the latest
> DTC release until then.

But he also nak'd the idea of relying on a newer dtc:-(

I think we had better raise the question again.
Lucas Stach - Feb. 15, 2013, 11:58 a.m.
Am Donnerstag, den 14.02.2013, 13:24 -0700 schrieb Stephen Warren:
[...]
> >>
> >> The one issue with this is that only newer versions of dtc support the
> >> -i option. The version packaged with most distros won't support it.
> >> That'll mean something like "MAKEALL -a arm" is going to fail for a lot
> >> of people without some kind of explicit action (i.e. manually installing
> >> a newer version of dtc).
> >>
> >> That's why I suggested switching from /include/ to #include, and adding
> >> the include path to the cpp command rather than dtc.
> >
> > I tried using '#include, and added the 2 dts paths to the DTS_CPPFLAGS
> > so gcc could find the files, but I got a 'couldn't open
> > 'skeleton.dtsi' error. I didn't want to change tegra20.dtsi to
> > #include "skeleton.dtsi', and all the other board dts files to
> > #include ARCH_CPU_DTS, just so we can support the common tamonten
> > dtsi, so I went back to the DTC include path changes.
> 
> I think that's exactly where we should end up though. It's certainly the
> way the kernel is also heading.
> 
> Right now, the Avionic Design boards might be the only place this
> problem crops up, but as we support more features on Cardhu, we'll hit
> exactly the same issue, so have to solve it there too.
> 
Right now the AD boards might be the only ones with this problem, but it
will certainly hit the Toradex Tegra designs also.

I'm planning on doing support for the Colibri Evaluation Carrier for the
next release cycle. So I need to split up the DTS between Colibri and
Carrier board, same as is done in the Linux Kernel dts.
> > There was talk at one time of putting an up-to-date DTC binary in the
> > U-Boot tools area so everyone would have a consistent level of DT
> > support.
> 
> I think Wolfgang nak'd that.
> 
>  With the small number of boards using DT at this time, I
> > think we can live with letting people know where to find the latest
> > DTC release until then.
> 
> But he also nak'd the idea of relying on a newer dtc:-(
> 
> I think we had better raise the question again.

Yes, this has to be resolved one way or the other.
Tom Warren - Feb. 20, 2013, 6:04 p.m.
Lucas/Stephen/etc.

On Fri, Feb 15, 2013 at 4:58 AM, Lucas Stach <dev@lynxeye.de> wrote:
> Am Donnerstag, den 14.02.2013, 13:24 -0700 schrieb Stephen Warren:
> [...]
>> >>
>> >> The one issue with this is that only newer versions of dtc support the
>> >> -i option. The version packaged with most distros won't support it.
>> >> That'll mean something like "MAKEALL -a arm" is going to fail for a lot
>> >> of people without some kind of explicit action (i.e. manually installing
>> >> a newer version of dtc).
>> >>
>> >> That's why I suggested switching from /include/ to #include, and adding
>> >> the include path to the cpp command rather than dtc.
>> >
>> > I tried using '#include, and added the 2 dts paths to the DTS_CPPFLAGS
>> > so gcc could find the files, but I got a 'couldn't open
>> > 'skeleton.dtsi' error. I didn't want to change tegra20.dtsi to
>> > #include "skeleton.dtsi', and all the other board dts files to
>> > #include ARCH_CPU_DTS, just so we can support the common tamonten
>> > dtsi, so I went back to the DTC include path changes.
>>
>> I think that's exactly where we should end up though. It's certainly the
>> way the kernel is also heading.
>>
>> Right now, the Avionic Design boards might be the only place this
>> problem crops up, but as we support more features on Cardhu, we'll hit
>> exactly the same issue, so have to solve it there too.
>>
> Right now the AD boards might be the only ones with this problem, but it
> will certainly hit the Toradex Tegra designs also.
>
> I'm planning on doing support for the Colibri Evaluation Carrier for the
> next release cycle. So I need to split up the DTS between Colibri and
> Carrier board, same as is done in the Linux Kernel dts.
>> > There was talk at one time of putting an up-to-date DTC binary in the
>> > U-Boot tools area so everyone would have a consistent level of DT
>> > support.
>>
>> I think Wolfgang nak'd that.
>>
>>  With the small number of boards using DT at this time, I
>> > think we can live with letting people know where to find the latest
>> > DTC release until then.
>>
>> But he also nak'd the idea of relying on a newer dtc:-(
>>
>> I think we had better raise the question again.
>
> Yes, this has to be resolved one way or the other.
>
>
OK, I'll change all of the Tegra .DTS an .DTSI files to use #include
"xyz", and put the include path in the DTS_CPPFLAGS in dts/Makefile
instead of adding the include path to the DTC tool.  This'll be in v5
of the patchset.

Tom

Patch

diff --git a/arch/arm/dts/tegra20.dtsi b/arch/arm/dts/tegra20.dtsi
index 9a89685..982a070 100644
--- a/arch/arm/dts/tegra20.dtsi
+++ b/arch/arm/dts/tegra20.dtsi
@@ -318,24 +318,32 @@ 
 	sdhci@c8000000 {
 		compatible = "nvidia,tegra20-sdhci";
 		reg = <0xc8000000 0x200>;
-		interrupts = < 46 >;
+		interrupts = <0 14 0x04>;
+		clocks = <&tegra_car 14>;
+		status = "disabled";
 	};
 
 	sdhci@c8000200 {
 		compatible = "nvidia,tegra20-sdhci";
 		reg = <0xc8000200 0x200>;
-		interrupts = < 47 >;
+		interrupts = <0 15 0x04>;
+		clocks = <&tegra_car 9>;
+		status = "disabled";
 	};
 
 	sdhci@c8000400 {
 		compatible = "nvidia,tegra20-sdhci";
 		reg = <0xc8000400 0x200>;
-		interrupts = < 51 >;
+		interrupts = <0 19 0x04>;
+		clocks = <&tegra_car 69>;
+		status = "disabled";
 	};
 
 	sdhci@c8000600 {
 		compatible = "nvidia,tegra20-sdhci";
 		reg = <0xc8000600 0x200>;
-		interrupts = < 63 >;
+		interrupts = <0 31 0x04>;
+		clocks = <&tegra_car 15>;
+		status = "disabled";
 	};
 };
diff --git a/board/avionic-design/dts/tegra20-medcom-wide.dts b/board/avionic-design/dts/tegra20-medcom-wide.dts
index e46afbe..01a4451 100644
--- a/board/avionic-design/dts/tegra20-medcom-wide.dts
+++ b/board/avionic-design/dts/tegra20-medcom-wide.dts
@@ -1,6 +1,6 @@ 
 /dts-v1/;
 
-/include/ ARCH_CPU_DTS
+/include/ "tegra20-tamonten.dtsi"
 
 / {
 	model = "Avionic Design Medcom-Wide";
@@ -8,6 +8,7 @@ 
 
 	aliases {
 		usb0 = "/usb@c5008000";
+		sdhci0 = "/sdhci@c8000600";
 	};
 
 	memory {
diff --git a/board/avionic-design/dts/tegra20-plutux.dts b/board/avionic-design/dts/tegra20-plutux.dts
index 3e6cce0..f574542 100644
--- a/board/avionic-design/dts/tegra20-plutux.dts
+++ b/board/avionic-design/dts/tegra20-plutux.dts
@@ -1,6 +1,6 @@ 
 /dts-v1/;
 
-/include/ ARCH_CPU_DTS
+/include/ "tegra20-tamonten.dtsi"
 
 / {
 	model = "Avionic Design Plutux";
@@ -8,6 +8,7 @@ 
 
 	aliases {
 		usb0 = "/usb@c5008000";
+		sdhci0 = "/sdhci@c8000600";
 	};
 
 	memory {
diff --git a/board/avionic-design/dts/tegra20-tec.dts b/board/avionic-design/dts/tegra20-tec.dts
index bf3ff1d..376d279 100644
--- a/board/avionic-design/dts/tegra20-tec.dts
+++ b/board/avionic-design/dts/tegra20-tec.dts
@@ -1,6 +1,6 @@ 
 /dts-v1/;
 
-/include/ ARCH_CPU_DTS
+/include/ "tegra20-tamonten.dtsi"
 
 / {
 	model = "Avionic Design Tamonten Evaluation Carrier";
@@ -8,6 +8,7 @@ 
 
 	aliases {
 		usb0 = "/usb@c5008000";
+		sdhci0 = "/sdhci@c8000600";
 	};
 
 	memory {
diff --git a/board/compal/dts/tegra20-paz00.dts b/board/compal/dts/tegra20-paz00.dts
index 31b064d..6476940 100644
--- a/board/compal/dts/tegra20-paz00.dts
+++ b/board/compal/dts/tegra20-paz00.dts
@@ -3,11 +3,13 @@ 
 /include/ ARCH_CPU_DTS
 
 / {
-        model = "Toshiba AC100 / Dynabook AZ";
-        compatible = "compal,paz00", "nvidia,tegra20";
+	model = "Toshiba AC100 / Dynabook AZ";
+	compatible = "compal,paz00", "nvidia,tegra20";
 
 	aliases {
 		usb0 = "/usb@c5008000";
+		sdhci0 = "/sdhci@c8000600";
+		sdhci1 = "/sdhci@c8000000";
 	};
 
 	memory {
@@ -53,6 +55,19 @@ 
 		status = "disabled";
 	};
 
+	sdhci@c8000000 {
+		status = "okay";
+		cd-gpios = <&gpio 173 0>; /* gpio PV5 */
+		wp-gpios = <&gpio 57 0>; /* gpio PH1 */
+		power-gpios = <&gpio 169 0>; /* gpio PV1 */
+		bus-width = <4>;
+	};
+
+	sdhci@c8000600 {
+		status = "okay";
+		bus-width = <8>;
+	};
+
 	lcd_panel: panel {
 		/* PAZ00 has 1024x600 */
 		clock = <54030000>;
diff --git a/board/compulab/dts/tegra20-trimslice.dts b/board/compulab/dts/tegra20-trimslice.dts
index 7aeed67..2957f45 100644
--- a/board/compulab/dts/tegra20-trimslice.dts
+++ b/board/compulab/dts/tegra20-trimslice.dts
@@ -9,6 +9,8 @@ 
 	aliases {
 		usb0 = "/usb@c5008000";
 		usb1 = "/usb@c5000000";
+		sdhci0 = "/sdhci@c8000600";
+		sdhci1 = "/sdhci@c8000000";
 	};
 
 	memory {
@@ -47,4 +49,16 @@ 
 	usb@c5004000 {
 		status = "disabled";
 	};
+
+	sdhci@c8000000 {
+		status = "okay";
+		bus-width = <4>;
+	};
+
+	sdhci@c8000600 {
+		status = "okay";
+		cd-gpios = <&gpio 121 0>; /* gpio PP1 */
+		wp-gpios = <&gpio 122 0>; /* gpio PP2 */
+		bus-width = <4>;
+	};
 };
diff --git a/board/nvidia/dts/tegra20-harmony.dts b/board/nvidia/dts/tegra20-harmony.dts
index aeda3a1..593885d 100644
--- a/board/nvidia/dts/tegra20-harmony.dts
+++ b/board/nvidia/dts/tegra20-harmony.dts
@@ -9,6 +9,8 @@ 
 	aliases {
 		usb0 = "/usb@c5008000";
 		usb1 = "/usb@c5004000";
+		sdhci0 = "/sdhci@c8000600";
+		sdhci1 = "/sdhci@c8000200";
 	};
 
 	memory {
@@ -52,4 +54,20 @@ 
 	usb@c5004000 {
 		nvidia,phy-reset-gpio = <&gpio 169 0>; /* gpio PV1 */
 	};
+
+	sdhci@c8000200 {
+		status = "okay";
+		cd-gpios = <&gpio 69 0>; /* gpio PI5 */
+		wp-gpios = <&gpio 57 0>; /* gpio PH1 */
+		power-gpios = <&gpio 155 0>; /* gpio PT3 */
+		bus-width = <4>;
+	};
+
+	sdhci@c8000600 {
+		status = "okay";
+		cd-gpios = <&gpio 58 0>; /* gpio PH2 */
+		wp-gpios = <&gpio 59 0>; /* gpio PH3 */
+		power-gpios = <&gpio 70 0>; /* gpio PI6 */
+		bus-width = <8>;
+	};
 };
diff --git a/board/nvidia/dts/tegra20-seaboard.dts b/board/nvidia/dts/tegra20-seaboard.dts
index 527a296..4c10631 100644
--- a/board/nvidia/dts/tegra20-seaboard.dts
+++ b/board/nvidia/dts/tegra20-seaboard.dts
@@ -12,14 +12,15 @@ 
 	};
 
 	aliases {
-		/* This defines the order of our USB ports */
+		/* This defines the order of our ports */
 		usb0 = "/usb@c5008000";
 		usb1 = "/usb@c5000000";
-
 		i2c0 = "/i2c@7000d000";
 		i2c1 = "/i2c@7000c000";
 		i2c2 = "/i2c@7000c400";
 		i2c3 = "/i2c@7000c500";
+		sdhci0 = "/sdhci@c8000600";
+		sdhci1 = "/sdhci@c8000400";
 	};
 
 	memory {
@@ -156,13 +157,16 @@ 
 	};
 
 	sdhci@c8000400 {
+		status = "okay";
 		cd-gpios = <&gpio 69 0>; /* gpio PI5 */
 		wp-gpios = <&gpio 57 0>; /* gpio PH1 */
 		power-gpios = <&gpio 70 0>; /* gpio PI6 */
+		bus-width = <4>;
 	};
 
 	sdhci@c8000600 {
-		support-8bit;
+		status = "okay";
+		bus-width = <8>;
 	};
 
 	lcd_panel: panel {
diff --git a/board/nvidia/dts/tegra20-ventana.dts b/board/nvidia/dts/tegra20-ventana.dts
index 3e5e39d..0423595 100644
--- a/board/nvidia/dts/tegra20-ventana.dts
+++ b/board/nvidia/dts/tegra20-ventana.dts
@@ -8,6 +8,8 @@ 
 
 	aliases {
 		usb0 = "/usb@c5008000";
+		sdhci0 = "/sdhci@c8000600";
+		sdhci1 = "/sdhci@c8000400";
 	};
 
 	memory {
@@ -41,4 +43,17 @@ 
 	usb@c5004000 {
 		status = "disabled";
 	};
+
+	sdhci@c8000400 {
+		status = "okay";
+		cd-gpios = <&gpio 69 0>; /* gpio PI5 */
+		wp-gpios = <&gpio 57 0>; /* gpio PH1 */
+		power-gpios = <&gpio 70 0>; /* gpio PI6 */
+		bus-width = <4>;
+	};
+
+	sdhci@c8000600 {
+		status = "okay";
+		bus-width = <8>;
+	};
 };
diff --git a/board/nvidia/dts/tegra20-whistler.dts b/board/nvidia/dts/tegra20-whistler.dts
index 4579557..2d0a2ab 100644
--- a/board/nvidia/dts/tegra20-whistler.dts
+++ b/board/nvidia/dts/tegra20-whistler.dts
@@ -9,6 +9,8 @@ 
 	aliases {
 		i2c0 = "/i2c@7000d000";
 		usb0 = "/usb@c5008000";
+		sdhci0 = "/sdhci@c8000600";
+		sdhci1 = "/sdhci@c8000400";
 	};
 
 	memory {
@@ -57,4 +59,15 @@ 
 	usb@c5004000 {
 		status = "disabled";
 	};
+
+	sdhci@c8000400 {
+		status = "okay";
+		wp-gpios = <&gpio 173 0>; /* gpio PV5 */
+		bus-width = <8>;
+	};
+
+	sdhci@c8000600 {
+		status = "okay";
+		bus-width = <8>;
+	};
 };
diff --git a/board/toradex/dts/tegra20-colibri_t20_iris.dts b/board/toradex/dts/tegra20-colibri_t20_iris.dts
index c29b43a..a2c5a0e 100644
--- a/board/toradex/dts/tegra20-colibri_t20_iris.dts
+++ b/board/toradex/dts/tegra20-colibri_t20_iris.dts
@@ -10,6 +10,7 @@ 
 		usb0 = "/usb@c5008000";
 		usb1 = "/usb@c5000000";
 		usb2 = "/usb@c5004000";
+		sdhci0 = "/sdhci@c8000600";
 	};
 
 	usb@c5000000 {
@@ -35,4 +36,10 @@ 
 			compatible = "nand-flash";
 		};
 	};
+
+	sdhci@c8000600 {
+		status = "okay";
+		cd-gpios = <&gpio 23 0>; /* gpio PC7 */
+		bus-width = <4>;
+	};
 };
diff --git a/dts/Makefile b/dts/Makefile
index 922c78c..2ef31e9 100644
--- a/dts/Makefile
+++ b/dts/Makefile
@@ -50,7 +50,7 @@  DT_BIN	:= $(obj)dt.dtb
 $(DT_BIN): $(TOPDIR)/board/$(VENDOR)/dts/$(DEVICE_TREE).dts
 	rc=$$( \
 		cat $< | $(CPP) -P $(DTS_CPPFLAGS) - | \
-		{ { $(DTC) -R 4 -p 0x1000 -O dtb -o ${DT_BIN} - 2>&1 ; \
+		{ { $(DTC) -R 4 -p 0x1000 -i $(TOPDIR)/board/$(VENDOR)/dts -i $(TOPDIR)/arch/$(ARCH)/dts -O dtb -o ${DT_BIN} - 2>&1 ; \
 		    echo $$? >&3 ; } | \
 		  grep -v '^DTC: dts->dtb  on file' ; \
 	        } 3>&1 1>&2 ) ; \