diff mbox

[v2] N900: add device tree

Message ID 20130713121709.GC16473@amd.pavel.ucw.cz (mailing list archive)
State New, archived
Headers show

Commit Message

Pavel Machek July 13, 2013, 12:17 p.m. UTC
This adds device tree with neccessary support to boot with functional
video (on both emulator and real N900 device).

Signed-off-by: Pavel Machek <pavel@ucw.cz>

---

From v1: Aaro wants just GPLv2, so I did that. I re-enabled parts that
can be enabled on 3.10, and tested it on that kernel.

Comments

Aaro Koskinen July 14, 2013, 10:28 p.m. UTC | #1
Hi,

On Sat, Jul 13, 2013 at 02:17:09PM +0200, Pavel Machek wrote:
> 
> This adds device tree with neccessary support to boot with functional
> video (on both emulator and real N900 device).
> 
> Signed-off-by: Pavel Machek <pavel@ucw.cz>

You can also add:

Signed-off-by: Aaro Koskinen <aaro.koskinen@iki.fi>

Thanks,

A.

> 
> ---
> 
> From v1: Aaro wants just GPLv2, so I did that. I re-enabled parts that
> can be enabled on 3.10, and tested it on that kernel.
> 
> diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile
> index f0895c5..1950aed 100644
> --- a/arch/arm/boot/dts/Makefile
> +++ b/arch/arm/boot/dts/Makefile
> @@ -141,6 +141,7 @@ dtb-$(CONFIG_ARCH_OMAP2PLUS) += omap2420-h4.dtb \
>  	omap3-devkit8000.dtb \
>  	omap3-beagle-xm.dtb \
>  	omap3-evm.dtb \
> +	omap3-n900.dtb \
>  	omap3-tobi.dtb \
>  	omap3-igep0020.dtb \
>  	omap3-igep0030.dtb \
> diff --git a/arch/arm/boot/dts/omap3-n900.dts b/arch/arm/boot/dts/omap3-n900.dts
> new file mode 100644
> index 0000000..fb461bf
> --- /dev/null
> +++ b/arch/arm/boot/dts/omap3-n900.dts
> @@ -0,0 +1,92 @@
> +/*
> + * Copyright (C) 2013 Pavel Machek <pavel@ucw.cz>
> + * Copyright 2013 Aaro Koskinen <aaro.koskinen@iki.fi>
> + *
> + * 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/ "omap34xx.dtsi"
> +
> +/ {
> +	model = "Nokia N900";
> +	compatible = "nokia,omap3-n900", "ti,omap3";
> +
> +	cpus {
> +		cpu@0 {
> +			cpu0-supply = <&vcc>;
> +		};
> +	};
> +
> +	memory {
> +		device_type = "memory";
> +		reg = <0x80000000 0x10000000>; /* 256 MB */
> +	};
> +
> +};
> +
> +&i2c1 {
> +	clock-frequency = <2200000>;
> +
> +	twl: twl@48 {
> +		reg = <0x48>;
> +		interrupts = <7>; /* SYS_NIRQ cascaded to intc */
> +		interrupt-parent = <&intc>;
> +	};
> +};
> +
> +/include/ "twl4030.dtsi"
> +
> +&twl_gpio {
> +	ti,pullups	= <0x0>;
> +	ti,pulldowns	= <0x03ff3f>; /* BIT(0..5) | BIT(8..17) */
> +};
> +
> +&i2c2 {
> +	clock-frequency = <400000>;
> +};
> +
> +&i2c3 {
> +	clock-frequency = <100000>;
> +};
> +
> +&mmc1 {
> +	status = "disabled";
> +};
> +
> +&mmc2 {
> +	status = "disabled";
> +};
> +
> +&mmc3 {
> +	status = "disabled";
> +};
> +
> +&mcspi1 {
> +	// For some reason, touchscreen is neccessary for screen to work at 
> +	// all on real hw. It works well without it on emulator.
> +	//
> +	// Also... order in the device tree actually matters here.
> +	tsc2005@0 {
> +		compatible = "tsc2005";
> +		spi-max-frequency = <6000000>;
> +		reg = <0>;
> +	};
> +	mipid@2 {
> +		compatible = "acx565akm";
> +		spi-max-frequency = <6000000>;
> +		reg = <2>;
> +		// turbo_mode = 0,
> +		// cs_per_word = 0
> +	};
> +};
> +
> +&usb_otg_hs {
> +	interface-type = <0>;
> +	usb-phy = <&usb2_phy>;
> +	mode = <2>;
> +	power = <50>;
> +};
> 
> -- 
> (english) http://www.livejournal.com/~pavelmachek
> (cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html
Pavel Machek July 28, 2013, 1:44 p.m. UTC | #2
On Mon 2013-07-15 01:28:19, Aaro Koskinen wrote:
> Hi,
> 
> On Sat, Jul 13, 2013 at 02:17:09PM +0200, Pavel Machek wrote:
> > 
> > This adds device tree with neccessary support to boot with functional
> > video (on both emulator and real N900 device).
> > 
> > Signed-off-by: Pavel Machek <pavel@ucw.cz>
> 
> You can also add:
> 
> Signed-off-by: Aaro Koskinen <aaro.koskinen@iki.fi>

Benoit, could you apply this? Tony said you are doing dts changes, and
the patch seems to be ready.

> > From v1: Aaro wants just GPLv2, so I did that. I re-enabled parts that
> > can be enabled on 3.10, and tested it on that kernel.
> > 
> > diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile
> > index f0895c5..1950aed 100644
> > --- a/arch/arm/boot/dts/Makefile
> > +++ b/arch/arm/boot/dts/Makefile
> > @@ -141,6 +141,7 @@ dtb-$(CONFIG_ARCH_OMAP2PLUS) += omap2420-h4.dtb \
> >  	omap3-devkit8000.dtb \
> >  	omap3-beagle-xm.dtb \
> >  	omap3-evm.dtb \
> > +	omap3-n900.dtb \
> >  	omap3-tobi.dtb \
> >  	omap3-igep0020.dtb \
> >  	omap3-igep0030.dtb \
> > diff --git a/arch/arm/boot/dts/omap3-n900.dts b/arch/arm/boot/dts/omap3-n900.dts
> > new file mode 100644
> > index 0000000..fb461bf
> > --- /dev/null
> > +++ b/arch/arm/boot/dts/omap3-n900.dts
> > @@ -0,0 +1,92 @@
> > +/*
> > + * Copyright (C) 2013 Pavel Machek <pavel@ucw.cz>
> > + * Copyright 2013 Aaro Koskinen <aaro.koskinen@iki.fi>
> > + *
> > + * 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/ "omap34xx.dtsi"
> > +
> > +/ {
> > +	model = "Nokia N900";
> > +	compatible = "nokia,omap3-n900", "ti,omap3";
> > +
> > +	cpus {
> > +		cpu@0 {
> > +			cpu0-supply = <&vcc>;
> > +		};
> > +	};
> > +
> > +	memory {
> > +		device_type = "memory";
> > +		reg = <0x80000000 0x10000000>; /* 256 MB */
> > +	};
> > +
> > +};
> > +
> > +&i2c1 {
> > +	clock-frequency = <2200000>;
> > +
> > +	twl: twl@48 {
> > +		reg = <0x48>;
> > +		interrupts = <7>; /* SYS_NIRQ cascaded to intc */
> > +		interrupt-parent = <&intc>;
> > +	};
> > +};
> > +
> > +/include/ "twl4030.dtsi"
> > +
> > +&twl_gpio {
> > +	ti,pullups	= <0x0>;
> > +	ti,pulldowns	= <0x03ff3f>; /* BIT(0..5) | BIT(8..17) */
> > +};
> > +
> > +&i2c2 {
> > +	clock-frequency = <400000>;
> > +};
> > +
> > +&i2c3 {
> > +	clock-frequency = <100000>;
> > +};
> > +
> > +&mmc1 {
> > +	status = "disabled";
> > +};
> > +
> > +&mmc2 {
> > +	status = "disabled";
> > +};
> > +
> > +&mmc3 {
> > +	status = "disabled";
> > +};
> > +
> > +&mcspi1 {
> > +	// For some reason, touchscreen is neccessary for screen to work at 
> > +	// all on real hw. It works well without it on emulator.
> > +	//
> > +	// Also... order in the device tree actually matters here.
> > +	tsc2005@0 {
> > +		compatible = "tsc2005";
> > +		spi-max-frequency = <6000000>;
> > +		reg = <0>;
> > +	};
> > +	mipid@2 {
> > +		compatible = "acx565akm";
> > +		spi-max-frequency = <6000000>;
> > +		reg = <2>;
> > +		// turbo_mode = 0,
> > +		// cs_per_word = 0
> > +	};
> > +};
> > +
> > +&usb_otg_hs {
> > +	interface-type = <0>;
> > +	usb-phy = <&usb2_phy>;
> > +	mode = <2>;
> > +	power = <50>;
> > +};
> > 
> > -- 
> > (english) http://www.livejournal.com/~pavelmachek
> > (cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html
Pavel Machek Aug. 1, 2013, 11:43 p.m. UTC | #3
On Sun 2013-07-28 15:44:09, Pavel Machek wrote:
> On Mon 2013-07-15 01:28:19, Aaro Koskinen wrote:
> > Hi,
> > 
> > On Sat, Jul 13, 2013 at 02:17:09PM +0200, Pavel Machek wrote:
> > > 
> > > This adds device tree with neccessary support to boot with functional
> > > video (on both emulator and real N900 device).
> > > 
> > > Signed-off-by: Pavel Machek <pavel@ucw.cz>
> > 
> > You can also add:
> > 
> > Signed-off-by: Aaro Koskinen <aaro.koskinen@iki.fi>
> 
> Benoit, could you apply this? Tony said you are doing dts changes, and
> the patch seems to be ready.

Tony, Benoit was apparently abducted by aliens or something. Is there
chance you could take the patch?

Thanks,
									Pavel

> > > From v1: Aaro wants just GPLv2, so I did that. I re-enabled parts that
> > > can be enabled on 3.10, and tested it on that kernel.
> > > 
> > > diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile
> > > index f0895c5..1950aed 100644
> > > --- a/arch/arm/boot/dts/Makefile
> > > +++ b/arch/arm/boot/dts/Makefile
> > > @@ -141,6 +141,7 @@ dtb-$(CONFIG_ARCH_OMAP2PLUS) += omap2420-h4.dtb \
> > >  	omap3-devkit8000.dtb \
> > >  	omap3-beagle-xm.dtb \
> > >  	omap3-evm.dtb \
> > > +	omap3-n900.dtb \
> > >  	omap3-tobi.dtb \
> > >  	omap3-igep0020.dtb \
> > >  	omap3-igep0030.dtb \
> > > diff --git a/arch/arm/boot/dts/omap3-n900.dts b/arch/arm/boot/dts/omap3-n900.dts
> > > new file mode 100644
> > > index 0000000..fb461bf
> > > --- /dev/null
> > > +++ b/arch/arm/boot/dts/omap3-n900.dts
> > > @@ -0,0 +1,92 @@
> > > +/*
> > > + * Copyright (C) 2013 Pavel Machek <pavel@ucw.cz>
> > > + * Copyright 2013 Aaro Koskinen <aaro.koskinen@iki.fi>
> > > + *
> > > + * 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/ "omap34xx.dtsi"
> > > +
> > > +/ {
> > > +	model = "Nokia N900";
> > > +	compatible = "nokia,omap3-n900", "ti,omap3";
> > > +
> > > +	cpus {
> > > +		cpu@0 {
> > > +			cpu0-supply = <&vcc>;
> > > +		};
> > > +	};
> > > +
> > > +	memory {
> > > +		device_type = "memory";
> > > +		reg = <0x80000000 0x10000000>; /* 256 MB */
> > > +	};
> > > +
> > > +};
> > > +
> > > +&i2c1 {
> > > +	clock-frequency = <2200000>;
> > > +
> > > +	twl: twl@48 {
> > > +		reg = <0x48>;
> > > +		interrupts = <7>; /* SYS_NIRQ cascaded to intc */
> > > +		interrupt-parent = <&intc>;
> > > +	};
> > > +};
> > > +
> > > +/include/ "twl4030.dtsi"
> > > +
> > > +&twl_gpio {
> > > +	ti,pullups	= <0x0>;
> > > +	ti,pulldowns	= <0x03ff3f>; /* BIT(0..5) | BIT(8..17) */
> > > +};
> > > +
> > > +&i2c2 {
> > > +	clock-frequency = <400000>;
> > > +};
> > > +
> > > +&i2c3 {
> > > +	clock-frequency = <100000>;
> > > +};
> > > +
> > > +&mmc1 {
> > > +	status = "disabled";
> > > +};
> > > +
> > > +&mmc2 {
> > > +	status = "disabled";
> > > +};
> > > +
> > > +&mmc3 {
> > > +	status = "disabled";
> > > +};
> > > +
> > > +&mcspi1 {
> > > +	// For some reason, touchscreen is neccessary for screen to work at 
> > > +	// all on real hw. It works well without it on emulator.
> > > +	//
> > > +	// Also... order in the device tree actually matters here.
> > > +	tsc2005@0 {
> > > +		compatible = "tsc2005";
> > > +		spi-max-frequency = <6000000>;
> > > +		reg = <0>;
> > > +	};
> > > +	mipid@2 {
> > > +		compatible = "acx565akm";
> > > +		spi-max-frequency = <6000000>;
> > > +		reg = <2>;
> > > +		// turbo_mode = 0,
> > > +		// cs_per_word = 0
> > > +	};
> > > +};
> > > +
> > > +&usb_otg_hs {
> > > +	interface-type = <0>;
> > > +	usb-phy = <&usb2_phy>;
> > > +	mode = <2>;
> > > +	power = <50>;
> > > +};
> > > 
> > > -- 
> > > (english) http://www.livejournal.com/~pavelmachek
> > > (cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html
>
Javier Martinez Canillas Aug. 11, 2013, 3:02 p.m. UTC | #4
Hi Pavel,

some minor comments about your patch below

On Sat, Jul 13, 2013 at 2:17 PM, Pavel Machek <pavel@ucw.cz> wrote:
>
> This adds device tree with neccessary support to boot with functional
> video (on both emulator and real N900 device).
>
> Signed-off-by: Pavel Machek <pavel@ucw.cz>
>
> ---
>
> From v1: Aaro wants just GPLv2, so I did that. I re-enabled parts that
> can be enabled on 3.10, and tested it on that kernel.
>
> diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile
> index f0895c5..1950aed 100644
> --- a/arch/arm/boot/dts/Makefile
> +++ b/arch/arm/boot/dts/Makefile
> @@ -141,6 +141,7 @@ dtb-$(CONFIG_ARCH_OMAP2PLUS) += omap2420-h4.dtb \
>         omap3-devkit8000.dtb \
>         omap3-beagle-xm.dtb \
>         omap3-evm.dtb \
> +       omap3-n900.dtb \
>         omap3-tobi.dtb \
>         omap3-igep0020.dtb \
>         omap3-igep0030.dtb \
> diff --git a/arch/arm/boot/dts/omap3-n900.dts b/arch/arm/boot/dts/omap3-n900.dts
> new file mode 100644
> index 0000000..fb461bf
> --- /dev/null
> +++ b/arch/arm/boot/dts/omap3-n900.dts
> @@ -0,0 +1,92 @@
> +/*
> + * Copyright (C) 2013 Pavel Machek <pavel@ucw.cz>
> + * Copyright 2013 Aaro Koskinen <aaro.koskinen@iki.fi>
> + *
> + * 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/ "omap34xx.dtsi"
> +

The current trend is to use #include "omap34xx.dtsi" instead /include/
in order to use the C pre-processor and the macros defined in
include/dt-bindings.

> +/ {
> +       model = "Nokia N900";
> +       compatible = "nokia,omap3-n900", "ti,omap3";
> +
> +       cpus {
> +               cpu@0 {
> +                       cpu0-supply = <&vcc>;
> +               };
> +       };
> +
> +       memory {
> +               device_type = "memory";
> +               reg = <0x80000000 0x10000000>; /* 256 MB */
> +       };
> +
> +};
> +
> +&i2c1 {
> +       clock-frequency = <2200000>;
> +
> +       twl: twl@48 {
> +               reg = <0x48>;
> +               interrupts = <7>; /* SYS_NIRQ cascaded to intc */
> +               interrupt-parent = <&intc>;
> +       };
> +};
> +
> +/include/ "twl4030.dtsi"
> +
> +&twl_gpio {
> +       ti,pullups      = <0x0>;
> +       ti,pulldowns    = <0x03ff3f>; /* BIT(0..5) | BIT(8..17) */
> +};
> +
> +&i2c2 {
> +       clock-frequency = <400000>;
> +};
> +
> +&i2c3 {
> +       clock-frequency = <100000>;
> +};
> +
> +&mmc1 {
> +       status = "disabled";
> +};
> +
> +&mmc2 {
> +       status = "disabled";
> +};
> +
> +&mmc3 {
> +       status = "disabled";
> +};
> +
> +&mcspi1 {
> +       // For some reason, touchscreen is neccessary for screen to work at
> +       // all on real hw. It works well without it on emulator.
> +       //
> +       // Also... order in the device tree actually matters here.
> +       tsc2005@0 {
> +               compatible = "tsc2005";
> +               spi-max-frequency = <6000000>;
> +               reg = <0>;
> +       };
> +       mipid@2 {
> +               compatible = "acx565akm";
> +               spi-max-frequency = <6000000>;
> +               reg = <2>;
> +               // turbo_mode = 0,
> +               // cs_per_word = 0
> +       };
> +};

You should remove these properties if they are not being used instead
of keeping them as commented.

> +
> +&usb_otg_hs {
> +       interface-type = <0>;
> +       usb-phy = <&usb2_phy>;
> +       mode = <2>;
> +       power = <50>;
> +};
>
> --

Thanks a lot and best regards,
Javier
Benoit Cousson Aug. 13, 2013, 10:50 a.m. UTC | #5
Hi Pavel,

I finally got released by the aliens. It took longer than expected and 
beside a small scar on the back of my neck, I feel pretty OK.

I just have few cosmetic comments on top of Javier's ones.

On 11/08/2013 17:02, Javier Martinez Canillas wrote:
> Hi Pavel,
>
> some minor comments about your patch below
>
> On Sat, Jul 13, 2013 at 2:17 PM, Pavel Machek <pavel@ucw.cz> wrote:
>>
>> This adds device tree with neccessary support to boot with functional

Typo----------------------------^

>> video (on both emulator and real N900 device).
>>
>> Signed-off-by: Pavel Machek <pavel@ucw.cz>
>>
>> ---
>>
>>  From v1: Aaro wants just GPLv2, so I did that. I re-enabled parts that
>> can be enabled on 3.10, and tested it on that kernel.
>>
>> diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile
>> index f0895c5..1950aed 100644
>> --- a/arch/arm/boot/dts/Makefile
>> +++ b/arch/arm/boot/dts/Makefile
>> @@ -141,6 +141,7 @@ dtb-$(CONFIG_ARCH_OMAP2PLUS) += omap2420-h4.dtb \
>>          omap3-devkit8000.dtb \
>>          omap3-beagle-xm.dtb \
>>          omap3-evm.dtb \
>> +       omap3-n900.dtb \
>>          omap3-tobi.dtb \
>>          omap3-igep0020.dtb \
>>          omap3-igep0030.dtb \
>> diff --git a/arch/arm/boot/dts/omap3-n900.dts b/arch/arm/boot/dts/omap3-n900.dts
>> new file mode 100644
>> index 0000000..fb461bf
>> --- /dev/null
>> +++ b/arch/arm/boot/dts/omap3-n900.dts
>> @@ -0,0 +1,92 @@
>> +/*
>> + * Copyright (C) 2013 Pavel Machek <pavel@ucw.cz>
>> + * Copyright 2013 Aaro Koskinen <aaro.koskinen@iki.fi>
>> + *
>> + * 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/ "omap34xx.dtsi"
>> +
>
> The current trend is to use #include "omap34xx.dtsi" instead /include/
> in order to use the C pre-processor and the macros defined in
> include/dt-bindings.
>
>> +/ {
>> +       model = "Nokia N900";
>> +       compatible = "nokia,omap3-n900", "ti,omap3";
>> +
>> +       cpus {
>> +               cpu@0 {
>> +                       cpu0-supply = <&vcc>;
>> +               };
>> +       };
>> +
>> +       memory {
>> +               device_type = "memory";
>> +               reg = <0x80000000 0x10000000>; /* 256 MB */
>> +       };
>> +
>> +};
>> +
>> +&i2c1 {
>> +       clock-frequency = <2200000>;
>> +
>> +       twl: twl@48 {
>> +               reg = <0x48>;
>> +               interrupts = <7>; /* SYS_NIRQ cascaded to intc */
>> +               interrupt-parent = <&intc>;
>> +       };
>> +};
>> +
>> +/include/ "twl4030.dtsi"
>> +
>> +&twl_gpio {
>> +       ti,pullups      = <0x0>;
>> +       ti,pulldowns    = <0x03ff3f>; /* BIT(0..5) | BIT(8..17) */
>> +};
>> +
>> +&i2c2 {
>> +       clock-frequency = <400000>;
>> +};
>> +
>> +&i2c3 {
>> +       clock-frequency = <100000>;
>> +};
>> +
>> +&mmc1 {
>> +       status = "disabled";
>> +};
>> +
>> +&mmc2 {
>> +       status = "disabled";
>> +};
>> +
>> +&mmc3 {
>> +       status = "disabled";
>> +};
>> +
>> +&mcspi1 {
>> +       // For some reason, touchscreen is neccessary for screen to work at

Same typo than before---------------------------^

>> +       // all on real hw. It works well without it on emulator.
>> +       //
>> +       // Also... order in the device tree actually matters here.

Nit: Please use the regular Linux style comment.

The order should not matter at all in DT, it should be a static 
representation of the HW, so there is probably something wrong in the 
code that make the device creation order important.

>> +       tsc2005@0 {
>> +               compatible = "tsc2005";
>> +               spi-max-frequency = <6000000>;
>> +               reg = <0>;
>> +       };
>> +       mipid@2 {
>> +               compatible = "acx565akm";
>> +               spi-max-frequency = <6000000>;
>> +               reg = <2>;
>> +               // turbo_mode = 0,
>> +               // cs_per_word = 0
>> +       };
>> +};
>
> You should remove these properties if they are not being used instead
> of keeping them as commented.
>
>> +
>> +&usb_otg_hs {
>> +       interface-type = <0>;
>> +       usb-phy = <&usb2_phy>;
>> +       mode = <2>;
>> +       power = <50>;
>> +};

Beside my comments and the ones from Javier, it looks good.
If you can repost ASAP, I'll take it right after.
It will be the first one in the list.

Thanks,
Benoit
diff mbox

Patch

diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile
index f0895c5..1950aed 100644
--- a/arch/arm/boot/dts/Makefile
+++ b/arch/arm/boot/dts/Makefile
@@ -141,6 +141,7 @@  dtb-$(CONFIG_ARCH_OMAP2PLUS) += omap2420-h4.dtb \
 	omap3-devkit8000.dtb \
 	omap3-beagle-xm.dtb \
 	omap3-evm.dtb \
+	omap3-n900.dtb \
 	omap3-tobi.dtb \
 	omap3-igep0020.dtb \
 	omap3-igep0030.dtb \
diff --git a/arch/arm/boot/dts/omap3-n900.dts b/arch/arm/boot/dts/omap3-n900.dts
new file mode 100644
index 0000000..fb461bf
--- /dev/null
+++ b/arch/arm/boot/dts/omap3-n900.dts
@@ -0,0 +1,92 @@ 
+/*
+ * Copyright (C) 2013 Pavel Machek <pavel@ucw.cz>
+ * Copyright 2013 Aaro Koskinen <aaro.koskinen@iki.fi>
+ *
+ * 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/ "omap34xx.dtsi"
+
+/ {
+	model = "Nokia N900";
+	compatible = "nokia,omap3-n900", "ti,omap3";
+
+	cpus {
+		cpu@0 {
+			cpu0-supply = <&vcc>;
+		};
+	};
+
+	memory {
+		device_type = "memory";
+		reg = <0x80000000 0x10000000>; /* 256 MB */
+	};
+
+};
+
+&i2c1 {
+	clock-frequency = <2200000>;
+
+	twl: twl@48 {
+		reg = <0x48>;
+		interrupts = <7>; /* SYS_NIRQ cascaded to intc */
+		interrupt-parent = <&intc>;
+	};
+};
+
+/include/ "twl4030.dtsi"
+
+&twl_gpio {
+	ti,pullups	= <0x0>;
+	ti,pulldowns	= <0x03ff3f>; /* BIT(0..5) | BIT(8..17) */
+};
+
+&i2c2 {
+	clock-frequency = <400000>;
+};
+
+&i2c3 {
+	clock-frequency = <100000>;
+};
+
+&mmc1 {
+	status = "disabled";
+};
+
+&mmc2 {
+	status = "disabled";
+};
+
+&mmc3 {
+	status = "disabled";
+};
+
+&mcspi1 {
+	// For some reason, touchscreen is neccessary for screen to work at 
+	// all on real hw. It works well without it on emulator.
+	//
+	// Also... order in the device tree actually matters here.
+	tsc2005@0 {
+		compatible = "tsc2005";
+		spi-max-frequency = <6000000>;
+		reg = <0>;
+	};
+	mipid@2 {
+		compatible = "acx565akm";
+		spi-max-frequency = <6000000>;
+		reg = <2>;
+		// turbo_mode = 0,
+		// cs_per_word = 0
+	};
+};
+
+&usb_otg_hs {
+	interface-type = <0>;
+	usb-phy = <&usb2_phy>;
+	mode = <2>;
+	power = <50>;
+};