* [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; 12+ 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] 12+ 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; 12+ 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] 12+ 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; 12+ 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] 12+ 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; 12+ 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] 12+ 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; 12+ 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] 12+ 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; 12+ 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] 12+ 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; 12+ 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] 12+ messages in thread
* [PATCH 2/3] staging: nvec: add device tree support
2011-10-31 19:58 [PATCH v3 0/3] paz00 updates for 3.3 Marc Dietrich
@ 2011-10-31 19:58 ` Marc Dietrich
2011-10-31 20:18 ` Stephen Warren
0 siblings, 1 reply; 12+ messages in thread
From: Marc Dietrich @ 2011-10-31 19:58 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 | 35 ++++++++++++++++++-
2 files changed, 42 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..ffb73c0 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>
@@ -36,6 +38,8 @@
#include <linux/spinlock.h>
#include <linux/workqueue.h>
+#include <asm/byteorder.h>
+
#include <mach/clk.h>
#include <mach/iomap.h>
@@ -719,6 +723,7 @@ static int __devinit tegra_nvec_probe(struct platform_device *pdev)
struct resource *res;
struct resource *iomem;
void __iomem *base;
+ const unsigned int *prop;
nvec = kzalloc(sizeof(struct nvec_chip), GFP_KERNEL);
if (nvec == NULL) {
@@ -727,8 +732,26 @@ 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;
+ }
+ prop = of_get_property(nvec->dev->of_node, "slave-addr", NULL);
+ if (!prop) {
+ dev_err(&pdev->dev, "no i2c address specified");
+ goto failed;
+ }
+ nvec->i2c_addr = be32_to_cpup(prop);
+ } else {
+ dev_err(&pdev->dev, "no platform data\n");
+ goto failed;
+ }
res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
if (!res) {
@@ -893,6 +916,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 +931,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] 12+ messages in thread* [PATCH 2/3] staging: nvec: add device tree support
2011-10-31 19:58 ` [PATCH 2/3] staging: nvec: add device tree support Marc Dietrich
@ 2011-10-31 20:18 ` Stephen Warren
2011-10-31 22:18 ` Marc Dietrich
0 siblings, 1 reply; 12+ messages in thread
From: Stephen Warren @ 2011-10-31 20:18 UTC (permalink / raw)
To: linux-arm-kernel
Marc Dietrich wrote at Monday, October 31, 2011 1:59 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.
...
> diff --git a/drivers/staging/nvec/nvec.c b/drivers/staging/nvec/nvec.c
...
> + 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;
> + }
> + prop = of_get_property(nvec->dev->of_node, "slave-addr", NULL);
> + if (!prop) {
> + dev_err(&pdev->dev, "no i2c address specified");
> + goto failed;
> + }
> + nvec->i2c_addr = be32_to_cpup(prop);
----------==========----------==========----------==========----------==========
Don't you want to use of_property_read_u32() here to simplify the code
slightly? You can also get rid of at least one #include that way.
> + } else {
> + dev_err(&pdev->dev, "no platform data\n");
> + goto failed;
> + }
--
nvpublic
^ permalink raw reply [flat|nested] 12+ messages in thread* [PATCH 2/3] staging: nvec: add device tree support
2011-10-31 20:18 ` Stephen Warren
@ 2011-10-31 22:18 ` Marc Dietrich
0 siblings, 0 replies; 12+ messages in thread
From: Marc Dietrich @ 2011-10-31 22:18 UTC (permalink / raw)
To: linux-arm-kernel
On Monday 31 October 2011 13:18:13 Stephen Warren wrote:
> Marc Dietrich wrote at Monday, October 31, 2011 1:59 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.
>
> ...
>
> > diff --git a/drivers/staging/nvec/nvec.c b/drivers/staging/nvec/nvec.c
>
> ...
>
> > + 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;
> > + }
> >
> > + prop = of_get_property(nvec->dev->of_node, "slave-addr", NULL);
> > + if (!prop) {
> > + dev_err(&pdev->dev, "no i2c address specified");
> > + goto failed;
> > + }
> > + nvec->i2c_addr = be32_to_cpup(prop);
>
> ----------==========----------==========----------==========----------======
> ==== Don't you want to use of_property_read_u32() here to simplify the code
> slightly? You can also get rid of at least one #include that way.
Ok, I somehow didn't found it during my quick search.
> > + } else {
> > + dev_err(&pdev->dev, "no platform data\n");
> > + goto failed;
> > + }
^ permalink raw reply [flat|nested] 12+ messages in thread