Re: [PATCH 1/4] ARM: dts: omap3-pandora: add common device tree
Am 12.02.2015 um 18:47 schrieb Grazvydas Ignotas : > On Thu, Feb 12, 2015 at 3:03 PM, Marek Belisko wrote: >> From: "H. Nikolaus Schaller" >> >> 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 >> Signed-off-by: Marek Belisko >> --- >> 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 = ; >> + gpios = <&gpio4 14 GPIO_ACTIVE_HIGH>; /* GPIO_110 >> */ >> + gpio-key,wakeup; >> + }; >> + >> + down-button { >> + label = "down"; >> + linux,code = ; >> + gpios = <&gpio4 7 GPIO_ACTIVE_HIGH>;/* GPIO_103 >> */ >> + gpio-key,wakeup; >> + }; >> + >> + left-button { >> + label = "left"; >> + linux,code = ; >> + gpios = <&gpio4 0 GPIO_ACTIVE_HIGH>;/* GPIO_96 */ >> + gpio-key,wakeup; >> + }; >> + >> + right-button { >> + label = "right"; >> + linux,code = ; >> + gpios = <&gpio4 2 GPIO_ACTIVE_HIGH>;/* GPIO_98 */ >> + gpio-key,wakeup; >> + }; >> + >> + pageup-button { >> + label = "game 1"; >> + linux,code = ; >> + gpios = <&gpio4 13 GPIO_ACTIVE_HIGH>; /* GPIO_109 >> */ >> + gpio-key,wakeup; >> + }; >> + >> + pagedown-button { >> + label = "game 3"; >> + linux,code = ; >> + gpios = <&gpio4 10 GPIO_ACTIVE_HIGH>; /* GPIO_106 >> */ >> + gpio-key,wakeup; >> + }; >> + >> + home-button { >> + label = "game 4"; >> + linux,code = ; >> + gpios = <&gpio4 5 GPIO_ACTIVE_HIGH>;/* GPIO_101 >> */ >> + gpio-key,wakeup; >> + }; >> + >> + end-button { >> + label = "game 2"; >> + linux,code = ; >> + gpios = <&gpio4 15 GPIO_ACTIVE_HIGH>; /* GPIO_111 >> */ >> +
Re: [PATCH 1/4] ARM: dts: omap3-pandora: add common device tree
Hi, Few comments below. * Marek Belisko [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 devicetree" 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 wrote: > From: "H. Nikolaus Schaller" > > 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 > Signed-off-by: Marek Belisko > --- > 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 = ; > + gpios = <&gpio4 14 GPIO_ACTIVE_HIGH>; /* GPIO_110 */ > + gpio-key,wakeup; > + }; > + > + down-button { > + label = "down"; > + linux,code = ; > + gpios = <&gpio4 7 GPIO_ACTIVE_HIGH>;/* GPIO_103 */ > + gpio-key,wakeup; > + }; > + > + left-button { > + label = "left"; > + linux,code = ; > + gpios = <&gpio4 0 GPIO_ACTIVE_HIGH>;/* GPIO_96 */ > + gpio-key,wakeup; > + }; > + > + right-button { > + label = "right"; > + linux,code = ; > + gpios = <&gpio4 2 GPIO_ACTIVE_HIGH>;/* GPIO_98 */ > + gpio-key,wakeup; > + }; > + > + pageup-button { > + label = "game 1"; > + linux,code = ; > + gpios = <&gpio4 13 GPIO_ACTIVE_HIGH>; /* GPIO_109 */ > + gpio-key,wakeup; > + }; > + > + pagedown-button { > + label = "game 3"; > + linux,code = ; > + gpios = <&gpio4 10 GPIO_ACTIVE_HIGH>; /* GPIO_106 */ > + gpio-key,wakeup; > + }; > + > + home-button { > + label = "game 4"; > + linux,code = ; > + gpios = <&gpio4 5 GPIO_ACTIVE_HIGH>;/* GPIO_101 */ > + gpio-key,wakeup; > + }; > + > + end-button { > + label = "game 2"; > + linux,code = ; > + gpios = <&gpio4 15 GPIO_ACTIVE_HIGH>; /* GPIO_111 */ > + gpio-key,wakeup; > + }; > + > + right-shift { > + label = "l"; > + linux,code = ; > + gpios = <&gpio4 6 GPIO_ACTIVE_HIGH>;/* GPIO_102 */ > + gpio-key,wakeup; > + }; > + > + kp-plus { > + label = "l2"; > + linux,code = ; > + gpio
Re: [PATCH 1/4] ARM: dts: omap3-pandora: add common device tree
* Dr. H. Nikolaus Schaller [150212 08:34]: > Am 12.02.2015 um 17:03 schrieb Tony Lindgren : > > > 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 devicetree" 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 : > Hi, > > Few comments below. > > * Marek Belisko [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 devicetree" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
[PATCH 1/4] ARM: dts: omap3-pandora: add common device tree
From: "H. Nikolaus Schaller" 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 Signed-off-by: Marek Belisko --- 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 @@ +/* + * Copyright (C) 2015 + * Nikolaus Schaller + * + * Common device tree include for OpenPandora devices. + * + * 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. + */ + +#include + +/ { + cpus { + cpu@0 { + cpu0-supply = <&vcc>; + }; + }; + + memory { + device_type = "memory"; + reg = <0x8000 0x2000>; /* 512 MB */ + }; + + aliases { + display0 = &lcd; + }; + + tv: connector@1 { + compatible = "connector-analog-tv"; + label = "tv"; + + port { + tv_connector_in: endpoint { + remote-endpoint = <&venc_out>; + }; + }; + }; + + 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"; + 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 = ; + gpios = <&gpio4 14 GPIO_ACTIVE_HIGH>; /* GPIO_110 */ + gpio-key,wakeup; + }; + + down-button { + label = "down"; + linux,code = ; + gpios = <&gpio4 7 GPIO_ACTIVE_HIGH>;/* GPIO_103 */ + gpio-key,wakeup; + }; + + left-button { + label = "left"; + linux,code = ; + gpios = <&gpio4 0 GPIO_ACTIVE_HIGH>;/* GPIO_96 */ + gpio-key,wakeup; + }; + + right-button { + label = "right"; + linux,code = ; + gpios = <&gpio4 2 GPIO_ACTIVE_HIGH>;/* GPIO_98 */ + gpio-key,wakeup; + }; + + pageup-button { + label = "game 1"; + linux,code = ; + gpios = <&gpio4 13 GPIO_ACTIVE_HIGH>; /* GPIO_109 */ + gpio-key,wakeup; + }; + + pagedown-button { + label = "game 3"; + linux,code = ; + gpios = <&gpio4 10 GPIO_ACTIVE_HIGH>; /* GPIO_106 */ + gpio-key,wakeup; + }; + + home-button { + label = "game 4"; + linux,code = ; + gpios = <&gpio4 5 GPIO_ACTIVE_HIGH>;/* GPIO_101 */ + gpio-key,wakeup; + }; + + end-button { + label = "game 2";