On Fri, May 18, 2012 at 11:11 PM, Grant Likely <grant.likely@xxxxxxxxxxxx> wrote: > On Wed, 2 May 2012 10:57:11 -0700, Olof Johansson <olof@xxxxxxxxx> wrote: >> Hi, >> >> [adding devicetree-discuss] >> >> On Mon, Apr 30, 2012 at 12:14 PM, Thomas Abraham >> <thomas.abraham@xxxxxxxxxx> wrote: >> > And interrupt combiner, external interrupt wakeup interrupt controller >> > and smsc9215 lan controller nodes. >> > >> > Signed-off-by: Thomas Abraham <thomas.abraham@xxxxxxxxxx> >> > --- >> > arch/arm/boot/dts/exynos5250-smdk5250.dts | 11 ++++++ >> > arch/arm/boot/dts/exynos5250.dtsi | 55 +++++++++++++++++++++++++++++ >> > 2 files changed, 66 insertions(+), 0 deletions(-) >> > >> > diff --git a/arch/arm/boot/dts/exynos5250-smdk5250.dts b/arch/arm/boot/dts/exynos5250-smdk5250.dts >> > index bcc4b89..dbc4bdb 100644 >> > --- a/arch/arm/boot/dts/exynos5250-smdk5250.dts >> > +++ b/arch/arm/boot/dts/exynos5250-smdk5250.dts >> > @@ -24,6 +24,17 @@ >> > bootargs = "root=/dev/ram0 rw ramdisk=8192 console=ttySAC1,115200"; >> > }; >> > >> > + lan9215@0x05000000 { >> > + compatible = "smsc,lan9215", "smsc,lan9115"; >> > + reg = <0x05000000 0x20000>; >> > + interrupts = <5 0>; >> > + interrupt-parent = <&wakeup_eint>; >> > + phy-mode = "mii"; >> > + smsc,irq-push-pull; >> > + smsc,force-internal-phy; >> > + local-mac-address = [00 80 00 23 45 67]; >> > + }; >> > + >> >> since the 911x sits on a chipselect bus, you should instead add that >> bus to the dtsi and define this on that bus. >> >> Something like this in the dtsi: >> >> sromc-bus { >> #address-cells = <2>; >> #size-cells = <1>; >> ranges = < 0 0 0x04000000 0x20000 >> 1 0 0x05000000 0x20000 >> 2 0 0x06000000 0x20000 >> 3 0 0x07000000 0x20000>; >> }; >> >> and in the dts: >> >> sromc-bus { >> lan9215@1,0 { >> compatible = "smsc,lan9215", "smsc,lan9115"; >> reg = <1 0 0x20000>; >> interrupts = <5 0>; >> interrupt-parent = <&wakeup_eint>; >> phy-mode = "mii"; >> smsc,irq-push-pull; >> smsc,force-internal-phy; >> local-mac-address = [00 80 00 23 45 67]; >> }; >> }; >> >> >> (You might be able to do just fine with one address cell, I'm not 100% >> sure why Grant's example uses two, but I used the same above for >> consistency). > > Because otherwise there is no way to describe an offset from the base > of the chipselect base value, and the core code will try to apply the > size to the cs part of the address specifier. (so in the example > above the address range described by: > > reg = <1 0x20000>; > > would mean cs values 1 to 0x20001; which is definitely wrong. Ah yes, that makes perfect sense. I can't seem to create an account to update the 'Device_Tree_Usage' page on the devicetree.org wiki, but it'd probably not be a bad idea to include the above for explanation there. -Olof -- To unsubscribe from this list: send the line "unsubscribe linux-samsung-soc" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html