Re: [PATCH 1/4] ARM: dts: omap3-pandora: add common device tree
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
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
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
* 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
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 */ +