* [PATCH v4 0/3] paz00 updates for 3.3
@ 2011-11-01 20:37 Marc Dietrich
2011-11-01 20:37 ` [PATCH 1/3] ARM: tegra: paz00: add support for wakeup gpio key Marc Dietrich
` (2 more replies)
0 siblings, 3 replies; 9+ messages in thread
From: Marc Dietrich @ 2011-11-01 20:37 UTC (permalink / raw)
To: linux-arm-kernel
Hi,
the following three patches are intended for the 3.3 merge window and are based
on linux-next.
The first one adds wakeup support similar to seaboard, but with the difference
that the wakeup gpio is connected to the embedded controller instead of a real
gpio key.
The second patch adds device tree support for the nvec driver. This way we can
make use of it without adding more platform devices to the board files (and it
is also modern to do so).
The final one adds device tree support for paz00. The way the nvec it is
initialized will probably change in the future, but we like to include it for
now as it makes debugging easier.
The patches are against linux-next from Nov 1st.
Thanks
Marc
Changes since v3
- use of_property_read_u32 in nvec
- also disable uart-e in the device tree
Changes since v2
- remove the mem= from the bootargs, this is handled by the memory property
already
- change the root device until the sdhci init order can be changed
- do not init unused serial ports
- add dt documentation for nvec
- remove CONFIG_OF #ifdefs from nvec.c
- exchange the order of patch 2 and 3
Changes since v1
- replace addition of the embedded controller to the board file by a device-tree
based implementation.
Marc Dietrich (3):
ARM: tegra: paz00: add support for wakeup gpio key
staging: nvec: add device tree support
arm/dt: tegra: add dts file for paz00
.../devicetree/bindings/nvec/nvec_nvidia.txt | 9 ++
arch/arm/boot/dts/tegra-paz00.dts | 82 ++++++++++++++++++++
arch/arm/mach-tegra/Makefile | 1 +
arch/arm/mach-tegra/Makefile.boot | 1 +
arch/arm/mach-tegra/board-dt.c | 3 +
arch/arm/mach-tegra/board-paz00.c | 27 +++++++
arch/arm/mach-tegra/board-paz00.h | 3 +
drivers/staging/nvec/nvec.c | 30 +++++++-
8 files changed, 154 insertions(+), 2 deletions(-)
create mode 100644 Documentation/devicetree/bindings/nvec/nvec_nvidia.txt
create mode 100644 arch/arm/boot/dts/tegra-paz00.dts
--
1.7.5.4
^ permalink raw reply [flat|nested] 9+ messages in thread
* [PATCH 1/3] ARM: tegra: paz00: add support for wakeup gpio key
2011-11-01 20:37 [PATCH v4 0/3] paz00 updates for 3.3 Marc Dietrich
@ 2011-11-01 20:37 ` Marc Dietrich
2011-11-01 20:37 ` [PATCH 2/3] staging: nvec: add device tree support Marc Dietrich
2011-11-01 20:37 ` [PATCH 3/3] arm/dt: tegra: add dts file for paz00 Marc Dietrich
2 siblings, 0 replies; 9+ messages in thread
From: Marc Dietrich @ 2011-11-01 20:37 UTC (permalink / raw)
To: linux-arm-kernel
This adds support for a wakeup gpio which is connected to the
embedded controller. This will be used later on for wakeup from suspend.
Acked-by: Stephen Warren <swarren@nvidia.com>
Signed-off-by: Marc Dietrich <marvin24@gmx.de>
---
arch/arm/mach-tegra/board-paz00.c | 27 +++++++++++++++++++++++++++
arch/arm/mach-tegra/board-paz00.h | 3 +++
2 files changed, 30 insertions(+), 0 deletions(-)
diff --git a/arch/arm/mach-tegra/board-paz00.c b/arch/arm/mach-tegra/board-paz00.c
index 55c55ba..799e420 100644
--- a/arch/arm/mach-tegra/board-paz00.c
+++ b/arch/arm/mach-tegra/board-paz00.c
@@ -23,8 +23,10 @@
#include <linux/serial_8250.h>
#include <linux/clk.h>
#include <linux/dma-mapping.h>
+#include <linux/gpio_keys.h>
#include <linux/pda_power.h>
#include <linux/io.h>
+#include <linux/input.h>
#include <linux/i2c.h>
#include <linux/gpio.h>
#include <linux/rfkill-gpio.h>
@@ -114,12 +116,37 @@ static struct platform_device leds_gpio = {
},
};
+static struct gpio_keys_button paz00_gpio_keys_buttons[] = {
+ {
+ .code = KEY_POWER,
+ .gpio = TEGRA_GPIO_POWERKEY,
+ .active_low = 1,
+ .desc = "Power",
+ .type = EV_KEY,
+ .wakeup = 1,
+ },
+};
+
+static struct gpio_keys_platform_data paz00_gpio_keys = {
+ .buttons = paz00_gpio_keys_buttons,
+ .nbuttons = ARRAY_SIZE(paz00_gpio_keys_buttons),
+};
+
+static struct platform_device gpio_keys_device = {
+ .name = "gpio-keys",
+ .id = -1,
+ .dev = {
+ .platform_data = &paz00_gpio_keys,
+ },
+};
+
static struct platform_device *paz00_devices[] __initdata = {
&debug_uart,
&tegra_sdhci_device4,
&tegra_sdhci_device1,
&wifi_rfkill_device,
&leds_gpio,
+ &gpio_keys_device,
};
static void paz00_i2c_init(void)
diff --git a/arch/arm/mach-tegra/board-paz00.h b/arch/arm/mach-tegra/board-paz00.h
index 8aff06e..ffa83f5 100644
--- a/arch/arm/mach-tegra/board-paz00.h
+++ b/arch/arm/mach-tegra/board-paz00.h
@@ -32,6 +32,9 @@
#define TEGRA_WIFI_RST TEGRA_GPIO_PD1
#define TEGRA_WIFI_LED TEGRA_GPIO_PD0
+/* WakeUp */
+#define TEGRA_GPIO_POWERKEY TEGRA_GPIO_PJ7
+
void paz00_pinmux_init(void);
#endif
--
1.7.5.4
^ permalink raw reply related [flat|nested] 9+ messages in thread
* [PATCH 2/3] staging: nvec: add device tree support
2011-11-01 20:37 [PATCH v4 0/3] paz00 updates for 3.3 Marc Dietrich
2011-11-01 20:37 ` [PATCH 1/3] ARM: tegra: paz00: add support for wakeup gpio key Marc Dietrich
@ 2011-11-01 20:37 ` Marc Dietrich
2011-11-01 22:36 ` Stephen Warren
2011-11-01 20:37 ` [PATCH 3/3] arm/dt: tegra: add dts file for paz00 Marc Dietrich
2 siblings, 1 reply; 9+ messages in thread
From: Marc Dietrich @ 2011-11-01 20:37 UTC (permalink / raw)
To: linux-arm-kernel
This adds device tree support to the nvec driver. By using this method
it is no longer necessary to specify platform data through a board
file.
Cc: devel at driverdev.osuosl.org
Cc: Greg KH <gregkh@suse.de>
Cc: Julian Andres Klode <jak@jak-linux.org>
Cc: Grant Likely <grant.likely@secretlab.ca>
Signed-off-by: Marc Dietrich <marvin24@gmx.de>
---
.../devicetree/bindings/nvec/nvec_nvidia.txt | 9 ++++++
drivers/staging/nvec/nvec.c | 30 ++++++++++++++++++-
2 files changed, 37 insertions(+), 2 deletions(-)
create mode 100644 Documentation/devicetree/bindings/nvec/nvec_nvidia.txt
diff --git a/Documentation/devicetree/bindings/nvec/nvec_nvidia.txt b/Documentation/devicetree/bindings/nvec/nvec_nvidia.txt
new file mode 100644
index 0000000..5aeee53
--- /dev/null
+++ b/Documentation/devicetree/bindings/nvec/nvec_nvidia.txt
@@ -0,0 +1,9 @@
+NVIDIA compliant embedded controller
+
+Required properties:
+- compatible : should be "nvidia,nvec".
+- reg : the iomem of the i2c slave controller
+- interrupts : the interrupt line of the i2c slave controller
+- clock-frequency : the frequency of the i2c bus
+- gpios : the gpio used for ec request
+- slave-addr: the i2c address of the slave controller
diff --git a/drivers/staging/nvec/nvec.c b/drivers/staging/nvec/nvec.c
index e06b867..fafdfa2 100644
--- a/drivers/staging/nvec/nvec.c
+++ b/drivers/staging/nvec/nvec.c
@@ -27,6 +27,8 @@
#include <linux/interrupt.h>
#include <linux/io.h>
#include <linux/irq.h>
+#include <linux/of.h>
+#include <linux/of_gpio.h>
#include <linux/list.h>
#include <linux/mfd/core.h>
#include <linux/mutex.h>
@@ -727,8 +729,24 @@ static int __devinit tegra_nvec_probe(struct platform_device *pdev)
}
platform_set_drvdata(pdev, nvec);
nvec->dev = &pdev->dev;
- nvec->gpio = pdata->gpio;
- nvec->i2c_addr = pdata->i2c_addr;
+
+ if (pdata) {
+ nvec->gpio = pdata->gpio;
+ nvec->i2c_addr = pdata->i2c_addr;
+ } else if (nvec->dev->of_node) {
+ nvec->gpio = of_get_named_gpio(nvec->dev->of_node, "request-gpios", 0);
+ if (nvec->gpio < 0) {
+ dev_err(&pdev->dev, "no gpio specified");
+ goto failed;
+ }
+ if (of_property_read_u32(nvec->dev->of_node, "slave-addr", &nvec->i2c_addr)) {
+ dev_err(&pdev->dev, "no i2c address specified");
+ goto failed;
+ }
+ } else {
+ dev_err(&pdev->dev, "no platform data\n");
+ goto failed;
+ }
res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
if (!res) {
@@ -893,6 +911,13 @@ static int tegra_nvec_resume(struct platform_device *pdev)
#define tegra_nvec_resume NULL
#endif
+/* Match table for of_platform binding */
+static const struct of_device_id nvidia_nvec_of_match[] __devinitconst = {
+ { .compatible = "nvidia,nvec", },
+ {},
+};
+MODULE_DEVICE_TABLE(of, nvidia_nvec_of_match);
+
static struct platform_driver nvec_device_driver = {
.probe = tegra_nvec_probe,
.remove = __devexit_p(tegra_nvec_remove),
@@ -901,6 +926,7 @@ static struct platform_driver nvec_device_driver = {
.driver = {
.name = "nvec",
.owner = THIS_MODULE,
+ .of_match_table = nvidia_nvec_of_match,
}
};
--
1.7.5.4
^ permalink raw reply related [flat|nested] 9+ messages in thread
* [PATCH 3/3] arm/dt: tegra: add dts file for paz00
2011-11-01 20:37 [PATCH v4 0/3] paz00 updates for 3.3 Marc Dietrich
2011-11-01 20:37 ` [PATCH 1/3] ARM: tegra: paz00: add support for wakeup gpio key Marc Dietrich
2011-11-01 20:37 ` [PATCH 2/3] staging: nvec: add device tree support Marc Dietrich
@ 2011-11-01 20:37 ` Marc Dietrich
2011-11-01 22:37 ` Stephen Warren
2 siblings, 1 reply; 9+ messages in thread
From: Marc Dietrich @ 2011-11-01 20:37 UTC (permalink / raw)
To: linux-arm-kernel
This adds a dts file for paz00. As a side effect, this also enables
the embedded controller which controls the keyboard, touchpad, power,
leds, and some other functions.
Cc: Grant Likely <grant.likely@secretlab.ca>
Signed-off-by: Marc Dietrich <marvin24@gmx.de>
---
arch/arm/boot/dts/tegra-paz00.dts | 82 +++++++++++++++++++++++++++++++++++++
arch/arm/mach-tegra/Makefile | 1 +
arch/arm/mach-tegra/Makefile.boot | 1 +
arch/arm/mach-tegra/board-dt.c | 3 +
4 files changed, 87 insertions(+), 0 deletions(-)
create mode 100644 arch/arm/boot/dts/tegra-paz00.dts
diff --git a/arch/arm/boot/dts/tegra-paz00.dts b/arch/arm/boot/dts/tegra-paz00.dts
new file mode 100644
index 0000000..15a949f
--- /dev/null
+++ b/arch/arm/boot/dts/tegra-paz00.dts
@@ -0,0 +1,82 @@
+/dts-v1/;
+
+/memreserve/ 0x1c000000 0x04000000;
+/include/ "tegra20.dtsi"
+
+/ {
+ model = "Toshiba AC100 / Dynabook AZ";
+ compatible = "compal,paz00", "nvidia,tegra20";
+
+ chosen {
+ bootargs = "console=ttyS0,115200n8 root=/dev/mmcblk0p1";
+ };
+
+ memory at 0 {
+ reg = <0x00000000 0x20000000>;
+ };
+
+ i2c at 7000c000 {
+ clock-frequency = <400000>;
+ };
+
+ i2c at 7000c400 {
+ clock-frequency = <400000>;
+ };
+
+ i2c at 7000c500 {
+ status = "disable";
+ };
+
+ nvec at 7000c500 {
+ #address-cells = <1>;
+ #size-cells = <0>;
+ compatible = "nvidia,nvec";
+ reg = <0x7000C500 0x100>;
+ interrupts = <124>;
+ clock-frequency = <80000>;
+ request-gpios = <&gpio 170 0>;
+ slave-addr = <138>;
+ };
+
+ i2c at 7000d000 {
+ clock-frequency = <400000>;
+ };
+
+ serial at 70006000 {
+ clock-frequency = <216000000>;
+ };
+
+ serial at 70006040 {
+ status = "disable";
+ };
+
+ serial at 70006200 {
+ status = "disable";
+ };
+
+ serial at 70006300 {
+ clock-frequency = <216000000>;
+ };
+
+ serial at 70006400 {
+ status = "disable";
+ };
+
+ sdhci at c8000000 {
+ cd-gpios = <&gpio 173 0>; /* gpio PV5 */
+ wp-gpios = <&gpio 57 0>; /* gpio PH1 */
+ power-gpios = <&gpio 155 0>; /* gpio PT3 */
+ };
+
+ sdhci at c8000200 {
+ status = "disable";
+ };
+
+ sdhci at c8000400 {
+ status = "disable";
+ };
+
+ sdhci at c8000600 {
+ support-8bit;
+ };
+};
diff --git a/arch/arm/mach-tegra/Makefile b/arch/arm/mach-tegra/Makefile
index 91a07e1..b04ebfe6 100644
--- a/arch/arm/mach-tegra/Makefile
+++ b/arch/arm/mach-tegra/Makefile
@@ -31,6 +31,7 @@ obj-${CONFIG_MACH_SEABOARD} += board-seaboard-pinmux.o
obj-${CONFIG_MACH_TEGRA_DT} += board-dt.o
obj-${CONFIG_MACH_TEGRA_DT} += board-harmony-pinmux.o
+obj-${CONFIG_MACH_TEGRA_DT} += board-paz00-pinmux.o
obj-${CONFIG_MACH_TEGRA_DT} += board-seaboard-pinmux.o
obj-${CONFIG_MACH_TRIMSLICE} += board-trimslice.o
diff --git a/arch/arm/mach-tegra/Makefile.boot b/arch/arm/mach-tegra/Makefile.boot
index bd12c9f..152f9fb 100644
--- a/arch/arm/mach-tegra/Makefile.boot
+++ b/arch/arm/mach-tegra/Makefile.boot
@@ -3,5 +3,6 @@ params_phys-$(CONFIG_ARCH_TEGRA_2x_SOC) := 0x00000100
initrd_phys-$(CONFIG_ARCH_TEGRA_2x_SOC) := 0x00800000
dtb-$(CONFIG_MACH_HARMONY) += tegra-harmony.dtb
+dtb-$(CONFIG_MACH_PAZ00) += tegra-paz00.dtb
dtb-$(CONFIG_MACH_SEABOARD) += tegra-seaboard.dtb
dtb-$(CONFIG_MACH_VENTANA) += tegra-ventana.dtb
diff --git a/arch/arm/mach-tegra/board-dt.c b/arch/arm/mach-tegra/board-dt.c
index d368f8d..379660e 100644
--- a/arch/arm/mach-tegra/board-dt.c
+++ b/arch/arm/mach-tegra/board-dt.c
@@ -46,6 +46,7 @@
#include "devices.h"
void harmony_pinmux_init(void);
+void paz00_pinmux_init(void);
void seaboard_pinmux_init(void);
void ventana_pinmux_init(void);
@@ -85,6 +86,7 @@ static struct {
void (*init)(void);
} pinmux_configs[] = {
{ "nvidia,harmony", harmony_pinmux_init },
+ { "compal,paz00", paz00_pinmux_init },
{ "nvidia,seaboard", seaboard_pinmux_init },
{ "nvidia,ventana", ventana_pinmux_init },
};
@@ -120,6 +122,7 @@ static void __init tegra_dt_init(void)
static const char * tegra_dt_board_compat[] = {
"nvidia,harmony",
+ "compal,paz00",
"nvidia,seaboard",
"nvidia,ventana",
NULL
--
1.7.5.4
^ permalink raw reply related [flat|nested] 9+ messages in thread
* [PATCH 2/3] staging: nvec: add device tree support
2011-11-01 20:37 ` [PATCH 2/3] staging: nvec: add device tree support Marc Dietrich
@ 2011-11-01 22:36 ` Stephen Warren
2011-11-09 19:11 ` Olof Johansson
0 siblings, 1 reply; 9+ messages in thread
From: Stephen Warren @ 2011-11-01 22:36 UTC (permalink / raw)
To: linux-arm-kernel
Marc Dietrich wrote at Tuesday, November 01, 2011 2:37 PM:
> This adds device tree support to the nvec driver. By using this method
> it is no longer necessary to specify platform data through a board
> file.
Acked-by: Stephen Warren <swarren@nvidia.com>
--
nvpublic
^ permalink raw reply [flat|nested] 9+ messages in thread
* [PATCH 3/3] arm/dt: tegra: add dts file for paz00
2011-11-01 20:37 ` [PATCH 3/3] arm/dt: tegra: add dts file for paz00 Marc Dietrich
@ 2011-11-01 22:37 ` Stephen Warren
0 siblings, 0 replies; 9+ messages in thread
From: Stephen Warren @ 2011-11-01 22:37 UTC (permalink / raw)
To: linux-arm-kernel
Marc Dietrich wrote at Tuesday, November 01, 2011 2:37 PM:
> This adds a dts file for paz00. As a side effect, this also enables
> the embedded controller which controls the keyboard, touchpad, power,
> leds, and some other functions.
Acked-by: Stephen Warren <swarren@nvidia.com>
--
nvpublic
^ permalink raw reply [flat|nested] 9+ messages in thread
* [PATCH 2/3] staging: nvec: add device tree support
2011-11-01 22:36 ` Stephen Warren
@ 2011-11-09 19:11 ` Olof Johansson
2011-11-09 19:57 ` Greg KH
0 siblings, 1 reply; 9+ messages in thread
From: Olof Johansson @ 2011-11-09 19:11 UTC (permalink / raw)
To: linux-arm-kernel
On Tue, Nov 01, 2011 at 03:36:31PM -0700, Stephen Warren wrote:
> Marc Dietrich wrote at Tuesday, November 01, 2011 2:37 PM:
> > This adds device tree support to the nvec driver. By using this method
> > it is no longer necessary to specify platform data through a board
> > file.
>
> Acked-by: Stephen Warren <swarren@nvidia.com>
Acked-by: Olof Johansson <olof@lixom.net>
Greg, this one can go through the staging tree. We'll pick up the other pieces
of the series through the tegra soc tree.
-Olof
^ permalink raw reply [flat|nested] 9+ messages in thread
* [PATCH 2/3] staging: nvec: add device tree support
2011-11-09 19:11 ` Olof Johansson
@ 2011-11-09 19:57 ` Greg KH
2011-11-21 13:42 ` Marc Dietrich
0 siblings, 1 reply; 9+ messages in thread
From: Greg KH @ 2011-11-09 19:57 UTC (permalink / raw)
To: linux-arm-kernel
On Wed, Nov 09, 2011 at 11:11:44AM -0800, Olof Johansson wrote:
> On Tue, Nov 01, 2011 at 03:36:31PM -0700, Stephen Warren wrote:
> > Marc Dietrich wrote at Tuesday, November 01, 2011 2:37 PM:
> > > This adds device tree support to the nvec driver. By using this method
> > > it is no longer necessary to specify platform data through a board
> > > file.
> >
> > Acked-by: Stephen Warren <swarren@nvidia.com>
>
> Acked-by: Olof Johansson <olof@lixom.net>
>
> Greg, this one can go through the staging tree. We'll pick up the other pieces
> of the series through the tegra soc tree.
Ok, will do.
greg k-h
^ permalink raw reply [flat|nested] 9+ messages in thread
* [PATCH 2/3] staging: nvec: add device tree support
2011-11-09 19:57 ` Greg KH
@ 2011-11-21 13:42 ` Marc Dietrich
0 siblings, 0 replies; 9+ messages in thread
From: Marc Dietrich @ 2011-11-21 13:42 UTC (permalink / raw)
To: linux-arm-kernel
Am Mittwoch, 9. November 2011, 11:57:55 schrieb Greg KH:
> On Wed, Nov 09, 2011 at 11:11:44AM -0800, Olof Johansson wrote:
> > On Tue, Nov 01, 2011 at 03:36:31PM -0700, Stephen Warren wrote:
> > > Marc Dietrich wrote at Tuesday, November 01, 2011 2:37 PM:
> > > > This adds device tree support to the nvec driver. By using this method
> > > > it is no longer necessary to specify platform data through a board
> > > > file.
> > >
> > > Acked-by: Stephen Warren <swarren@nvidia.com>
> >
> > Acked-by: Olof Johansson <olof@lixom.net>
> >
> > Greg, this one can go through the staging tree. We'll pick up the other pieces
> > of the series through the tegra soc tree.
>
> Ok, will do.
>
> greg k-h
Ping.
Greg, it seems that this patch is still not in staging. Please apply
http://patchwork.ozlabs.org/patch/123140/
Thanks
Marc
^ permalink raw reply [flat|nested] 9+ messages in thread
end of thread, other threads:[~2011-11-21 13:42 UTC | newest]
Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2011-11-01 20:37 [PATCH v4 0/3] paz00 updates for 3.3 Marc Dietrich
2011-11-01 20:37 ` [PATCH 1/3] ARM: tegra: paz00: add support for wakeup gpio key Marc Dietrich
2011-11-01 20:37 ` [PATCH 2/3] staging: nvec: add device tree support Marc Dietrich
2011-11-01 22:36 ` Stephen Warren
2011-11-09 19:11 ` Olof Johansson
2011-11-09 19:57 ` Greg KH
2011-11-21 13:42 ` Marc Dietrich
2011-11-01 20:37 ` [PATCH 3/3] arm/dt: tegra: add dts file for paz00 Marc Dietrich
2011-11-01 22:37 ` Stephen Warren
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).