Message ID | 1322106896-23054-6-git-send-email-sjg@chromium.org |
---|---|
State | New, archived |
Headers | show |
On 11/23/2011 08:54 PM, Simon Glass wrote: > This was taken from commit 1ea6b8f at: > git://git.kernel.org/pub/scm/linux/kernel/git/olof/tegra.git That's not the latest version in linux-next. Also, this doesn't include quite a few changes that have been sent to the mailing lists but not yet applied. In particular, linux-next now includes a minimal USB binding. Should we just use this in U-Boot for now? We should get review on the kernel lists before bringing in this more advanced USB binding in U-Boot, and perhaps even add the binding into the kernel at the same time? Patches have been posted to: * Convert to the finalized ARM GIC binding. * Disable devices in the per-board .dts files that aren't used on those boards. * Various other cleanups in order to make the .dts files match the kernel's non-DT board files. * Perhaps more that I forget. I suppose those could be applied to U-Boot as and when they are applied to the kernel.
Hi Stephen, On Mon, Nov 28, 2011 at 10:56 AM, Stephen Warren <swarren@nvidia.com> wrote: > On 11/23/2011 08:54 PM, Simon Glass wrote: >> This was taken from commit 1ea6b8f at: >> git://git.kernel.org/pub/scm/linux/kernel/git/olof/tegra.git > > That's not the latest version in linux-next. Also, this doesn't include > quite a few changes that have been sent to the mailing lists but not yet > applied. OK I see a newer version in 'next' that now has USB so have picked that up. I picked 'master' originally. > > In particular, linux-next now includes a minimal USB binding. Should we > just use this in U-Boot for now? We should get review on the kernel > lists before bringing in this more advanced USB binding in U-Boot, and > perhaps even add the binding into the kernel at the same time? I copied my email to the device-tree mailing list. Hopefully that is enough to get a review there. It feels wrong to send U-Boot patches to the kernel list...? > > Patches have been posted to: > * Convert to the finalized ARM GIC binding. > * Disable devices in the per-board .dts files that aren't used on those > boards. > * Various other cleanups in order to make the .dts files match the > kernel's non-DT board files. > * Perhaps more that I forget. Well I would prefer to pick these up when they are actually applied! > > I suppose those could be applied to U-Boot as and when they are applied > to the kernel. Yes I think so. Regards, Simon > > -- > nvpublic >
On 12/01/2011 06:24 PM, Simon Glass wrote: > Hi Stephen, > > On Mon, Nov 28, 2011 at 10:56 AM, Stephen Warren <swarren@nvidia.com> wrote: >> On 11/23/2011 08:54 PM, Simon Glass wrote: >>> This was taken from commit 1ea6b8f at: >>> git://git.kernel.org/pub/scm/linux/kernel/git/olof/tegra.git >> ... >> In particular, linux-next now includes a minimal USB binding. Should we >> just use this in U-Boot for now? We should get review on the kernel >> lists before bringing in this more advanced USB binding in U-Boot, and >> perhaps even add the binding into the kernel at the same time? > > I copied my email to the device-tree mailing list. Hopefully that is > enough to get a review there. It feels wrong to send U-Boot patches to > the kernel list...? I think the kernel and U-boot need to co-ordinate on the DT bindings. Posting at least to linux-tegra, the Tegra maintainers, and perhaps even the kernel's domain-specific list (i.e. linux-usb) seems appropriate to me. DT is a cross-functional thing, and really needs cross-functional discussion and review. devicetree-discuss will cover the DT experts, but probably not the CPU and subsystem experts.
Hi Stephen, On Fri, Dec 2, 2011 at 7:58 AM, Stephen Warren <swarren@nvidia.com> wrote: > On 12/01/2011 06:24 PM, Simon Glass wrote: >> Hi Stephen, >> >> On Mon, Nov 28, 2011 at 10:56 AM, Stephen Warren <swarren@nvidia.com> wrote: >>> On 11/23/2011 08:54 PM, Simon Glass wrote: >>>> This was taken from commit 1ea6b8f at: >>>> git://git.kernel.org/pub/scm/linux/kernel/git/olof/tegra.git >>> > ... >>> In particular, linux-next now includes a minimal USB binding. Should we >>> just use this in U-Boot for now? We should get review on the kernel >>> lists before bringing in this more advanced USB binding in U-Boot, and >>> perhaps even add the binding into the kernel at the same time? >> >> I copied my email to the device-tree mailing list. Hopefully that is >> enough to get a review there. It feels wrong to send U-Boot patches to >> the kernel list...? > > I think the kernel and U-boot need to co-ordinate on the DT bindings. > Posting at least to linux-tegra, the Tegra maintainers, and perhaps even > the kernel's domain-specific list (i.e. linux-usb) seems appropriate to > me. DT is a cross-functional thing, and really needs cross-functional > discussion and review. devicetree-discuss will cover the DT experts, but > probably not the CPU and subsystem experts. I worry about the implication that I am blazing a trail here. I would prefer to take the bindings as set down by the kernel and make them work within U-Boot. The reasoning here is that Linux has more demanding requirements, and more flexibility, so it is unlikely that U-Boot would need more features in its fdt. The one exception might be due to efficiency. If it takes 10ms and 50KB of code to figure out the system state from the fdt then U-Boot people might get upset, so I do want to make sure the bindings can be efficiently parsed by U-Boot (hence my peripheral id approach). Where those bindings don't exist yet, I would prefer to use a place-holder until they are set, then change the U-Boot code later. That process can take many months and we don't want to hold back actual functionality in U-Boot just because we haven't finalized the fdt definitions for a particular peripheral. I will certainly widen my distribution list for fdt patches in the hope that resolution can be reached then and there, but it will be hard for kernel people to agree a binding until they have written / modified the driver. IMO it would probably be a good idea for people to subscribe to device-tree-discuss if they are interested in fdt things, kernel or U-Boot or other. LKML already gets a huge amount of traffic. Regards, Simon > > -- > nvpublic >
diff --git a/arch/arm/cpu/armv7/tegra2/config.mk b/arch/arm/cpu/armv7/tegra2/config.mk index 2303dba..fe9ef5b 100644 --- a/arch/arm/cpu/armv7/tegra2/config.mk +++ b/arch/arm/cpu/armv7/tegra2/config.mk @@ -31,3 +31,5 @@ CFLAGS_arch/arm/lib/board.o += -march=armv4t endif USE_PRIVATE_LIBGCC = yes + +CONFIG_ARCH_DEVICE_TREE := tegra20 diff --git a/arch/arm/dts/tegra20.dtsi b/arch/arm/dts/tegra20.dtsi new file mode 100644 index 0000000..65d7e6a --- /dev/null +++ b/arch/arm/dts/tegra20.dtsi @@ -0,0 +1,147 @@ +/include/ "skeleton.dtsi" + +/ { + compatible = "nvidia,tegra20"; + interrupt-parent = <&intc>; + + intc: interrupt-controller@50041000 { + compatible = "nvidia,tegra20-gic"; + interrupt-controller; + #interrupt-cells = <1>; + reg = < 0x50041000 0x1000 >, + < 0x50040100 0x0100 >; + }; + + i2c@7000c000 { + #address-cells = <1>; + #size-cells = <0>; + compatible = "nvidia,tegra20-i2c"; + reg = <0x7000C000 0x100>; + interrupts = < 70 >; + }; + + i2c@7000c400 { + #address-cells = <1>; + #size-cells = <0>; + compatible = "nvidia,tegra20-i2c"; + reg = <0x7000C400 0x100>; + interrupts = < 116 >; + }; + + i2c@7000c500 { + #address-cells = <1>; + #size-cells = <0>; + compatible = "nvidia,tegra20-i2c"; + reg = <0x7000C500 0x100>; + interrupts = < 124 >; + }; + + i2c@7000d000 { + #address-cells = <1>; + #size-cells = <0>; + compatible = "nvidia,tegra20-i2c"; + reg = <0x7000D000 0x200>; + interrupts = < 85 >; + }; + + i2s@70002800 { + #address-cells = <1>; + #size-cells = <0>; + compatible = "nvidia,tegra20-i2s"; + reg = <0x70002800 0x200>; + interrupts = < 45 >; + dma-channel = < 2 >; + }; + + i2s@70002a00 { + #address-cells = <1>; + #size-cells = <0>; + compatible = "nvidia,tegra20-i2s"; + reg = <0x70002a00 0x200>; + interrupts = < 35 >; + dma-channel = < 1 >; + }; + + das@70000c00 { + #address-cells = <1>; + #size-cells = <0>; + compatible = "nvidia,tegra20-das"; + reg = <0x70000c00 0x80>; + }; + + gpio: gpio@6000d000 { + compatible = "nvidia,tegra20-gpio"; + reg = < 0x6000d000 0x1000 >; + interrupts = < 64 65 66 67 87 119 121 >; + #gpio-cells = <2>; + gpio-controller; + }; + + pinmux: pinmux@70000000 { + compatible = "nvidia,tegra20-pinmux"; + reg = < 0x70000014 0x10 /* Tri-state registers */ + 0x70000080 0x20 /* Mux registers */ + 0x700000a0 0x14 /* Pull-up/down registers */ + 0x70000868 0xa8 >; /* Pad control registers */ + }; + + serial@70006000 { + compatible = "nvidia,tegra20-uart"; + reg = <0x70006000 0x40>; + reg-shift = <2>; + interrupts = < 68 >; + }; + + serial@70006040 { + compatible = "nvidia,tegra20-uart"; + reg = <0x70006040 0x40>; + reg-shift = <2>; + interrupts = < 69 >; + }; + + serial@70006200 { + compatible = "nvidia,tegra20-uart"; + reg = <0x70006200 0x100>; + reg-shift = <2>; + interrupts = < 78 >; + }; + + serial@70006300 { + compatible = "nvidia,tegra20-uart"; + reg = <0x70006300 0x100>; + reg-shift = <2>; + interrupts = < 122 >; + }; + + serial@70006400 { + compatible = "nvidia,tegra20-uart"; + reg = <0x70006400 0x100>; + reg-shift = <2>; + interrupts = < 123 >; + }; + + sdhci@c8000000 { + compatible = "nvidia,tegra20-sdhci"; + reg = <0xc8000000 0x200>; + interrupts = < 46 >; + }; + + sdhci@c8000200 { + compatible = "nvidia,tegra20-sdhci"; + reg = <0xc8000200 0x200>; + interrupts = < 47 >; + }; + + sdhci@c8000400 { + compatible = "nvidia,tegra20-sdhci"; + reg = <0xc8000400 0x200>; + interrupts = < 51 >; + }; + + sdhci@c8000600 { + compatible = "nvidia,tegra20-sdhci"; + reg = <0xc8000600 0x200>; + interrupts = < 63 >; + }; +}; +
This was taken from commit 1ea6b8f at: git://git.kernel.org/pub/scm/linux/kernel/git/olof/tegra.git config.mk is updated to provide this file to boards through the built-in mechanism: /include/ ARCH_CPU_DTS Signed-off-by: Simon Glass <sjg@chromium.org> --- arch/arm/cpu/armv7/tegra2/config.mk | 2 + arch/arm/dts/tegra20.dtsi | 147 +++++++++++++++++++++++++++++++++++ 2 files changed, 149 insertions(+), 0 deletions(-) create mode 100644 arch/arm/dts/tegra20.dtsi