Message ID | 1360791890-6644-2-git-send-email-twarren@nvidia.com |
---|---|
State | Superseded |
Delegated to: | Tom Warren |
Headers | show |
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.
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
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.
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.
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
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 ) ; \