linux-arm-kernel.lists.infradead.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 0/4] add openpandora device support
@ 2015-02-12 13:03 Marek Belisko
  2015-02-12 13:03 ` [PATCH 1/4] ARM: dts: omap3-pandora: add common device tree Marek Belisko
                   ` (4 more replies)
  0 siblings, 5 replies; 13+ messages in thread
From: Marek Belisko @ 2015-02-12 13:03 UTC (permalink / raw)
  To: linux-arm-kernel

This series of patches adds initial device tree support for the
OpenPandora. The most important parts are working (display, keyboard,
touch, charging, fuel gauge, musb port, sd/mmc ports, leds, buttons).
Not yet supported are: usb host port, nubs, wifi, bluetooth, audio.

First patch add common dtsi file which is then used in 600mhz and 1ghz
variants of openpandora which support is added in patches 2 and 3.

H. Nikolaus Schaller (4):
  ARM: dts: omap3-pandora: add common device tree
  ARM: dts: omap3-pandora: add OMAP3530 600 MHz version
  ARM: dts: omap3-pandora: add DM3730 1 GHz version
  ARM: dts: omap3-pandora: include in dts Makefile

 arch/arm/boot/dts/Makefile                  |   2 +
 arch/arm/boot/dts/omap3-pandora-1ghz.dts    |  65 +++
 arch/arm/boot/dts/omap3-pandora-600mhz.dts  |  65 +++
 arch/arm/boot/dts/omap3-pandora-common.dtsi | 641 ++++++++++++++++++++++++++++
 4 files changed, 773 insertions(+)
 create mode 100644 arch/arm/boot/dts/omap3-pandora-1ghz.dts
 create mode 100644 arch/arm/boot/dts/omap3-pandora-600mhz.dts
 create mode 100644 arch/arm/boot/dts/omap3-pandora-common.dtsi

-- 
1.9.1

^ permalink raw reply	[flat|nested] 13+ messages in thread

* [PATCH 1/4] ARM: dts: omap3-pandora: add common device tree
  2015-02-12 13:03 [PATCH 0/4] add openpandora device support Marek Belisko
@ 2015-02-12 13:03 ` Marek Belisko
  2015-02-12 16:03   ` Tony Lindgren
  2015-02-12 17:47   ` Grazvydas Ignotas
  2015-02-12 13:03 ` [PATCH 2/4] ARM: dts: omap3-pandora: add OMAP3530 600 MHz version Marek Belisko
                   ` (3 subsequent siblings)
  4 siblings, 2 replies; 13+ messages in thread
From: Marek Belisko @ 2015-02-12 13:03 UTC (permalink / raw)
  To: linux-arm-kernel

From: "H. Nikolaus Schaller" <hns@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 <hns@goldelico.com>
Signed-off-by: Marek Belisko <marek@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 0000000..0a2a878
--- /dev/null
+++ b/arch/arm/boot/dts/omap3-pandora-common.dtsi
@@ -0,0 +1,641 @@
+/*
+ * Copyright (C) 2015
+ *   Nikolaus Schaller <hns@goldelico.com>
+ *
+ * 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 <dt-bindings/input/input.h>
+
+/ {
+	cpus {
+		cpu at 0 {
+			cpu0-supply = <&vcc>;
+		};
+	};
+
+	memory {
+		device_type = "memory";
+		reg = <0x80000000 0x20000000>; /* 512 MB */
+	};
+
+	aliases {
+		display0 = &lcd;
+	};
+
+	tv: connector at 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 at 1 {
+			label = "pandora::sd1";
+			gpios = <&gpio5 0 GPIO_ACTIVE_HIGH>;	/* GPIO_128 */
+			linux,default-trigger = "mmc0";
+			default-state = "off";
+		};
+
+		led at 2 {
+			label = "pandora::sd2";
+			gpios = <&gpio5 1 GPIO_ACTIVE_HIGH>;	/* GPIO_129 */
+			linux,default-trigger = "mmc1";
+			default-state = "off";
+		};
+
+		led at 3 {
+			label = "pandora::bluetooth";
+			gpios = <&gpio5 30 GPIO_ACTIVE_HIGH>;	/* GPIO_158 */
+			linux,default-trigger = "heartbeat";
+			default-state = "off";
+		};
+
+		led at 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 */
+			gpio-key,wakeup;
+		};
+
+		right-ctrl {
+			label = "r";
+			linux,code = <KEY_RIGHTCTRL>;
+			gpios = <&gpio4 9 GPIO_ACTIVE_HIGH>;	/* GPIO_105 */
+			gpio-key,wakeup;
+		};
+
+		kp-minus {
+			label = "r2";
+			linux,code = <KEY_KPMINUS>;
+			gpios = <&gpio4 11 GPIO_ACTIVE_HIGH>;	/* GPIO_107 */
+			gpio-key,wakeup;
+		};
+
+		left-ctrl {
+			label = "ctrl";
+			linux,code = <KEY_LEFTCTRL>;
+			gpios = <&gpio4 8 GPIO_ACTIVE_HIGH>;	/* GPIO_104 */
+			gpio-key,wakeup;
+		};
+
+		menu {
+			label = "menu";
+			linux,code = <KEY_MENU>;
+			gpios = <&gpio4 3 GPIO_ACTIVE_HIGH>;	/* GPIO_99 */
+			gpio-key,wakeup;
+		};
+
+		hold {
+			label = "hold";
+			linux,code = <KEY_COFFEE>;
+			gpios = <&gpio6 16 GPIO_ACTIVE_HIGH>;	/* GPIO_176 */
+			gpio-key,wakeup;
+		};
+
+		left-alt {
+			label = "alt";
+			linux,code = <KEY_LEFTALT>;
+			gpios = <&gpio4 4 GPIO_ACTIVE_HIGH>;	/* GPIO_100 */
+			gpio-key,wakeup;
+		};
+
+		lid {
+			label = "lid";
+			linux,code = <0x00>;    /* SW_LID lid shut */
+			linux,input-type = <0x05>;    /* EV_SW */
+			gpios = <&gpio4 12 GPIO_ACTIVE_HIGH>;   /* GPIO_108 */
+			gpio-key,wakeup;
+		};
+	};
+};
+
+&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 */
+		>;
+	};
+
+	mmc2_pins: pinmux_mmc2_pins {
+		pinctrl-single,pins = <
+			OMAP3_CORE1_IOPAD(0x2158, PIN_INPUT_PULLUP | MUX_MODE0)		/* sdmmc2_clk.sdmmc2_clk */
+			OMAP3_CORE1_IOPAD(0x215a, PIN_INPUT_PULLUP | MUX_MODE0)		/* sdmmc2_cmd.sdmmc2_cmd */
+			OMAP3_CORE1_IOPAD(0x215c, PIN_INPUT_PULLUP | MUX_MODE0)		/* sdmmc2_dat0.sdmmc2_dat0 */
+			OMAP3_CORE1_IOPAD(0x215e, PIN_INPUT_PULLUP | MUX_MODE0)		/* sdmmc2_dat1.sdmmc2_dat1 */
+			OMAP3_CORE1_IOPAD(0x2160, PIN_INPUT_PULLUP | MUX_MODE0)		/* sdmmc2_dat2.sdmmc2_dat2 */
+			OMAP3_CORE1_IOPAD(0x2162, PIN_INPUT_PULLUP | MUX_MODE0)		/* sdmmc2_dat3.sdmmc2_dat3 */
+			OMAP3_CORE1_IOPAD(0x2164, PIN_OUTPUT_PULLUP | MUX_MODE1)	/* sdmmc2_dat4.sdmmc2_dirdat0 */
+			OMAP3_CORE1_IOPAD(0x2166, PIN_OUTPUT_PULLUP | MUX_MODE1)	/* sdmmc2_dat5.sdmmc2_dirdat1 */
+			OMAP3_CORE1_IOPAD(0x2168, PIN_OUTPUT_PULLUP | MUX_MODE1)	/* sdmmc2_dat6.sdmmc2_dircmd */
+			OMAP3_CORE1_IOPAD(0x216a, PIN_INPUT_PULLUP | MUX_MODE1)		/* sdmmc2_dat7.sdmmc2_clkin */
+		>;
+	};
+
+	dss_dpi_pins: pinmux_dss_dpi_pins {
+		pinctrl-single,pins = <
+			OMAP3_CORE1_IOPAD(0x20d4, PIN_OUTPUT | MUX_MODE0)	/* dss_pclk.dss_pclk */
+			OMAP3_CORE1_IOPAD(0x20d6, PIN_OUTPUT | MUX_MODE0)	/* dss_hsync.dss_hsync */
+			OMAP3_CORE1_IOPAD(0x20d8, PIN_OUTPUT | MUX_MODE0)	/* dss_vsync.dss_vsync */
+			OMAP3_CORE1_IOPAD(0x20da, PIN_OUTPUT | MUX_MODE0)	/* dss_acbias.dss_acbias */
+			OMAP3_CORE1_IOPAD(0x20dc, PIN_OUTPUT | MUX_MODE0)	/* dss_data0.dss_data0 */
+			OMAP3_CORE1_IOPAD(0x20de, PIN_OUTPUT | MUX_MODE0)	/* dss_data1.dss_data1 */
+			OMAP3_CORE1_IOPAD(0x20e0, PIN_OUTPUT | MUX_MODE0)	/* dss_data2.dss_data2 */
+			OMAP3_CORE1_IOPAD(0x20e2, PIN_OUTPUT | MUX_MODE0)	/* dss_data3.dss_data3 */
+			OMAP3_CORE1_IOPAD(0x20e4, PIN_OUTPUT | MUX_MODE0)	/* dss_data4.dss_data4 */
+			OMAP3_CORE1_IOPAD(0x20e6, PIN_OUTPUT | MUX_MODE0)	/* dss_data5.dss_data5 */
+			OMAP3_CORE1_IOPAD(0x20e8, PIN_OUTPUT | MUX_MODE0)	/* dss_data6.dss_data6 */
+			OMAP3_CORE1_IOPAD(0x20ea, PIN_OUTPUT | MUX_MODE0)	/* dss_data7.dss_data7 */
+			OMAP3_CORE1_IOPAD(0x20ec, PIN_OUTPUT | MUX_MODE0)	/* dss_data8.dss_data8 */
+			OMAP3_CORE1_IOPAD(0x20ee, PIN_OUTPUT | MUX_MODE0)	/* dss_data9.dss_data9 */
+			OMAP3_CORE1_IOPAD(0x20f0, PIN_OUTPUT | MUX_MODE0)	/* dss_data10.dss_data10 */
+			OMAP3_CORE1_IOPAD(0x20f2, PIN_OUTPUT | MUX_MODE0)	/* dss_data11.dss_data11 */
+			OMAP3_CORE1_IOPAD(0x20f4, PIN_OUTPUT | MUX_MODE0)	/* dss_data12.dss_data12 */
+			OMAP3_CORE1_IOPAD(0x20f6, PIN_OUTPUT | MUX_MODE0)	/* dss_data13.dss_data13 */
+			OMAP3_CORE1_IOPAD(0x20f8, PIN_OUTPUT | MUX_MODE0)	/* dss_data14.dss_data14 */
+			OMAP3_CORE1_IOPAD(0x20fa, PIN_OUTPUT | MUX_MODE0)	/* dss_data15.dss_data15 */
+			OMAP3_CORE1_IOPAD(0x20fc, PIN_OUTPUT | MUX_MODE0)	/* dss_data16.dss_data16 */
+			OMAP3_CORE1_IOPAD(0x20fe, PIN_OUTPUT | MUX_MODE0)	/* dss_data17.dss_data17 */
+			OMAP3_CORE1_IOPAD(0x2100, PIN_OUTPUT | MUX_MODE0)	/* dss_data18.dss_data18 */
+			OMAP3_CORE1_IOPAD(0x2102, PIN_OUTPUT | MUX_MODE0)	/* dss_data19.dss_data19 */
+			OMAP3_CORE1_IOPAD(0x2104, PIN_OUTPUT | MUX_MODE0)	/* dss_data20.dss_data20 */
+			OMAP3_CORE1_IOPAD(0x2106, PIN_OUTPUT | MUX_MODE0)	/* dss_data21.dss_data21 */
+			OMAP3_CORE1_IOPAD(0x2108, PIN_OUTPUT | MUX_MODE0)	/* dss_data22.dss_data22 */
+			OMAP3_CORE1_IOPAD(0x210a, PIN_OUTPUT | MUX_MODE0)	/* dss_data23.dss_data23 */
+			OMAP3_CORE1_IOPAD(0x218e, PIN_OUTPUT | MUX_MODE4)	/* GPIO_157 = lcd reset */
+		>;
+	};
+
+	uart3_pins: pinmux_uart3_pins {
+		pinctrl-single,pins = <
+			OMAP3_CORE1_IOPAD(0x219e, PIN_INPUT | PIN_OFF_WAKEUPENABLE | MUX_MODE0)	/* uart3_rx_irrx.uart3_rx_irrx */
+			OMAP3_CORE1_IOPAD(0x21a0, PIN_OUTPUT | MUX_MODE0) /* uart3_tx_irtx.uart3_tx_irtx */
+		>;
+	};
+
+	led_pins: pinmux_leds_pins {
+		pinctrl-single,pins = <
+			OMAP3_CORE1_IOPAD(0x2154, PIN_OUTPUT | MUX_MODE4)	/* GPIO_128 */
+			OMAP3_CORE1_IOPAD(0x2156, PIN_OUTPUT | MUX_MODE4)	/* GPIO_129 */
+			OMAP3_CORE1_IOPAD(0x2190, PIN_OUTPUT | MUX_MODE4)	/* GPIO_158 */
+			OMAP3_CORE1_IOPAD(0x2192, PIN_OUTPUT | MUX_MODE4)	/* GPIO_159 */
+		>;
+	};
+
+	button_pins: pinmux_button_pins {
+		pinctrl-single,pins = <
+			OMAP3_CORE1_IOPAD(0x2110, PIN_INPUT_PULLUP | MUX_MODE4)	       /* GPIO_96 */
+			OMAP3_CORE1_IOPAD(0x2112, PIN_INPUT_PULLUP | MUX_MODE4)	       /* GPIO_97 */
+			OMAP3_CORE1_IOPAD(0x2114, PIN_INPUT_PULLUP | MUX_MODE4)	       /* GPIO_98 */
+			OMAP3_CORE1_IOPAD(0x2116, PIN_INPUT_PULLUP | MUX_MODE4)	       /* GPIO_99 */
+			OMAP3_CORE1_IOPAD(0x2118, PIN_INPUT_PULLUP | MUX_MODE4)	       /* GPIO_100 */
+			OMAP3_CORE1_IOPAD(0x211a, PIN_INPUT_PULLUP | MUX_MODE4)	       /* GPIO_101 */
+			OMAP3_CORE1_IOPAD(0x211c, PIN_INPUT_PULLUP | MUX_MODE4)	       /* GPIO_102 */
+			OMAP3_CORE1_IOPAD(0x211e, PIN_INPUT_PULLUP | MUX_MODE4)	       /* GPIO_103 */
+			OMAP3_CORE1_IOPAD(0x2120, PIN_INPUT_PULLUP | MUX_MODE4)	       /* GPIO_104 */
+			OMAP3_CORE1_IOPAD(0x2122, PIN_INPUT_PULLUP | MUX_MODE4)	       /* GPIO_105 */
+			OMAP3_CORE1_IOPAD(0x2124, PIN_INPUT_PULLUP | MUX_MODE4)	       /* GPIO_106 */
+			OMAP3_CORE1_IOPAD(0x2126, PIN_INPUT_PULLUP | MUX_MODE4)	       /* GPIO_107 */
+			OMAP3_CORE1_IOPAD(0x2128, PIN_INPUT_PULLUP | MUX_MODE4)	       /* GPIO_108 */
+			OMAP3_CORE1_IOPAD(0x212a, PIN_INPUT_PULLUP | MUX_MODE4)	       /* GPIO_109 */
+			OMAP3_CORE1_IOPAD(0x212c, PIN_INPUT_PULLUP | MUX_MODE4)	       /* GPIO_110 */
+			OMAP3_CORE1_IOPAD(0x212e, PIN_INPUT_PULLUP | MUX_MODE4)	       /* GPIO_111 */
+			OMAP3_CORE1_IOPAD(0x21d2, PIN_INPUT_PULLUP | MUX_MODE4)	       /* GPIO_176 */
+		>;
+	};
+
+	penirq_pins: pinmux_penirq_pins {
+		pinctrl-single,pins = <
+			/* here we could enable to wakeup the cpu from suspend by a pen touch */
+			OMAP3_CORE1_IOPAD(0x210c, PIN_INPUT_PULLUP | MUX_MODE4)	/* GPIO_94 */
+		>;
+	};
+
+};
+
+&omap3_pmx_core2 {
+	/* define in CPU specific file that includes this one
+	 * use either OMAP3430_CORE2_IOPAD() or OMAP3630_CORE2_IOPAD()
+	 */
+};
+
+&i2c1 {
+	clock-frequency = <2600000>;
+
+	twl: twl at 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>;
+			};
+		};
+	};
+};
+
+#include "twl4030.dtsi"
+#include "twl4030_omap3.dtsi"
+
+&twl_keypad {
+	keypad,num-rows = <8>;
+	keypad,num-columns = <6>;
+	linux,keymap = <
+		MATRIX_KEY(0, 0, KEY_9)
+		MATRIX_KEY(0, 1, KEY_8)
+		MATRIX_KEY(0, 2, KEY_I)
+		MATRIX_KEY(0, 3, KEY_J)
+		MATRIX_KEY(0, 4, KEY_N)
+		MATRIX_KEY(0, 5, KEY_M)
+		MATRIX_KEY(1, 0, KEY_0)
+		MATRIX_KEY(1, 1, KEY_7)
+		MATRIX_KEY(1, 2, KEY_U)
+		MATRIX_KEY(1, 3, KEY_H)
+		MATRIX_KEY(1, 4, KEY_B)
+		MATRIX_KEY(1, 5, KEY_SPACE)
+		MATRIX_KEY(2, 0, KEY_BACKSPACE)
+		MATRIX_KEY(2, 1, KEY_6)
+		MATRIX_KEY(2, 2, KEY_Y)
+		MATRIX_KEY(2, 3, KEY_G)
+		MATRIX_KEY(2, 4, KEY_V)
+		MATRIX_KEY(2, 5, KEY_FN)
+		MATRIX_KEY(3, 0, KEY_O)
+		MATRIX_KEY(3, 1, KEY_5)
+		MATRIX_KEY(3, 2, KEY_T)
+		MATRIX_KEY(3, 3, KEY_F)
+		MATRIX_KEY(3, 4, KEY_C)
+		MATRIX_KEY(4, 0, KEY_P)
+		MATRIX_KEY(4, 1, KEY_4)
+		MATRIX_KEY(4, 2, KEY_R)
+		MATRIX_KEY(4, 3, KEY_D)
+		MATRIX_KEY(4, 4, KEY_X)
+		MATRIX_KEY(5, 0, KEY_K)
+		MATRIX_KEY(5, 1, KEY_3)
+		MATRIX_KEY(5, 2, KEY_E)
+		MATRIX_KEY(5, 3, KEY_S)
+		MATRIX_KEY(5, 4, KEY_Z)
+		MATRIX_KEY(6, 0, KEY_L)
+		MATRIX_KEY(6, 1, KEY_2)
+		MATRIX_KEY(6, 2, KEY_W)
+		MATRIX_KEY(6, 3, KEY_A)
+		MATRIX_KEY(6, 4, KEY_RIGHTBRACE)
+		MATRIX_KEY(7, 0, KEY_ENTER)
+		MATRIX_KEY(7, 1, KEY_1)
+		MATRIX_KEY(7, 2, KEY_Q)
+		MATRIX_KEY(7, 3, KEY_LEFTSHIFT)
+		MATRIX_KEY(7, 4, KEY_LEFTBRACE )
+	 >;
+};
+
+/* backup battery charger */
+&charger {
+	ti,bb-uvolt = <3200000>;
+	ti,bb-uamp = <150>;
+};
+
+/* MMC2 */
+&vmmc2 {
+	regulator-min-microvolt = <1850000>;
+	regulator-max-microvolt = <3150000>;
+};
+
+/* LCD */
+&vaux1 {
+	regulator-min-microvolt = <3000000>;
+	regulator-max-microvolt = <3000000>;
+};
+
+/* USB Host PHY */
+&vaux2 {
+	regulator-min-microvolt = <1800000>;
+	regulator-max-microvolt = <1800000>;
+};
+
+/* available on expansion connector */
+&vaux3 {
+	regulator-min-microvolt = <2800000>;
+	regulator-max-microvolt = <2800000>;
+};
+
+/* ADS7846 and nubs */
+&vaux4 {
+	regulator-min-microvolt = <2800000>;
+	regulator-max-microvolt = <2800000>;
+};
+
+/* power audio DAC and LID sensor */
+&vsim {
+	regulator-min-microvolt = <2800000>;
+	regulator-max-microvolt = <2800000>;
+	regulator-always-on;
+};
+
+&i2c2 {
+	clock-frequency = <100000>;
+	/* no clients so we should disable clock */
+};
+
+&i2c3 {
+	clock-frequency = <100000>;
+
+	bq27500 at 55 {
+		compatible = "ti,bq27500";
+		reg = <0x55>;
+	};
+
+};
+
+&usb_otg_hs {
+	interface-type = <0>;
+	usb-phy = <&usb2_phy>;
+	phys = <&usb2_phy>;
+	phy-names = "usb2-phy";
+	mode = <3>;
+	power = <50>;
+};
+
+&mmc1 {
+	pinctrl-names = "default";
+	pinctrl-0 = <&mmc1_pins>;
+	vmmc-supply = <&vmmc1>;
+	bus-width = <4>;
+	cd-gpios = <&twl_gpio 0 GPIO_ACTIVE_LOW>;
+	wp-gpios = <&gpio4 30 GPIO_ACTIVE_LOW>;	/* GPIO_126 */
+};
+
+&mmc2 {
+	pinctrl-names = "default";
+	pinctrl-0 = <&mmc2_pins>;
+	vmmc-supply = <&vmmc2>;
+	bus-width = <4>;
+	cd-gpios = <&twl_gpio 1 GPIO_ACTIVE_HIGH>;
+	wp-gpios = <&gpio4 31 GPIO_ACTIVE_LOW>;	/* GPIO_127 */
+};
+
+/* bluetooth*/
+&uart1 {
+};
+
+/* spare (expansion connector) */
+&uart2 {
+};
+
+/* console (expansion connector) */
+&uart3 {
+	pinctrl-names = "default";
+	pinctrl-0 = <&uart3_pins>;
+	interrupts-extended = <&intc 74 &omap3_pmx_core OMAP3_UART3_RX>;
+};
+
+&usbhshost {
+	port2-mode = "ehci-phy";
+};
+
+&gpmc {
+	ranges = <0 0 0x30000000 0x04>; /* CS0: NAND */
+
+	nand at 0,0 {
+		reg = <0 0 0>; /* CS0, offset 0 */
+		nand-bus-width = <16>;
+		ti,nand-ecc-opt = "sw";
+
+		gpmc,sync-clk-ps = <0>;
+		gpmc,cs-on-ns = <0>;
+		gpmc,cs-rd-off-ns = <44>;
+		gpmc,cs-wr-off-ns = <44>;
+		gpmc,adv-on-ns = <6>;
+		gpmc,adv-rd-off-ns = <34>;
+		gpmc,adv-wr-off-ns = <44>;
+		gpmc,we-off-ns = <40>;
+		gpmc,oe-off-ns = <54>;
+		gpmc,access-ns = <64>;
+		gpmc,rd-cycle-ns = <82>;
+		gpmc,wr-cycle-ns = <82>;
+		gpmc,wr-access-ns = <40>;
+		gpmc,wr-data-mux-bus-ns = <0>;
+		gpmc,device-width = <2>;
+
+		#address-cells = <1>;
+		#size-cells = <1>;
+
+		/* u-boot uses mtdparts=nand:512k(xloader),1920k(uboot),128k(uboot-env),10m(boot),-(rootfs) */
+
+		x-loader at 0 {
+			label = "xloader";
+			reg = <0 0x80000>;
+		};
+
+		bootloaders at 80000 {
+			label = "uboot";
+			reg = <0x80000 0x1e0000>;
+		};
+
+		bootloaders_env at 260000 {
+			label = "uboot-env";
+			reg = <0x260000 0x20000>;
+		};
+
+		kernel at 280000 {
+			label = "boot";
+			reg = <0x280000 0xa00000>;
+		};
+
+		filesystem at 680000 {
+			label = "rootfs";
+			reg = <0xc80000 0>;	/* 0 = MTDPART_SIZ_FULL */
+		};
+	};
+};
+
+&mcspi1 {
+	tsc2046 at 0 {
+		reg = <0>;	/* CS0 */
+		compatible = "ti,tsc2046";
+		spi-max-frequency = <1000000>;
+		pinctrl-names = "default";
+		pinctrl-0 = <&penirq_pins>;
+		interrupt-parent = <&gpio3>;
+		interrupts = <30 0>;	/* GPIO_94 */
+		pendown-gpio = <&gpio3 30 0>;
+		vcc-supply = <&vaux4>;
+
+		ti,x-min = /bits/ 16 <0>;
+		ti,x-max = /bits/ 16 <8000>;
+		ti,y-min = /bits/ 16 <0>;
+		ti,y-max = /bits/ 16 <4800>;
+		ti,x-plate-ohms = /bits/ 16 <40>;
+		ti,pressure-max = /bits/ 16 <255>;
+
+		linux,wakeup;
+	};
+
+	lcd: lcd at 1 {
+		reg = <1>;	/* CS1 */
+		compatible =	"omapdss,tpo,td043mtea1";
+		spi-max-frequency = <100000>;
+		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>;
+			};
+		};
+	};
+
+
+};
+
+/* n/a - used as GPIOs */
+&mcbsp1 {
+};
+
+/* audio DAC */
+&mcbsp2 {
+};
+
+/* bluetooth */
+&mcbsp3 {
+};
+
+/* to twl4030*/
+&mcbsp4 {
+};
+
+&venc {
+	status = "ok";
+
+	vdda-supply = <&vdac>;
+
+	port {
+		venc_out: endpoint {
+			remote-endpoint = <&tv_connector_in>;
+			ti,channels = <2>;
+		};
+	};
+};
+
+&dss {
+	pinctrl-names = "default";
+	pinctrl-0 = < &dss_dpi_pins >;
+
+	status = "ok";
+	vdds_dsi-supply = <&vpll2>;
+
+	port {
+		dpi_out: endpoint {
+			remote-endpoint = <&lcd_in>;
+			data-lines = <24>;
+		};
+	};
+};
-- 
1.9.1

^ permalink raw reply related	[flat|nested] 13+ messages in thread

* [PATCH 2/4] ARM: dts: omap3-pandora: add OMAP3530 600 MHz version
  2015-02-12 13:03 [PATCH 0/4] add openpandora device support Marek Belisko
  2015-02-12 13:03 ` [PATCH 1/4] ARM: dts: omap3-pandora: add common device tree Marek Belisko
@ 2015-02-12 13:03 ` Marek Belisko
  2015-02-12 16:53   ` Tony Lindgren
  2015-02-12 13:03 ` [PATCH 3/4] ARM: dts: omap3-pandora: add DM3730 1 GHz version Marek Belisko
                   ` (2 subsequent siblings)
  4 siblings, 1 reply; 13+ messages in thread
From: Marek Belisko @ 2015-02-12 13:03 UTC (permalink / raw)
  To: linux-arm-kernel

From: "H. Nikolaus Schaller" <hns@goldelico.com>

Signed-off-by: H. Nikolaus Schaller <hns@goldelico.com>
---
 arch/arm/boot/dts/omap3-pandora-600mhz.dts | 65 ++++++++++++++++++++++++++++++
 1 file changed, 65 insertions(+)
 create mode 100644 arch/arm/boot/dts/omap3-pandora-600mhz.dts

diff --git a/arch/arm/boot/dts/omap3-pandora-600mhz.dts b/arch/arm/boot/dts/omap3-pandora-600mhz.dts
new file mode 100644
index 0000000..7a51b04
--- /dev/null
+++ b/arch/arm/boot/dts/omap3-pandora-600mhz.dts
@@ -0,0 +1,65 @@
+/*
+ * Copyright (C) 2015
+ *   Nikolaus Schaller <hns@goldelico.com>
+ *
+ * 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.
+ */
+
+/*
+ * device tree for OpenPandora with OMAP3530
+ */
+
+/dts-v1/;
+
+#include "omap34xx.dtsi"
+#include "omap3-pandora-common.dtsi"
+
+/ {
+	model = "Pandora Handheld Console";
+
+	compatible = "ti,omap3";
+};
+
+&omap3_pmx_core2 {
+
+	pinctrl-names = "default";
+	pinctrl-0 = <
+		&hsusb2_2_pins
+		&control_pins
+	>;
+
+	hsusb2_2_pins: pinmux_hsusb2_2_pins {
+		pinctrl-single,pins = <
+			OMAP3430_CORE2_IOPAD(0x25f0, PIN_OUTPUT | MUX_MODE3)		/* etk_d10.hsusb2_clk */
+			OMAP3430_CORE2_IOPAD(0x25f2, PIN_OUTPUT | MUX_MODE3)		/* etk_d11.hsusb2_stp */
+			OMAP3430_CORE2_IOPAD(0x25f4, PIN_INPUT_PULLDOWN | MUX_MODE3)	/* etk_d12.hsusb2_dir */
+			OMAP3430_CORE2_IOPAD(0x25f6, PIN_INPUT_PULLDOWN | MUX_MODE3)	/* etk_d13.hsusb2_nxt */
+			OMAP3430_CORE2_IOPAD(0x25f8, PIN_INPUT_PULLDOWN | MUX_MODE3)	/* etk_d14.hsusb2_data0 */
+			OMAP3430_CORE2_IOPAD(0x25fa, PIN_INPUT_PULLDOWN | MUX_MODE3)	/* etk_d15.hsusb2_data1 */
+		>;
+	};
+
+	mmc3_pins: pinmux_mmc3_pins {
+		pinctrl-single,pins = <
+			OMAP3430_CORE2_IOPAD(0x25d8, PIN_INPUT_PULLUP | MUX_MODE2)	/* etk_clk.sdmmc3_clk */
+			OMAP3430_CORE2_IOPAD(0x25da, PIN_INPUT_PULLUP | MUX_MODE2)	/* etk_ctl.sdmmc3_cmd */
+			OMAP3430_CORE2_IOPAD(0x25e2, PIN_INPUT_PULLUP | MUX_MODE2)	/* etk_d3.sdmmc3_dat3 */
+			OMAP3430_CORE2_IOPAD(0x25e4, PIN_INPUT_PULLUP | MUX_MODE2)	/* etk_d4.sdmmc3_dat0 */
+			OMAP3430_CORE2_IOPAD(0x25e6, PIN_INPUT_PULLUP | MUX_MODE2)	/* etk_d5.sdmmc3_dat1 */
+			OMAP3430_CORE2_IOPAD(0x25e8, PIN_INPUT_PULLUP | MUX_MODE2)	/* etk_d6.sdmmc3_dat2 */
+		>;
+	};
+
+	control_pins: pinmux_control_pins {
+		pinctrl-single,pins = <
+			OMAP3430_CORE2_IOPAD(0x25dc, PIN_INPUT_PULLDOWN | MUX_MODE4)	/* etk_d0.gpio_14 =  HP_SHUTDOWN */
+			OMAP3430_CORE2_IOPAD(0x25de, PIN_OUTPUT | MUX_MODE4)		/* etk_d1.gpio_15 =  BT_SHUTDOWN */
+			OMAP3430_CORE2_IOPAD(0x25e0, PIN_OUTPUT | MUX_MODE4)		/* etk_d2.gpio_16 =  RESET_USB_HOST */
+			OMAP3430_CORE2_IOPAD(0x25ea, PIN_INPUT_PULLUP | MUX_MODE4)	/* etk_d7.gpio_21 =  WIFI IRQ */
+			OMAP3430_CORE2_IOPAD(0x25ec, PIN_OUTPUT | MUX_MODE4)		/* etk_d8.gpio_22 =  MSECURE */
+			OMAP3430_CORE2_IOPAD(0x25ee, PIN_OUTPUT | MUX_MODE4)		/* etk_d9.gpio_23 =  WIFI_POWER */
+		>;
+	};
+};
-- 
1.9.1

^ permalink raw reply related	[flat|nested] 13+ messages in thread

* [PATCH 3/4] ARM: dts: omap3-pandora: add DM3730 1 GHz version
  2015-02-12 13:03 [PATCH 0/4] add openpandora device support Marek Belisko
  2015-02-12 13:03 ` [PATCH 1/4] ARM: dts: omap3-pandora: add common device tree Marek Belisko
  2015-02-12 13:03 ` [PATCH 2/4] ARM: dts: omap3-pandora: add OMAP3530 600 MHz version Marek Belisko
@ 2015-02-12 13:03 ` Marek Belisko
  2015-02-12 13:03 ` [PATCH 4/4] ARM: dts: omap3-pandora: include in dts Makefile Marek Belisko
  2015-02-12 14:35 ` [PATCH 0/4] add openpandora device support Grazvydas Ignotas
  4 siblings, 0 replies; 13+ messages in thread
From: Marek Belisko @ 2015-02-12 13:03 UTC (permalink / raw)
  To: linux-arm-kernel

From: "H. Nikolaus Schaller" <hns@goldelico.com>

Signed-off-by: H. Nikolaus Schaller <hns@goldelico.com>
---
 arch/arm/boot/dts/omap3-pandora-1ghz.dts | 65 ++++++++++++++++++++++++++++++++
 1 file changed, 65 insertions(+)
 create mode 100644 arch/arm/boot/dts/omap3-pandora-1ghz.dts

diff --git a/arch/arm/boot/dts/omap3-pandora-1ghz.dts b/arch/arm/boot/dts/omap3-pandora-1ghz.dts
new file mode 100644
index 0000000..6286f41
--- /dev/null
+++ b/arch/arm/boot/dts/omap3-pandora-1ghz.dts
@@ -0,0 +1,65 @@
+/*
+ * Copyright (C) 2015
+ *   Nikolaus Schaller <hns@goldelico.com>
+ *
+ * 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.
+ */
+
+/*
+ * device tree for OpenPandora 1GHz with DM3730
+ */
+
+/dts-v1/;
+
+#include "omap36xx.dtsi"
+#include "omap3-pandora-common.dtsi"
+
+/ {
+	model = "Pandora Handheld Console 1GHz";
+
+	compatible = "ti,omap36xx", "ti,omap3";
+};
+
+&omap3_pmx_core2 {
+
+	pinctrl-names = "default";
+	pinctrl-0 = <
+		&hsusb2_2_pins
+		&control_pins
+	>;
+
+	hsusb2_2_pins: pinmux_hsusb2_2_pins {
+		pinctrl-single,pins = <
+			OMAP3630_CORE2_IOPAD(0x25f0, PIN_OUTPUT | MUX_MODE3)		/* etk_d10.hsusb2_clk */
+			OMAP3630_CORE2_IOPAD(0x25f2, PIN_OUTPUT | MUX_MODE3)		/* etk_d11.hsusb2_stp */
+			OMAP3630_CORE2_IOPAD(0x25f4, PIN_INPUT_PULLDOWN | MUX_MODE3)	/* etk_d12.hsusb2_dir */
+			OMAP3630_CORE2_IOPAD(0x25f6, PIN_INPUT_PULLDOWN | MUX_MODE3)	/* etk_d13.hsusb2_nxt */
+			OMAP3630_CORE2_IOPAD(0x25f8, PIN_INPUT_PULLDOWN | MUX_MODE3)	/* etk_d14.hsusb2_data0 */
+			OMAP3630_CORE2_IOPAD(0x25fa, PIN_INPUT_PULLDOWN | MUX_MODE3)	/* etk_d15.hsusb2_data1 */
+		>;
+	};
+
+	mmc3_pins: pinmux_mmc3_pins {
+		pinctrl-single,pins = <
+			OMAP3630_CORE2_IOPAD(0x25d8, PIN_INPUT_PULLUP | MUX_MODE2)	/* etk_clk.sdmmc3_clk */
+			OMAP3630_CORE2_IOPAD(0x25da, PIN_INPUT_PULLUP | MUX_MODE2)	/* etk_ctl.sdmmc3_cmd */
+			OMAP3630_CORE2_IOPAD(0x25e2, PIN_INPUT_PULLUP | MUX_MODE2)	/* etk_d3.sdmmc3_dat3 */
+			OMAP3630_CORE2_IOPAD(0x25e4, PIN_INPUT_PULLUP | MUX_MODE2)	/* etk_d4.sdmmc3_dat0 */
+			OMAP3630_CORE2_IOPAD(0x25e6, PIN_INPUT_PULLUP | MUX_MODE2)	/* etk_d5.sdmmc3_dat1 */
+			OMAP3630_CORE2_IOPAD(0x25e8, PIN_INPUT_PULLUP | MUX_MODE2)	/* etk_d6.sdmmc3_dat2 */
+		>;
+	};
+
+	control_pins: pinmux_control_pins {
+		pinctrl-single,pins = <
+			OMAP3630_CORE2_IOPAD(0x25dc, PIN_INPUT_PULLDOWN | MUX_MODE4)	/* etk_d0.gpio_14 =  HP_SHUTDOWN */
+			OMAP3630_CORE2_IOPAD(0x25de, PIN_OUTPUT | MUX_MODE4)		/* etk_d1.gpio_15 =  BT_SHUTDOWN */
+			OMAP3630_CORE2_IOPAD(0x25e0, PIN_OUTPUT | MUX_MODE4)		/* etk_d2.gpio_16 =  RESET_USB_HOST */
+			OMAP3630_CORE2_IOPAD(0x25ea, PIN_INPUT_PULLUP | MUX_MODE4)	/* etk_d7.gpio_21 =  WIFI IRQ */
+			OMAP3630_CORE2_IOPAD(0x25ec, PIN_OUTPUT | MUX_MODE4)		/* etk_d8.gpio_22 =  MSECURE */
+			OMAP3630_CORE2_IOPAD(0x25ee, PIN_OUTPUT | MUX_MODE4)		/* etk_d9.gpio_23 =  WIFI_POWER */
+		>;
+	};
+};
-- 
1.9.1

^ permalink raw reply related	[flat|nested] 13+ messages in thread

* [PATCH 4/4] ARM: dts: omap3-pandora: include in dts Makefile
  2015-02-12 13:03 [PATCH 0/4] add openpandora device support Marek Belisko
                   ` (2 preceding siblings ...)
  2015-02-12 13:03 ` [PATCH 3/4] ARM: dts: omap3-pandora: add DM3730 1 GHz version Marek Belisko
@ 2015-02-12 13:03 ` Marek Belisko
  2015-02-12 16:04   ` Tony Lindgren
  2015-02-12 14:35 ` [PATCH 0/4] add openpandora device support Grazvydas Ignotas
  4 siblings, 1 reply; 13+ messages in thread
From: Marek Belisko @ 2015-02-12 13:03 UTC (permalink / raw)
  To: linux-arm-kernel

From: "H. Nikolaus Schaller" <hns@goldelico.com>

Signed-off-by: H. Nikolaus Schaller <hns@goldelico.com>
---
 arch/arm/boot/dts/Makefile | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile
index 91bd5bd..69f3106 100644
--- a/arch/arm/boot/dts/Makefile
+++ b/arch/arm/boot/dts/Makefile
@@ -343,6 +343,8 @@ dtb-$(CONFIG_ARCH_OMAP3) += am3517-craneboard.dtb \
 	omap3-overo-storm-tobi.dtb \
 	omap3-overo-summit.dtb \
 	omap3-overo-tobi.dtb \
+	omap3-pandora-600mhz.dtb \
+	omap3-pandora-1ghz.dtb \
 	omap3-sbc-t3517.dtb \
 	omap3-sbc-t3530.dtb \
 	omap3-sbc-t3730.dtb \
-- 
1.9.1

^ permalink raw reply related	[flat|nested] 13+ messages in thread

* [PATCH 0/4] add openpandora device support
  2015-02-12 13:03 [PATCH 0/4] add openpandora device support Marek Belisko
                   ` (3 preceding siblings ...)
  2015-02-12 13:03 ` [PATCH 4/4] ARM: dts: omap3-pandora: include in dts Makefile Marek Belisko
@ 2015-02-12 14:35 ` Grazvydas Ignotas
  4 siblings, 0 replies; 13+ messages in thread
From: Grazvydas Ignotas @ 2015-02-12 14:35 UTC (permalink / raw)
  To: linux-arm-kernel

On Thu, Feb 12, 2015 at 3:03 PM, Marek Belisko <marek@goldelico.com> wrote:
> This series of patches adds initial device tree support for the
> OpenPandora. The most important parts are working (display, keyboard,
> touch, charging, fuel gauge, musb port, sd/mmc ports, leds, buttons).
> Not yet supported are: usb host port, nubs, wifi, bluetooth, audio.
>
> First patch add common dtsi file which is then used in 600mhz and 1ghz
> variants of openpandora which support is added in patches 2 and 3.

Nice, thanks for those patches.
There is also a OMAP3530 variant with 256MB of RAM (otherwise
identical to 512MB OMAP3530) that the legacy board file supports, over
1000 such units were made. Could we also have support for that? I
guess that will make 4 pandora related .dts files...


Gra?vydas

^ permalink raw reply	[flat|nested] 13+ messages in thread

* [PATCH 1/4] ARM: dts: omap3-pandora: add common device tree
  2015-02-12 13:03 ` [PATCH 1/4] ARM: dts: omap3-pandora: add common device tree Marek Belisko
@ 2015-02-12 16:03   ` Tony Lindgren
  2015-02-12 16:29     ` Dr. H. Nikolaus Schaller
  2015-02-12 17:47   ` Grazvydas Ignotas
  1 sibling, 1 reply; 13+ messages in thread
From: Tony Lindgren @ 2015-02-12 16:03 UTC (permalink / raw)
  To: linux-arm-kernel

Hi,

Few comments below.

* Marek Belisko <marek@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 = <2600000>;
> +
> +	twl: twl at 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 0x30000000 0x04>; /* CS0: NAND */

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

	ranges = <0 0 0x30000000 0x1000000>,	/* CS0: 16MB for NAND */

> +	nand at 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 at 680000 {
> +			label = "rootfs";
> +			reg = <0xc80000 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 at 1 {
> +		reg = <1>;	/* CS1 */
> +		compatible =	"omapdss,tpo,td043mtea1";
> +		spi-max-frequency = <100000>;
> +		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

^ permalink raw reply	[flat|nested] 13+ messages in thread

* [PATCH 4/4] ARM: dts: omap3-pandora: include in dts Makefile
  2015-02-12 13:03 ` [PATCH 4/4] ARM: dts: omap3-pandora: include in dts Makefile Marek Belisko
@ 2015-02-12 16:04   ` Tony Lindgren
  0 siblings, 0 replies; 13+ messages in thread
From: Tony Lindgren @ 2015-02-12 16:04 UTC (permalink / raw)
  To: linux-arm-kernel

* Marek Belisko <marek@goldelico.com> [150212 05:07]:
> From: "H. Nikolaus Schaller" <hns@goldelico.com>
> 
> Signed-off-by: H. Nikolaus Schaller <hns@goldelico.com>
> ---
>  arch/arm/boot/dts/Makefile | 2 ++
>  1 file changed, 2 insertions(+)
> 
> diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile
> index 91bd5bd..69f3106 100644
> --- a/arch/arm/boot/dts/Makefile
> +++ b/arch/arm/boot/dts/Makefile
> @@ -343,6 +343,8 @@ dtb-$(CONFIG_ARCH_OMAP3) += am3517-craneboard.dtb \
>  	omap3-overo-storm-tobi.dtb \
>  	omap3-overo-summit.dtb \
>  	omap3-overo-tobi.dtb \
> +	omap3-pandora-600mhz.dtb \
> +	omap3-pandora-1ghz.dtb \
>  	omap3-sbc-t3517.dtb \
>  	omap3-sbc-t3530.dtb \
>  	omap3-sbc-t3730.dtb \

This change you can fold into patches 3 and 4 :)

Regards,

Tony

^ permalink raw reply	[flat|nested] 13+ messages in thread

* [PATCH 1/4] ARM: dts: omap3-pandora: add common device tree
  2015-02-12 16:03   ` Tony Lindgren
@ 2015-02-12 16:29     ` Dr. H. Nikolaus Schaller
  2015-02-12 16:52       ` Tony Lindgren
  0 siblings, 1 reply; 13+ messages in thread
From: Dr. H. Nikolaus Schaller @ 2015-02-12 16:29 UTC (permalink / raw)
  To: linux-arm-kernel


Am 12.02.2015 um 17:03 schrieb Tony Lindgren <tony@atomide.com>:

> Hi,
> 
> Few comments below.
> 
> * Marek Belisko <marek@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 = <2600000>;
>> +
>> +	twl: twl at 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 0x30000000 0x04>; /* CS0: NAND */
> 
> The ranges here allocate the GPMC partition, so it needs to be
> a minimum of 16MB:
> 
> 	ranges = <0 0 0x30000000 0x1000000>,	/* CS0: 16MB for NAND */
> 
>> +	nand at 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 at 680000 {
>> +			label = "rootfs";
>> +			reg = <0xc80000 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 at 1 {
>> +		reg = <1>;	/* CS1 */
>> +		compatible =	"omapdss,tpo,td043mtea1";
>> +		spi-max-frequency = <100000>;
>> +		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

^ permalink raw reply	[flat|nested] 13+ messages in thread

* [PATCH 1/4] ARM: dts: omap3-pandora: add common device tree
  2015-02-12 16:29     ` Dr. H. Nikolaus Schaller
@ 2015-02-12 16:52       ` Tony Lindgren
  0 siblings, 0 replies; 13+ messages in thread
From: Tony Lindgren @ 2015-02-12 16:52 UTC (permalink / raw)
  To: linux-arm-kernel

* Dr. H. Nikolaus Schaller <hns@goldelico.com> [150212 08:34]:
> Am 12.02.2015 um 17:03 schrieb Tony Lindgren <tony@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

^ permalink raw reply	[flat|nested] 13+ messages in thread

* [PATCH 2/4] ARM: dts: omap3-pandora: add OMAP3530 600 MHz version
  2015-02-12 13:03 ` [PATCH 2/4] ARM: dts: omap3-pandora: add OMAP3530 600 MHz version Marek Belisko
@ 2015-02-12 16:53   ` Tony Lindgren
  0 siblings, 0 replies; 13+ messages in thread
From: Tony Lindgren @ 2015-02-12 16:53 UTC (permalink / raw)
  To: linux-arm-kernel

* Marek Belisko <marek@goldelico.com> [150212 05:07]:
> From: "H. Nikolaus Schaller" <hns@goldelico.com>

Can you please add a patch description for the board varian
patches?

Thanks,

Tony

^ permalink raw reply	[flat|nested] 13+ messages in thread

* [PATCH 1/4] ARM: dts: omap3-pandora: add common device tree
  2015-02-12 13:03 ` [PATCH 1/4] ARM: dts: omap3-pandora: add common device tree Marek Belisko
  2015-02-12 16:03   ` Tony Lindgren
@ 2015-02-12 17:47   ` Grazvydas Ignotas
  2015-02-12 20:09     ` Dr. H. Nikolaus Schaller
  1 sibling, 1 reply; 13+ messages in thread
From: Grazvydas Ignotas @ 2015-02-12 17:47 UTC (permalink / raw)
  To: linux-arm-kernel

On Thu, Feb 12, 2015 at 3:03 PM, Marek Belisko <marek@goldelico.com> wrote:
> From: "H. Nikolaus Schaller" <hns@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 <hns@goldelico.com>
> Signed-off-by: Marek Belisko <marek@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 0000000..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 at 1 {
> +                       label = "pandora::sd1";
> +                       gpios = <&gpio5 0 GPIO_ACTIVE_HIGH>;    /* GPIO_128 */
> +                       linux,default-trigger = "mmc0";
> +                       default-state = "off";
> +               };
> +
> +               led at 2 {
> +                       label = "pandora::sd2";
> +                       gpios = <&gpio5 1 GPIO_ACTIVE_HIGH>;    /* GPIO_129 */
> +                       linux,default-trigger = "mmc1";
> +                       default-state = "off";
> +               };
> +
> +               led at 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 at 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 */
> +                       gpio-key,wakeup;
> +               };
> +
> +               right-ctrl {
> +                       label = "r";
> +                       linux,code = <KEY_RIGHTCTRL>;
> +                       gpios = <&gpio4 9 GPIO_ACTIVE_HIGH>;    /* GPIO_105 */
> +                       gpio-key,wakeup;
> +               };
> +
> +               kp-minus {
> +                       label = "r2";
> +                       linux,code = <KEY_KPMINUS>;
> +                       gpios = <&gpio4 11 GPIO_ACTIVE_HIGH>;   /* GPIO_107 */
> +                       gpio-key,wakeup;
> +               };
> +
> +               left-ctrl {
> +                       label = "ctrl";
> +                       linux,code = <KEY_LEFTCTRL>;
> +                       gpios = <&gpio4 8 GPIO_ACTIVE_HIGH>;    /* GPIO_104 */
> +                       gpio-key,wakeup;
> +               };
> +
> +               menu {
> +                       label = "menu";
> +                       linux,code = <KEY_MENU>;
> +                       gpios = <&gpio4 3 GPIO_ACTIVE_HIGH>;    /* GPIO_99 */
> +                       gpio-key,wakeup;
> +               };
> +
> +               hold {
> +                       label = "hold";
> +                       linux,code = <KEY_COFFEE>;
> +                       gpios = <&gpio6 16 GPIO_ACTIVE_HIGH>;   /* GPIO_176 */
> +                       gpio-key,wakeup;
> +               };
> +
> +               left-alt {
> +                       label = "alt";
> +                       linux,code = <KEY_LEFTALT>;
> +                       gpios = <&gpio4 4 GPIO_ACTIVE_HIGH>;    /* GPIO_100 */
> +                       gpio-key,wakeup;
> +               };
> +
> +               lid {
> +                       label = "lid";
> +                       linux,code = <0x00>;    /* SW_LID lid shut */
> +                       linux,input-type = <0x05>;    /* EV_SW */
> +                       gpios = <&gpio4 12 GPIO_ACTIVE_HIGH>;   /* GPIO_108 */
> +                       gpio-key,wakeup;
> +               };

This is not right, all button GPIOs are active low except GPIO_100,
which is active high. GPIO_108 should not have the wakeup flag set
because lid switch power is normally cut during low power modes.

...

> +
> +       dss_dpi_pins: pinmux_dss_dpi_pins {
> +               pinctrl-single,pins = <
> +                       OMAP3_CORE1_IOPAD(0x20d4, PIN_OUTPUT | MUX_MODE0)       /* dss_pclk.dss_pclk */
> +                       OMAP3_CORE1_IOPAD(0x20d6, PIN_OUTPUT | MUX_MODE0)       /* dss_hsync.dss_hsync */
> +                       OMAP3_CORE1_IOPAD(0x20d8, PIN_OUTPUT | MUX_MODE0)       /* dss_vsync.dss_vsync */
> +                       OMAP3_CORE1_IOPAD(0x20da, PIN_OUTPUT | MUX_MODE0)       /* dss_acbias.dss_acbias */
> +                       OMAP3_CORE1_IOPAD(0x20dc, PIN_OUTPUT | MUX_MODE0)       /* dss_data0.dss_data0 */
> +                       OMAP3_CORE1_IOPAD(0x20de, PIN_OUTPUT | MUX_MODE0)       /* dss_data1.dss_data1 */
> +                       OMAP3_CORE1_IOPAD(0x20e0, PIN_OUTPUT | MUX_MODE0)       /* dss_data2.dss_data2 */
> +                       OMAP3_CORE1_IOPAD(0x20e2, PIN_OUTPUT | MUX_MODE0)       /* dss_data3.dss_data3 */
> +                       OMAP3_CORE1_IOPAD(0x20e4, PIN_OUTPUT | MUX_MODE0)       /* dss_data4.dss_data4 */
> +                       OMAP3_CORE1_IOPAD(0x20e6, PIN_OUTPUT | MUX_MODE0)       /* dss_data5.dss_data5 */
> +                       OMAP3_CORE1_IOPAD(0x20e8, PIN_OUTPUT | MUX_MODE0)       /* dss_data6.dss_data6 */
> +                       OMAP3_CORE1_IOPAD(0x20ea, PIN_OUTPUT | MUX_MODE0)       /* dss_data7.dss_data7 */
> +                       OMAP3_CORE1_IOPAD(0x20ec, PIN_OUTPUT | MUX_MODE0)       /* dss_data8.dss_data8 */
> +                       OMAP3_CORE1_IOPAD(0x20ee, PIN_OUTPUT | MUX_MODE0)       /* dss_data9.dss_data9 */
> +                       OMAP3_CORE1_IOPAD(0x20f0, PIN_OUTPUT | MUX_MODE0)       /* dss_data10.dss_data10 */
> +                       OMAP3_CORE1_IOPAD(0x20f2, PIN_OUTPUT | MUX_MODE0)       /* dss_data11.dss_data11 */
> +                       OMAP3_CORE1_IOPAD(0x20f4, PIN_OUTPUT | MUX_MODE0)       /* dss_data12.dss_data12 */
> +                       OMAP3_CORE1_IOPAD(0x20f6, PIN_OUTPUT | MUX_MODE0)       /* dss_data13.dss_data13 */
> +                       OMAP3_CORE1_IOPAD(0x20f8, PIN_OUTPUT | MUX_MODE0)       /* dss_data14.dss_data14 */
> +                       OMAP3_CORE1_IOPAD(0x20fa, PIN_OUTPUT | MUX_MODE0)       /* dss_data15.dss_data15 */
> +                       OMAP3_CORE1_IOPAD(0x20fc, PIN_OUTPUT | MUX_MODE0)       /* dss_data16.dss_data16 */
> +                       OMAP3_CORE1_IOPAD(0x20fe, PIN_OUTPUT | MUX_MODE0)       /* dss_data17.dss_data17 */
> +                       OMAP3_CORE1_IOPAD(0x2100, PIN_OUTPUT | MUX_MODE0)       /* dss_data18.dss_data18 */
> +                       OMAP3_CORE1_IOPAD(0x2102, PIN_OUTPUT | MUX_MODE0)       /* dss_data19.dss_data19 */
> +                       OMAP3_CORE1_IOPAD(0x2104, PIN_OUTPUT | MUX_MODE0)       /* dss_data20.dss_data20 */
> +                       OMAP3_CORE1_IOPAD(0x2106, PIN_OUTPUT | MUX_MODE0)       /* dss_data21.dss_data21 */
> +                       OMAP3_CORE1_IOPAD(0x2108, PIN_OUTPUT | MUX_MODE0)       /* dss_data22.dss_data22 */
> +                       OMAP3_CORE1_IOPAD(0x210a, PIN_OUTPUT | MUX_MODE0)       /* dss_data23.dss_data23 */
> +                       OMAP3_CORE1_IOPAD(0x218e, PIN_OUTPUT | MUX_MODE4)       /* GPIO_157 = lcd reset */
> +               >;
> +       };
> +
> +       uart3_pins: pinmux_uart3_pins {
> +               pinctrl-single,pins = <
> +                       OMAP3_CORE1_IOPAD(0x219e, PIN_INPUT | PIN_OFF_WAKEUPENABLE | MUX_MODE0) /* uart3_rx_irrx.uart3_rx_irrx */
> +                       OMAP3_CORE1_IOPAD(0x21a0, PIN_OUTPUT | MUX_MODE0) /* uart3_tx_irtx.uart3_tx_irtx */
> +               >;
> +       };
> +
> +       led_pins: pinmux_leds_pins {
> +               pinctrl-single,pins = <
> +                       OMAP3_CORE1_IOPAD(0x2154, PIN_OUTPUT | MUX_MODE4)       /* GPIO_128 */
> +                       OMAP3_CORE1_IOPAD(0x2156, PIN_OUTPUT | MUX_MODE4)       /* GPIO_129 */
> +                       OMAP3_CORE1_IOPAD(0x2190, PIN_OUTPUT | MUX_MODE4)       /* GPIO_158 */
> +                       OMAP3_CORE1_IOPAD(0x2192, PIN_OUTPUT | MUX_MODE4)       /* GPIO_159 */
> +               >;
> +       };
> +
> +       button_pins: pinmux_button_pins {
> +               pinctrl-single,pins = <
> +                       OMAP3_CORE1_IOPAD(0x2110, PIN_INPUT_PULLUP | MUX_MODE4)        /* GPIO_96 */
> +                       OMAP3_CORE1_IOPAD(0x2112, PIN_INPUT_PULLUP | MUX_MODE4)        /* GPIO_97 */
> +                       OMAP3_CORE1_IOPAD(0x2114, PIN_INPUT_PULLUP | MUX_MODE4)        /* GPIO_98 */
> +                       OMAP3_CORE1_IOPAD(0x2116, PIN_INPUT_PULLUP | MUX_MODE4)        /* GPIO_99 */
> +                       OMAP3_CORE1_IOPAD(0x2118, PIN_INPUT_PULLUP | MUX_MODE4)        /* GPIO_100 */
> +                       OMAP3_CORE1_IOPAD(0x211a, PIN_INPUT_PULLUP | MUX_MODE4)        /* GPIO_101 */
> +                       OMAP3_CORE1_IOPAD(0x211c, PIN_INPUT_PULLUP | MUX_MODE4)        /* GPIO_102 */
> +                       OMAP3_CORE1_IOPAD(0x211e, PIN_INPUT_PULLUP | MUX_MODE4)        /* GPIO_103 */
> +                       OMAP3_CORE1_IOPAD(0x2120, PIN_INPUT_PULLUP | MUX_MODE4)        /* GPIO_104 */
> +                       OMAP3_CORE1_IOPAD(0x2122, PIN_INPUT_PULLUP | MUX_MODE4)        /* GPIO_105 */
> +                       OMAP3_CORE1_IOPAD(0x2124, PIN_INPUT_PULLUP | MUX_MODE4)        /* GPIO_106 */
> +                       OMAP3_CORE1_IOPAD(0x2126, PIN_INPUT_PULLUP | MUX_MODE4)        /* GPIO_107 */
> +                       OMAP3_CORE1_IOPAD(0x2128, PIN_INPUT_PULLUP | MUX_MODE4)        /* GPIO_108 */
> +                       OMAP3_CORE1_IOPAD(0x212a, PIN_INPUT_PULLUP | MUX_MODE4)        /* GPIO_109 */
> +                       OMAP3_CORE1_IOPAD(0x212c, PIN_INPUT_PULLUP | MUX_MODE4)        /* GPIO_110 */
> +                       OMAP3_CORE1_IOPAD(0x212e, PIN_INPUT_PULLUP | MUX_MODE4)        /* GPIO_111 */
> +                       OMAP3_CORE1_IOPAD(0x21d2, PIN_INPUT_PULLUP | MUX_MODE4)        /* GPIO_176 */

We should not set pullups for all the buttons, they all have external pullups.

> +               >;
> +       };
> +
> +       penirq_pins: pinmux_penirq_pins {
> +               pinctrl-single,pins = <
> +                       /* here we could enable to wakeup the cpu from suspend by a pen touch */
> +                       OMAP3_CORE1_IOPAD(0x210c, PIN_INPUT_PULLUP | MUX_MODE4) /* GPIO_94 */

Again, we already have external pullup, no need to waste power.

...

> +
> +&mmc1 {
> +       pinctrl-names = "default";
> +       pinctrl-0 = <&mmc1_pins>;
> +       vmmc-supply = <&vmmc1>;
> +       bus-width = <4>;
> +       cd-gpios = <&twl_gpio 0 GPIO_ACTIVE_LOW>;
> +       wp-gpios = <&gpio4 30 GPIO_ACTIVE_LOW>; /* GPIO_126 */

Large number of pandoras have defective write potect pins. Kernel used
to not support write protect at all, so we noticed it too late. If
it's possible to omit this it would be better do so, perhaps with a
comment, or I can send a patch later...

> +};
> +
> +&mmc2 {
> +       pinctrl-names = "default";
> +       pinctrl-0 = <&mmc2_pins>;
> +       vmmc-supply = <&vmmc2>;
> +       bus-width = <4>;
> +       cd-gpios = <&twl_gpio 1 GPIO_ACTIVE_HIGH>;
> +       wp-gpios = <&gpio4 31 GPIO_ACTIVE_LOW>; /* GPIO_127 */

same here


Gra?vydas

^ permalink raw reply	[flat|nested] 13+ messages in thread

* [PATCH 1/4] ARM: dts: omap3-pandora: add common device tree
  2015-02-12 17:47   ` Grazvydas Ignotas
@ 2015-02-12 20:09     ` Dr. H. Nikolaus Schaller
  0 siblings, 0 replies; 13+ messages in thread
From: Dr. H. Nikolaus Schaller @ 2015-02-12 20:09 UTC (permalink / raw)
  To: linux-arm-kernel


Am 12.02.2015 um 18:47 schrieb Grazvydas Ignotas <notasas@gmail.com>:

> On Thu, Feb 12, 2015 at 3:03 PM, Marek Belisko <marek@goldelico.com> wrote:
>> From: "H. Nikolaus Schaller" <hns@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 <hns@goldelico.com>
>> Signed-off-by: Marek Belisko <marek@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 0000000..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 at 1 {
>> +                       label = "pandora::sd1";
>> +                       gpios = <&gpio5 0 GPIO_ACTIVE_HIGH>;    /* GPIO_128 */
>> +                       linux,default-trigger = "mmc0";
>> +                       default-state = "off";
>> +               };
>> +
>> +               led at 2 {
>> +                       label = "pandora::sd2";
>> +                       gpios = <&gpio5 1 GPIO_ACTIVE_HIGH>;    /* GPIO_129 */
>> +                       linux,default-trigger = "mmc1";
>> +                       default-state = "off";
>> +               };
>> +
>> +               led at 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 at 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 */
>> +                       gpio-key,wakeup;
>> +               };
>> +
>> +               right-ctrl {
>> +                       label = "r";
>> +                       linux,code = <KEY_RIGHTCTRL>;
>> +                       gpios = <&gpio4 9 GPIO_ACTIVE_HIGH>;    /* GPIO_105 */
>> +                       gpio-key,wakeup;
>> +               };
>> +
>> +               kp-minus {
>> +                       label = "r2";
>> +                       linux,code = <KEY_KPMINUS>;
>> +                       gpios = <&gpio4 11 GPIO_ACTIVE_HIGH>;   /* GPIO_107 */
>> +                       gpio-key,wakeup;
>> +               };
>> +
>> +               left-ctrl {
>> +                       label = "ctrl";
>> +                       linux,code = <KEY_LEFTCTRL>;
>> +                       gpios = <&gpio4 8 GPIO_ACTIVE_HIGH>;    /* GPIO_104 */
>> +                       gpio-key,wakeup;
>> +               };
>> +
>> +               menu {
>> +                       label = "menu";
>> +                       linux,code = <KEY_MENU>;
>> +                       gpios = <&gpio4 3 GPIO_ACTIVE_HIGH>;    /* GPIO_99 */
>> +                       gpio-key,wakeup;
>> +               };
>> +
>> +               hold {
>> +                       label = "hold";
>> +                       linux,code = <KEY_COFFEE>;
>> +                       gpios = <&gpio6 16 GPIO_ACTIVE_HIGH>;   /* GPIO_176 */
>> +                       gpio-key,wakeup;
>> +               };
>> +
>> +               left-alt {
>> +                       label = "alt";
>> +                       linux,code = <KEY_LEFTALT>;
>> +                       gpios = <&gpio4 4 GPIO_ACTIVE_HIGH>;    /* GPIO_100 */
>> +                       gpio-key,wakeup;
>> +               };
>> +
>> +               lid {
>> +                       label = "lid";
>> +                       linux,code = <0x00>;    /* SW_LID lid shut */
>> +                       linux,input-type = <0x05>;    /* EV_SW */
>> +                       gpios = <&gpio4 12 GPIO_ACTIVE_HIGH>;   /* GPIO_108 */
>> +                       gpio-key,wakeup;
>> +               };
> 
> This is not right, all button GPIOs are active low except GPIO_100,
> which is active high.

Well, I didn?t notice a difference - but here we should do it right.

> GPIO_108 should not have the wakeup flag set
> because lid switch power is normally cut during low power modes.

Ah, you are right. It is VSIM powered.

> 
> ...
> 
>> +
>> +       dss_dpi_pins: pinmux_dss_dpi_pins {
>> +               pinctrl-single,pins = <
>> +                       OMAP3_CORE1_IOPAD(0x20d4, PIN_OUTPUT | MUX_MODE0)       /* dss_pclk.dss_pclk */
>> +                       OMAP3_CORE1_IOPAD(0x20d6, PIN_OUTPUT | MUX_MODE0)       /* dss_hsync.dss_hsync */
>> +                       OMAP3_CORE1_IOPAD(0x20d8, PIN_OUTPUT | MUX_MODE0)       /* dss_vsync.dss_vsync */
>> +                       OMAP3_CORE1_IOPAD(0x20da, PIN_OUTPUT | MUX_MODE0)       /* dss_acbias.dss_acbias */
>> +                       OMAP3_CORE1_IOPAD(0x20dc, PIN_OUTPUT | MUX_MODE0)       /* dss_data0.dss_data0 */
>> +                       OMAP3_CORE1_IOPAD(0x20de, PIN_OUTPUT | MUX_MODE0)       /* dss_data1.dss_data1 */
>> +                       OMAP3_CORE1_IOPAD(0x20e0, PIN_OUTPUT | MUX_MODE0)       /* dss_data2.dss_data2 */
>> +                       OMAP3_CORE1_IOPAD(0x20e2, PIN_OUTPUT | MUX_MODE0)       /* dss_data3.dss_data3 */
>> +                       OMAP3_CORE1_IOPAD(0x20e4, PIN_OUTPUT | MUX_MODE0)       /* dss_data4.dss_data4 */
>> +                       OMAP3_CORE1_IOPAD(0x20e6, PIN_OUTPUT | MUX_MODE0)       /* dss_data5.dss_data5 */
>> +                       OMAP3_CORE1_IOPAD(0x20e8, PIN_OUTPUT | MUX_MODE0)       /* dss_data6.dss_data6 */
>> +                       OMAP3_CORE1_IOPAD(0x20ea, PIN_OUTPUT | MUX_MODE0)       /* dss_data7.dss_data7 */
>> +                       OMAP3_CORE1_IOPAD(0x20ec, PIN_OUTPUT | MUX_MODE0)       /* dss_data8.dss_data8 */
>> +                       OMAP3_CORE1_IOPAD(0x20ee, PIN_OUTPUT | MUX_MODE0)       /* dss_data9.dss_data9 */
>> +                       OMAP3_CORE1_IOPAD(0x20f0, PIN_OUTPUT | MUX_MODE0)       /* dss_data10.dss_data10 */
>> +                       OMAP3_CORE1_IOPAD(0x20f2, PIN_OUTPUT | MUX_MODE0)       /* dss_data11.dss_data11 */
>> +                       OMAP3_CORE1_IOPAD(0x20f4, PIN_OUTPUT | MUX_MODE0)       /* dss_data12.dss_data12 */
>> +                       OMAP3_CORE1_IOPAD(0x20f6, PIN_OUTPUT | MUX_MODE0)       /* dss_data13.dss_data13 */
>> +                       OMAP3_CORE1_IOPAD(0x20f8, PIN_OUTPUT | MUX_MODE0)       /* dss_data14.dss_data14 */
>> +                       OMAP3_CORE1_IOPAD(0x20fa, PIN_OUTPUT | MUX_MODE0)       /* dss_data15.dss_data15 */
>> +                       OMAP3_CORE1_IOPAD(0x20fc, PIN_OUTPUT | MUX_MODE0)       /* dss_data16.dss_data16 */
>> +                       OMAP3_CORE1_IOPAD(0x20fe, PIN_OUTPUT | MUX_MODE0)       /* dss_data17.dss_data17 */
>> +                       OMAP3_CORE1_IOPAD(0x2100, PIN_OUTPUT | MUX_MODE0)       /* dss_data18.dss_data18 */
>> +                       OMAP3_CORE1_IOPAD(0x2102, PIN_OUTPUT | MUX_MODE0)       /* dss_data19.dss_data19 */
>> +                       OMAP3_CORE1_IOPAD(0x2104, PIN_OUTPUT | MUX_MODE0)       /* dss_data20.dss_data20 */
>> +                       OMAP3_CORE1_IOPAD(0x2106, PIN_OUTPUT | MUX_MODE0)       /* dss_data21.dss_data21 */
>> +                       OMAP3_CORE1_IOPAD(0x2108, PIN_OUTPUT | MUX_MODE0)       /* dss_data22.dss_data22 */
>> +                       OMAP3_CORE1_IOPAD(0x210a, PIN_OUTPUT | MUX_MODE0)       /* dss_data23.dss_data23 */
>> +                       OMAP3_CORE1_IOPAD(0x218e, PIN_OUTPUT | MUX_MODE4)       /* GPIO_157 = lcd reset */
>> +               >;
>> +       };
>> +
>> +       uart3_pins: pinmux_uart3_pins {
>> +               pinctrl-single,pins = <
>> +                       OMAP3_CORE1_IOPAD(0x219e, PIN_INPUT | PIN_OFF_WAKEUPENABLE | MUX_MODE0) /* uart3_rx_irrx.uart3_rx_irrx */
>> +                       OMAP3_CORE1_IOPAD(0x21a0, PIN_OUTPUT | MUX_MODE0) /* uart3_tx_irtx.uart3_tx_irtx */
>> +               >;
>> +       };
>> +
>> +       led_pins: pinmux_leds_pins {
>> +               pinctrl-single,pins = <
>> +                       OMAP3_CORE1_IOPAD(0x2154, PIN_OUTPUT | MUX_MODE4)       /* GPIO_128 */
>> +                       OMAP3_CORE1_IOPAD(0x2156, PIN_OUTPUT | MUX_MODE4)       /* GPIO_129 */
>> +                       OMAP3_CORE1_IOPAD(0x2190, PIN_OUTPUT | MUX_MODE4)       /* GPIO_158 */
>> +                       OMAP3_CORE1_IOPAD(0x2192, PIN_OUTPUT | MUX_MODE4)       /* GPIO_159 */
>> +               >;
>> +       };
>> +
>> +       button_pins: pinmux_button_pins {
>> +               pinctrl-single,pins = <
>> +                       OMAP3_CORE1_IOPAD(0x2110, PIN_INPUT_PULLUP | MUX_MODE4)        /* GPIO_96 */
>> +                       OMAP3_CORE1_IOPAD(0x2112, PIN_INPUT_PULLUP | MUX_MODE4)        /* GPIO_97 */
>> +                       OMAP3_CORE1_IOPAD(0x2114, PIN_INPUT_PULLUP | MUX_MODE4)        /* GPIO_98 */
>> +                       OMAP3_CORE1_IOPAD(0x2116, PIN_INPUT_PULLUP | MUX_MODE4)        /* GPIO_99 */
>> +                       OMAP3_CORE1_IOPAD(0x2118, PIN_INPUT_PULLUP | MUX_MODE4)        /* GPIO_100 */
>> +                       OMAP3_CORE1_IOPAD(0x211a, PIN_INPUT_PULLUP | MUX_MODE4)        /* GPIO_101 */
>> +                       OMAP3_CORE1_IOPAD(0x211c, PIN_INPUT_PULLUP | MUX_MODE4)        /* GPIO_102 */
>> +                       OMAP3_CORE1_IOPAD(0x211e, PIN_INPUT_PULLUP | MUX_MODE4)        /* GPIO_103 */
>> +                       OMAP3_CORE1_IOPAD(0x2120, PIN_INPUT_PULLUP | MUX_MODE4)        /* GPIO_104 */
>> +                       OMAP3_CORE1_IOPAD(0x2122, PIN_INPUT_PULLUP | MUX_MODE4)        /* GPIO_105 */
>> +                       OMAP3_CORE1_IOPAD(0x2124, PIN_INPUT_PULLUP | MUX_MODE4)        /* GPIO_106 */
>> +                       OMAP3_CORE1_IOPAD(0x2126, PIN_INPUT_PULLUP | MUX_MODE4)        /* GPIO_107 */
>> +                       OMAP3_CORE1_IOPAD(0x2128, PIN_INPUT_PULLUP | MUX_MODE4)        /* GPIO_108 */
>> +                       OMAP3_CORE1_IOPAD(0x212a, PIN_INPUT_PULLUP | MUX_MODE4)        /* GPIO_109 */
>> +                       OMAP3_CORE1_IOPAD(0x212c, PIN_INPUT_PULLUP | MUX_MODE4)        /* GPIO_110 */
>> +                       OMAP3_CORE1_IOPAD(0x212e, PIN_INPUT_PULLUP | MUX_MODE4)        /* GPIO_111 */
>> +                       OMAP3_CORE1_IOPAD(0x21d2, PIN_INPUT_PULLUP | MUX_MODE4)        /* GPIO_176 */
> 
> We should not set pullups for all the buttons, they all have external pullups.

Well, if they are active low, unless a button is pressed it does not matter. If a button is pressed we have 100k and ~30k in parallel
giving approx. 80uA. Anyways, we should take your recommendation.

> 
>> +               >;
>> +       };
>> +
>> +       penirq_pins: pinmux_penirq_pins {
>> +               pinctrl-single,pins = <
>> +                       /* here we could enable to wakeup the cpu from suspend by a pen touch */
>> +                       OMAP3_CORE1_IOPAD(0x210c, PIN_INPUT_PULLUP | MUX_MODE4) /* GPIO_94 */
> 
> Again, we already have external pullup, no need to waste power.

Ok.

> 
> ...
> 
>> +
>> +&mmc1 {
>> +       pinctrl-names = "default";
>> +       pinctrl-0 = <&mmc1_pins>;
>> +       vmmc-supply = <&vmmc1>;
>> +       bus-width = <4>;
>> +       cd-gpios = <&twl_gpio 0 GPIO_ACTIVE_LOW>;
>> +       wp-gpios = <&gpio4 30 GPIO_ACTIVE_LOW>; /* GPIO_126 */
> 
> Large number of pandoras have defective write potect pins. Kernel used
> to not support write protect at all, so we noticed it too late. If
> it's possible to omit this it would be better do so, perhaps with a
> comment, or I can send a patch later?

I think in this case you should send a patch later because you best can describe
the problem in the commit message.

> 
>> +};
>> +
>> +&mmc2 {
>> +       pinctrl-names = "default";
>> +       pinctrl-0 = <&mmc2_pins>;
>> +       vmmc-supply = <&vmmc2>;
>> +       bus-width = <4>;
>> +       cd-gpios = <&twl_gpio 1 GPIO_ACTIVE_HIGH>;
>> +       wp-gpios = <&gpio4 31 GPIO_ACTIVE_LOW>; /* GPIO_127 */
> 
> same here
> 
> 
> Gra?vydas

BR,
Nikolaus

^ permalink raw reply	[flat|nested] 13+ messages in thread

end of thread, other threads:[~2015-02-12 20:09 UTC | newest]

Thread overview: 13+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-02-12 13:03 [PATCH 0/4] add openpandora device support Marek Belisko
2015-02-12 13:03 ` [PATCH 1/4] ARM: dts: omap3-pandora: add common device tree Marek Belisko
2015-02-12 16:03   ` Tony Lindgren
2015-02-12 16:29     ` Dr. H. Nikolaus Schaller
2015-02-12 16:52       ` Tony Lindgren
2015-02-12 17:47   ` Grazvydas Ignotas
2015-02-12 20:09     ` Dr. H. Nikolaus Schaller
2015-02-12 13:03 ` [PATCH 2/4] ARM: dts: omap3-pandora: add OMAP3530 600 MHz version Marek Belisko
2015-02-12 16:53   ` Tony Lindgren
2015-02-12 13:03 ` [PATCH 3/4] ARM: dts: omap3-pandora: add DM3730 1 GHz version Marek Belisko
2015-02-12 13:03 ` [PATCH 4/4] ARM: dts: omap3-pandora: include in dts Makefile Marek Belisko
2015-02-12 16:04   ` Tony Lindgren
2015-02-12 14:35 ` [PATCH 0/4] add openpandora device support Grazvydas Ignotas

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).