Re: [PATCH 1/4] ARM: dts: omap3-pandora: add common device tree

2015-02-12 Thread Dr. H. Nikolaus Schaller

Am 12.02.2015 um 18:47 schrieb Grazvydas Ignotas nota...@gmail.com:

 On Thu, Feb 12, 2015 at 3:03 PM, Marek Belisko ma...@goldelico.com wrote:
 From: H. Nikolaus Schaller h...@goldelico.com
 
 This device tree allows to boot, supports the panel,
 framebuffer, touch screen, as well as some more peripherals.
 Since there is a OMAP3530 based 600 MHz variant and a DM3730 based
 1 GHz variant we must include this common device tree code
 in one of two CPU specific device trees.
 
 Signed-off-by: H. Nikolaus Schaller h...@goldelico.com
 Signed-off-by: Marek Belisko ma...@goldelico.com
 ---
 arch/arm/boot/dts/omap3-pandora-common.dtsi | 641 
 
 1 file changed, 641 insertions(+)
 create mode 100644 arch/arm/boot/dts/omap3-pandora-common.dtsi
 
 diff --git a/arch/arm/boot/dts/omap3-pandora-common.dtsi 
 b/arch/arm/boot/dts/omap3-pandora-common.dtsi
 new file mode 100644
 index 000..0a2a878
 --- /dev/null
 +++ b/arch/arm/boot/dts/omap3-pandora-common.dtsi
 @@ -0,0 +1,641 @@
 
 ...
 
 +
 +   gpio-leds {
 +
 +   compatible = gpio-leds;
 +
 +   pinctrl-names = default;
 +   pinctrl-0 = led_pins;
 +
 +   led@1 {
 +   label = pandora::sd1;
 +   gpios = gpio5 0 GPIO_ACTIVE_HIGH;/* GPIO_128 
 */
 +   linux,default-trigger = mmc0;
 +   default-state = off;
 +   };
 +
 +   led@2 {
 +   label = pandora::sd2;
 +   gpios = gpio5 1 GPIO_ACTIVE_HIGH;/* GPIO_129 
 */
 +   linux,default-trigger = mmc1;
 +   default-state = off;
 +   };
 +
 +   led@3 {
 +   label = pandora::bluetooth;
 +   gpios = gpio5 30 GPIO_ACTIVE_HIGH;   /* GPIO_158 
 */
 +   linux,default-trigger = heartbeat;
 
 I’d prefer this had no trigger, but no strong feelings here.

Ok. Well, this is more or less our testing setup - so that we did see something 
before
we could fix the display setup. I think practice will show what is better, and 
then
it can be patched. We are at the beginning of Pandora DT work…

 
 +   default-state = off;
 +   };
 +
 +   led@4 {
 +   label = pandora::wifi;
 +   gpios = gpio5 31 GPIO_ACTIVE_HIGH;   /* GPIO_159 
 */
 +   linux,default-trigger = mmc2;
 +   default-state = off;
 +   };
 +   };
 +
 +   gpio-keys {
 +   compatible = gpio-keys;
 +
 +   pinctrl-names = default;
 +   pinctrl-0 = button_pins;
 +
 +   up-button {
 +   label = up;
 +   linux,code = KEY_UP;
 +   gpios = gpio4 14 GPIO_ACTIVE_HIGH;   /* GPIO_110 
 */
 +   gpio-key,wakeup;
 +   };
 +
 +   down-button {
 +   label = down;
 +   linux,code = KEY_DOWN;
 +   gpios = gpio4 7 GPIO_ACTIVE_HIGH;/* GPIO_103 
 */
 +   gpio-key,wakeup;
 +   };
 +
 +   left-button {
 +   label = left;
 +   linux,code = KEY_LEFT;
 +   gpios = gpio4 0 GPIO_ACTIVE_HIGH;/* GPIO_96 */
 +   gpio-key,wakeup;
 +   };
 +
 +   right-button {
 +   label = right;
 +   linux,code = KEY_RIGHT;
 +   gpios = gpio4 2 GPIO_ACTIVE_HIGH;/* GPIO_98 */
 +   gpio-key,wakeup;
 +   };
 +
 +   pageup-button {
 +   label = game 1;
 +   linux,code = KEY_PAGEUP;
 +   gpios = gpio4 13 GPIO_ACTIVE_HIGH;   /* GPIO_109 
 */
 +   gpio-key,wakeup;
 +   };
 +
 +   pagedown-button {
 +   label = game 3;
 +   linux,code = KEY_PAGEDOWN;
 +   gpios = gpio4 10 GPIO_ACTIVE_HIGH;   /* GPIO_106 
 */
 +   gpio-key,wakeup;
 +   };
 +
 +   home-button {
 +   label = game 4;
 +   linux,code = KEY_HOME;
 +   gpios = gpio4 5 GPIO_ACTIVE_HIGH;/* GPIO_101 
 */
 +   gpio-key,wakeup;
 +   };
 +
 +   end-button {
 +   label = game 2;
 +   linux,code = KEY_END;
 +   gpios = gpio4 15 GPIO_ACTIVE_HIGH;   /* GPIO_111 
 */
 +   gpio-key,wakeup;
 +   };
 +
 +   right-shift {
 +   label = l;
 +   linux,code = KEY_RIGHTSHIFT;
 +  

Re: [PATCH 1/4] ARM: dts: omap3-pandora: add common device tree

2015-02-12 Thread Tony Lindgren
Hi,

Few comments below.

* Marek Belisko ma...@goldelico.com [150212 05:07]:
 +
 +omap3_pmx_core {
 +
 + mmc1_pins: pinmux_mmc1_pins {
 + pinctrl-single,pins = 
 + OMAP3_CORE1_IOPAD(0x2144, PIN_INPUT_PULLUP | MUX_MODE0) 
 /* sdmmc1_clk.sdmmc1_clk */
 + OMAP3_CORE1_IOPAD(0x2146, PIN_INPUT_PULLUP | MUX_MODE0) 
 /* sdmmc1_cmd.sdmmc1_cmd */
 + OMAP3_CORE1_IOPAD(0x2148, PIN_INPUT_PULLUP | MUX_MODE0) 
 /* sdmmc1_dat0.sdmmc1_dat0 */
 + OMAP3_CORE1_IOPAD(0x214a, PIN_INPUT_PULLUP | MUX_MODE0) 
 /* sdmmc1_dat1.sdmmc1_dat1 */
 + OMAP3_CORE1_IOPAD(0x214c, PIN_INPUT_PULLUP | MUX_MODE0) 
 /* sdmmc1_dat2.sdmmc1_dat2 */
 + OMAP3_CORE1_IOPAD(0x214e, PIN_INPUT_PULLUP | MUX_MODE0) 
 /* sdmmc1_dat3.sdmmc1_dat3 */
 + ;
...

 +omap3_pmx_core2 {
 + /* define in CPU specific file that includes this one
 +  * use either OMAP3430_CORE2_IOPAD() or OMAP3630_CORE2_IOPAD()
 +  */
 +};

OK looks like you have some SoC specific pins too.. I assume you
guys have checked that all the pins defined in this file are at
the same offset between 34xx and 36xx variants?

 +i2c1 {
 + clock-frequency = 260;
 +
 + twl: twl@48 {
 + reg = 0x48;
 + interrupts = 7; /* SYS_NIRQ cascaded to intc */
 + interrupt-parent = intc;
 +
 + twl_power: power {
 + compatible = ti,twl4030-power-reset;
 + ti,use_poweroff;
 + };
 +
 + twl_audio: audio {
 + compatible = ti,twl4030-audio;
 +
 + codec {
 + ti,ramp_delay_value = 3;
 + };
 + };
 + };
 +};

Can be done later naturally, but ere you probably want
ti,twl4030-power-idle or ti,twl4030-power-idle-osc-off
if the osicllator can be shut down during off-idle.

 +gpmc {
 + ranges = 0 0 0x3000 0x04; /* CS0: NAND */

The ranges here allocate the GPMC partition, so it needs to be
a minimum of 16MB:

ranges = 0 0 0x3000 0x100,/* CS0: 16MB for NAND */

 + nand@0,0 {
 + reg = 0 0 0; /* CS0, offset 0 */

The reg is for the device driver to ioremap it's registers,
for NAND it's just 4:

reg = 0 0 4;  /* CS0, offset 0, IO size 4 */

 + filesystem@68 {
 + label = rootfs;
 + reg = 0xc8 0; /* 0 = MTDPART_SIZ_FULL */
 + };
 + };
 +};

Is the NAND the same size on all of them? I don't think dts
has a binding for MTDPART_SIZ_FULL type thing..

 + lcd: lcd@1 {
 + reg = 1;  /* CS1 */
 + compatible =omapdss,tpo,td043mtea1;
 + spi-max-frequency = 10;
 + spi-cpol;
 + spi-cpha;
 +
 + label = lcd;
 + reset-gpios = gpio5 29 GPIO_ACTIVE_LOW;  /* GPIO_157 */
 + vcc-supply = vaux1;
 +
 + port {
 + lcd_in: endpoint {
 + remote-endpoint = dpi_out;
 + };
 + };
 + };

Oh there's already a binding for the LCD too? That's great :)

Nine job, good to see this happening!

Regards,


Tony
--
To unsubscribe from this list: send the line unsubscribe linux-omap in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH 1/4] ARM: dts: omap3-pandora: add common device tree

2015-02-12 Thread Dr. H. Nikolaus Schaller

Am 12.02.2015 um 17:03 schrieb Tony Lindgren t...@atomide.com:

 Hi,
 
 Few comments below.
 
 * Marek Belisko ma...@goldelico.com [150212 05:07]:
 +
 +omap3_pmx_core {
 +
 +mmc1_pins: pinmux_mmc1_pins {
 +pinctrl-single,pins = 
 +OMAP3_CORE1_IOPAD(0x2144, PIN_INPUT_PULLUP | MUX_MODE0) 
 /* sdmmc1_clk.sdmmc1_clk */
 +OMAP3_CORE1_IOPAD(0x2146, PIN_INPUT_PULLUP | MUX_MODE0) 
 /* sdmmc1_cmd.sdmmc1_cmd */
 +OMAP3_CORE1_IOPAD(0x2148, PIN_INPUT_PULLUP | MUX_MODE0) 
 /* sdmmc1_dat0.sdmmc1_dat0 */
 +OMAP3_CORE1_IOPAD(0x214a, PIN_INPUT_PULLUP | MUX_MODE0) 
 /* sdmmc1_dat1.sdmmc1_dat1 */
 +OMAP3_CORE1_IOPAD(0x214c, PIN_INPUT_PULLUP | MUX_MODE0) 
 /* sdmmc1_dat2.sdmmc1_dat2 */
 +OMAP3_CORE1_IOPAD(0x214e, PIN_INPUT_PULLUP | MUX_MODE0) 
 /* sdmmc1_dat3.sdmmc1_dat3 */
 +;
 ...
 
 +omap3_pmx_core2 {
 +/* define in CPU specific file that includes this one
 + * use either OMAP3430_CORE2_IOPAD() or OMAP3630_CORE2_IOPAD()
 + */
 +};
 
 OK looks like you have some SoC specific pins too.. I assume you
 guys have checked that all the pins defined in this file are at
 the same offset between 34xx and 36xx variants?

Yes. All in this file are common between 34xx and 36xx.
The 600mhz / 1ghz files cover the differences for pmx_core2 through the 
different macros
(OMAP3430_CORE2_IOPAD vs. OMAP3460_CORE2_IOPAD).

 
 +i2c1 {
 +clock-frequency = 260;
 +
 +twl: twl@48 {
 +reg = 0x48;
 +interrupts = 7; /* SYS_NIRQ cascaded to intc */
 +interrupt-parent = intc;
 +
 +twl_power: power {
 +compatible = ti,twl4030-power-reset;
 +ti,use_poweroff;
 +};
 +
 +twl_audio: audio {
 +compatible = ti,twl4030-audio;
 +
 +codec {
 +ti,ramp_delay_value = 3;
 +};
 +};
 +};
 +};
 
 Can be done later naturally, but ere you probably want
 ti,twl4030-power-idle or ti,twl4030-power-idle-osc-off
 if the osicllator can be shut down during off-idle.

Good hint. We have to check and test if it can be shut down.
But as said, this is just the beginning of DT support.

 
 +gpmc {
 +ranges = 0 0 0x3000 0x04; /* CS0: NAND */
 
 The ranges here allocate the GPMC partition, so it needs to be
 a minimum of 16MB:
 
   ranges = 0 0 0x3000 0x100,/* CS0: 16MB for NAND */
 
 +nand@0,0 {
 +reg = 0 0 0; /* CS0, offset 0 */
 
 The reg is for the device driver to ioremap it's registers,
 for NAND it's just 4:
 
   reg = 0 0 4;  /* CS0, offset 0, IO size 4 */

Ok, that was a typo and we have not tested how compatible it is to the
board file scheme.

 
 +filesystem@68 {
 +label = rootfs;
 +reg = 0xc8 0; /* 0 = MTDPART_SIZ_FULL */
 +};
 +};
 +};
 
 Is the NAND the same size on all of them?

AFAIK not necessarily.

 I don't think dts
 has a binding for MTDPART_SIZ_FULL type thing..

It does not need a special binding, we just set the size to 0. This
is interpreted as MTDPART_SIZ_FULL later on. For board files,
there is just a #define in include/linux/mtd/partitions.h and it appears
to work.

 
 +lcd: lcd@1 {
 +reg = 1;  /* CS1 */
 +compatible =omapdss,tpo,td043mtea1;
 +spi-max-frequency = 10;
 +spi-cpol;
 +spi-cpha;
 +
 +label = lcd;
 +reset-gpios = gpio5 29 GPIO_ACTIVE_LOW;  /* GPIO_157 */
 +vcc-supply = vaux1;
 +
 +port {
 +lcd_in: endpoint {
 +remote-endpoint = dpi_out;
 +};
 +};
 +};
 
 Oh there's already a binding for the LCD too? That’s great :)

Yes, we were happy to find that the panel driver has already been upgraded
for DT use.

 
 Nine job, good to see this happening!
 
 Regards,
 
 
 Tony

BR,
Nikolaus

--
To unsubscribe from this list: send the line unsubscribe linux-omap in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH 1/4] ARM: dts: omap3-pandora: add common device tree

2015-02-12 Thread Tony Lindgren
* Dr. H. Nikolaus Schaller h...@goldelico.com [150212 08:34]:
 Am 12.02.2015 um 17:03 schrieb Tony Lindgren t...@atomide.com:
 
  I don't think dts
  has a binding for MTDPART_SIZ_FULL type thing..
 
 It does not need a special binding, we just set the size to 0. This
 is interpreted as MTDPART_SIZ_FULL later on. For board files,
 there is just a #define in include/linux/mtd/partitions.h and it appears
 to work.

Oh OK good to know.

Regards,

Tony
--
To unsubscribe from this list: send the line unsubscribe linux-omap in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH 1/4] ARM: dts: omap3-pandora: add common device tree

2015-02-12 Thread Grazvydas Ignotas
On Thu, Feb 12, 2015 at 3:03 PM, Marek Belisko ma...@goldelico.com wrote:
 From: H. Nikolaus Schaller h...@goldelico.com

 This device tree allows to boot, supports the panel,
 framebuffer, touch screen, as well as some more peripherals.
 Since there is a OMAP3530 based 600 MHz variant and a DM3730 based
 1 GHz variant we must include this common device tree code
 in one of two CPU specific device trees.

 Signed-off-by: H. Nikolaus Schaller h...@goldelico.com
 Signed-off-by: Marek Belisko ma...@goldelico.com
 ---
  arch/arm/boot/dts/omap3-pandora-common.dtsi | 641 
 
  1 file changed, 641 insertions(+)
  create mode 100644 arch/arm/boot/dts/omap3-pandora-common.dtsi

 diff --git a/arch/arm/boot/dts/omap3-pandora-common.dtsi 
 b/arch/arm/boot/dts/omap3-pandora-common.dtsi
 new file mode 100644
 index 000..0a2a878
 --- /dev/null
 +++ b/arch/arm/boot/dts/omap3-pandora-common.dtsi
 @@ -0,0 +1,641 @@

...

 +
 +   gpio-leds {
 +
 +   compatible = gpio-leds;
 +
 +   pinctrl-names = default;
 +   pinctrl-0 = led_pins;
 +
 +   led@1 {
 +   label = pandora::sd1;
 +   gpios = gpio5 0 GPIO_ACTIVE_HIGH;/* GPIO_128 */
 +   linux,default-trigger = mmc0;
 +   default-state = off;
 +   };
 +
 +   led@2 {
 +   label = pandora::sd2;
 +   gpios = gpio5 1 GPIO_ACTIVE_HIGH;/* GPIO_129 */
 +   linux,default-trigger = mmc1;
 +   default-state = off;
 +   };
 +
 +   led@3 {
 +   label = pandora::bluetooth;
 +   gpios = gpio5 30 GPIO_ACTIVE_HIGH;   /* GPIO_158 */
 +   linux,default-trigger = heartbeat;

I'd prefer this had no trigger, but no strong feelings here.

 +   default-state = off;
 +   };
 +
 +   led@4 {
 +   label = pandora::wifi;
 +   gpios = gpio5 31 GPIO_ACTIVE_HIGH;   /* GPIO_159 */
 +   linux,default-trigger = mmc2;
 +   default-state = off;
 +   };
 +   };
 +
 +   gpio-keys {
 +   compatible = gpio-keys;
 +
 +   pinctrl-names = default;
 +   pinctrl-0 = button_pins;
 +
 +   up-button {
 +   label = up;
 +   linux,code = KEY_UP;
 +   gpios = gpio4 14 GPIO_ACTIVE_HIGH;   /* GPIO_110 */
 +   gpio-key,wakeup;
 +   };
 +
 +   down-button {
 +   label = down;
 +   linux,code = KEY_DOWN;
 +   gpios = gpio4 7 GPIO_ACTIVE_HIGH;/* GPIO_103 */
 +   gpio-key,wakeup;
 +   };
 +
 +   left-button {
 +   label = left;
 +   linux,code = KEY_LEFT;
 +   gpios = gpio4 0 GPIO_ACTIVE_HIGH;/* GPIO_96 */
 +   gpio-key,wakeup;
 +   };
 +
 +   right-button {
 +   label = right;
 +   linux,code = KEY_RIGHT;
 +   gpios = gpio4 2 GPIO_ACTIVE_HIGH;/* GPIO_98 */
 +   gpio-key,wakeup;
 +   };
 +
 +   pageup-button {
 +   label = game 1;
 +   linux,code = KEY_PAGEUP;
 +   gpios = gpio4 13 GPIO_ACTIVE_HIGH;   /* GPIO_109 */
 +   gpio-key,wakeup;
 +   };
 +
 +   pagedown-button {
 +   label = game 3;
 +   linux,code = KEY_PAGEDOWN;
 +   gpios = gpio4 10 GPIO_ACTIVE_HIGH;   /* GPIO_106 */
 +   gpio-key,wakeup;
 +   };
 +
 +   home-button {
 +   label = game 4;
 +   linux,code = KEY_HOME;
 +   gpios = gpio4 5 GPIO_ACTIVE_HIGH;/* GPIO_101 */
 +   gpio-key,wakeup;
 +   };
 +
 +   end-button {
 +   label = game 2;
 +   linux,code = KEY_END;
 +   gpios = gpio4 15 GPIO_ACTIVE_HIGH;   /* GPIO_111 */
 +   gpio-key,wakeup;
 +   };
 +
 +   right-shift {
 +   label = l;
 +   linux,code = KEY_RIGHTSHIFT;
 +   gpios = gpio4 6 GPIO_ACTIVE_HIGH;/* GPIO_102 */
 +   gpio-key,wakeup;
 +   };
 +
 +   kp-plus {
 +   label = l2;
 +   linux,code = KEY_KPPLUS;
 +   gpios = gpio4 1 GPIO_ACTIVE_HIGH;/* GPIO_97 */
 +