* [PATCH v2 0/4] OMAP serial device tree support
@ 2011-11-22 13:44 Rajendra Nayak
[not found] ` <1321969456-24266-1-git-send-email-rnayak-l0cyMroinI0@public.gmane.org>
` (2 more replies)
0 siblings, 3 replies; 12+ messages in thread
From: Rajendra Nayak @ 2011-11-22 13:44 UTC (permalink / raw)
To: linux-serial, linux-omap, devicetree-discuss
Cc: tony, khilman, govindraj.raja, b-cousson, linux-arm-kernel,
linaro-dev, patches, robherring2, Rajendra Nayak
v2 is based on the latest omap-serial runtime patches, which
can be found here[1]
The series passes minimal data that allows serial console
boot, with UART's initialised from device tree.
However some of low power support for UART and remote
wakeup needs more work.
Boot tested on OMAP4 panda and OMAP4 sdp boards.
Patches can be found here..
git://gitorious.org/omap-pm/linux.git for-dt/serial
Changes in v2:
-1- Got rid of binding to define which uart is console
-2- Added checks to default clock speed to 48Mhz
-3- Added compatible for each OMAP family
-4- Used of_alias_get_id to populate port.line
regards,
Rajendra
[1] git://gitorious.org/runtime_3-0/runtime_3-0.git 3.2-rc2_uart_runtime
Rajendra Nayak (4):
omap-serial: Get rid of all pdev->id usage
omap-serial: Use default clock speed (48Mhz) if not specified
omap-serial: Add minimal device tree support
ARM: omap: pass minimal SoC/board data for UART from dt
.../devicetree/bindings/serial/omap_serial.txt | 10 +++
arch/arm/boot/dts/omap3.dtsi | 31 ++++++++
arch/arm/boot/dts/omap4.dtsi | 28 +++++++
arch/arm/mach-omap2/board-generic.c | 1 -
drivers/tty/serial/omap-serial.c | 80 +++++++++++++++----
5 files changed, 132 insertions(+), 18 deletions(-)
create mode 100644 Documentation/devicetree/bindings/serial/omap_serial.txt
^ permalink raw reply [flat|nested] 12+ messages in thread
* [PATCH v2 1/4] omap-serial: Get rid of all pdev->id usage
[not found] ` <1321969456-24266-1-git-send-email-rnayak-l0cyMroinI0@public.gmane.org>
@ 2011-11-22 13:44 ` Rajendra Nayak
2011-11-22 13:44 ` [PATCH v2 3/4] omap-serial: Add minimal device tree support Rajendra Nayak
2011-11-22 13:44 ` [PATCH v2 4/4] ARM: omap: pass minimal SoC/board data for UART from dt Rajendra Nayak
2 siblings, 0 replies; 12+ messages in thread
From: Rajendra Nayak @ 2011-11-22 13:44 UTC (permalink / raw)
To: linux-serial-u79uwXL29TY76Z2rM5mHXA,
linux-omap-u79uwXL29TY76Z2rM5mHXA,
devicetree-discuss-uLR06cmDAlY/bJ5BZ2RsiQ
Cc: khilman-l0cyMroinI0, linaro-dev-cunTk1MwBs8s++Sfvej+rw,
patches-QSEj5FYQhm4dnm+yROfE0A, tony-4v6yS6AI5VpBDgjK7y7TUQ,
Rajendra Nayak, govindraj.raja-l0cyMroinI0,
linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r
With Device tree, pdev->id would no longer be Valid.
Hence get rid of all instances of its usage in the
driver. Device tree support for the driver is added
in subsequent patches.
Signed-off-by: Rajendra Nayak <rnayak-l0cyMroinI0@public.gmane.org>
---
drivers/tty/serial/omap-serial.c | 30 +++++++++++++++---------------
1 files changed, 15 insertions(+), 15 deletions(-)
diff --git a/drivers/tty/serial/omap-serial.c b/drivers/tty/serial/omap-serial.c
index f3ff0ca..a02cc9f 100644
--- a/drivers/tty/serial/omap-serial.c
+++ b/drivers/tty/serial/omap-serial.c
@@ -115,7 +115,7 @@ static void serial_omap_enable_ms(struct uart_port *port)
{
struct uart_omap_port *up = (struct uart_omap_port *)port;
- dev_dbg(up->port.dev, "serial_omap_enable_ms+%d\n", up->pdev->id);
+ dev_dbg(up->port.dev, "serial_omap_enable_ms+%d\n", up->port.line);
pm_runtime_get_sync(&up->pdev->dev);
up->ier |= UART_IER_MSI;
@@ -418,7 +418,7 @@ static unsigned int serial_omap_tx_empty(struct uart_port *port)
unsigned int ret = 0;
pm_runtime_get_sync(&up->pdev->dev);
- dev_dbg(up->port.dev, "serial_omap_tx_empty+%d\n", up->pdev->id);
+ dev_dbg(up->port.dev, "serial_omap_tx_empty+%d\n", up->port.line);
spin_lock_irqsave(&up->port.lock, flags);
ret = serial_in(up, UART_LSR) & UART_LSR_TEMT ? TIOCSER_TEMT : 0;
spin_unlock_irqrestore(&up->port.lock, flags);
@@ -436,7 +436,7 @@ static unsigned int serial_omap_get_mctrl(struct uart_port *port)
status = check_modem_status(up);
pm_runtime_put(&up->pdev->dev);
- dev_dbg(up->port.dev, "serial_omap_get_mctrl+%d\n", up->pdev->id);
+ dev_dbg(up->port.dev, "serial_omap_get_mctrl+%d\n", up->port.line);
if (status & UART_MSR_DCD)
ret |= TIOCM_CAR;
@@ -454,7 +454,7 @@ static void serial_omap_set_mctrl(struct uart_port *port, unsigned int mctrl)
struct uart_omap_port *up = (struct uart_omap_port *)port;
unsigned char mcr = 0;
- dev_dbg(up->port.dev, "serial_omap_set_mctrl+%d\n", up->pdev->id);
+ dev_dbg(up->port.dev, "serial_omap_set_mctrl+%d\n", up->port.line);
if (mctrl & TIOCM_RTS)
mcr |= UART_MCR_RTS;
if (mctrl & TIOCM_DTR)
@@ -478,7 +478,7 @@ static void serial_omap_break_ctl(struct uart_port *port, int break_state)
struct uart_omap_port *up = (struct uart_omap_port *)port;
unsigned long flags = 0;
- dev_dbg(up->port.dev, "serial_omap_break_ctl+%d\n", up->pdev->id);
+ dev_dbg(up->port.dev, "serial_omap_break_ctl+%d\n", up->port.line);
pm_runtime_get_sync(&up->pdev->dev);
spin_lock_irqsave(&up->port.lock, flags);
if (break_state == -1)
@@ -504,7 +504,7 @@ static int serial_omap_startup(struct uart_port *port)
if (retval)
return retval;
- dev_dbg(up->port.dev, "serial_omap_startup+%d\n", up->pdev->id);
+ dev_dbg(up->port.dev, "serial_omap_startup+%d\n", up->port.line);
pm_runtime_get_sync(&up->pdev->dev);
/*
@@ -545,7 +545,7 @@ static int serial_omap_startup(struct uart_port *port)
0);
init_timer(&(up->uart_dma.rx_timer));
up->uart_dma.rx_timer.function = serial_omap_rxdma_poll;
- up->uart_dma.rx_timer.data = up->pdev->id;
+ up->uart_dma.rx_timer.data = up->port.line;
/* Currently the buffer size is 4KB. Can increase it */
up->uart_dma.rx_buf = dma_alloc_coherent(NULL,
up->uart_dma.rx_buf_size,
@@ -573,7 +573,7 @@ static void serial_omap_shutdown(struct uart_port *port)
struct uart_omap_port *up = (struct uart_omap_port *)port;
unsigned long flags = 0;
- dev_dbg(up->port.dev, "serial_omap_shutdown+%d\n", up->pdev->id);
+ dev_dbg(up->port.dev, "serial_omap_shutdown+%d\n", up->port.line);
pm_runtime_get_sync(&up->pdev->dev);
/*
@@ -883,7 +883,7 @@ serial_omap_set_termios(struct uart_port *port, struct ktermios *termios,
spin_unlock_irqrestore(&up->port.lock, flags);
pm_runtime_put(&up->pdev->dev);
- dev_dbg(up->port.dev, "serial_omap_set_termios+%d\n", up->pdev->id);
+ dev_dbg(up->port.dev, "serial_omap_set_termios+%d\n", up->port.line);
}
static void
@@ -893,7 +893,7 @@ serial_omap_pm(struct uart_port *port, unsigned int state,
struct uart_omap_port *up = (struct uart_omap_port *)port;
unsigned char efr;
- dev_dbg(up->port.dev, "serial_omap_pm+%d\n", up->pdev->id);
+ dev_dbg(up->port.dev, "serial_omap_pm+%d\n", up->port.line);
pm_runtime_get_sync(&up->pdev->dev);
serial_out(up, UART_LCR, UART_LCR_CONF_MODE_B);
@@ -932,7 +932,7 @@ static void serial_omap_config_port(struct uart_port *port, int flags)
struct uart_omap_port *up = (struct uart_omap_port *)port;
dev_dbg(up->port.dev, "serial_omap_config_port+%d\n",
- up->pdev->id);
+ up->port.line);
up->port.type = PORT_OMAP;
}
@@ -949,7 +949,7 @@ serial_omap_type(struct uart_port *port)
{
struct uart_omap_port *up = (struct uart_omap_port *)port;
- dev_dbg(up->port.dev, "serial_omap_type+%d\n", up->pdev->id);
+ dev_dbg(up->port.dev, "serial_omap_type+%d\n", up->port.line);
return up->name;
}
@@ -1110,7 +1110,7 @@ static struct console serial_omap_console = {
static void serial_omap_add_console_port(struct uart_omap_port *up)
{
- serial_omap_console_ports[up->pdev->id] = up;
+ serial_omap_console_ports[up->port.line] = up;
}
#define OMAP_CONSOLE (&serial_omap_console)
@@ -1364,7 +1364,6 @@ static int serial_omap_probe(struct platform_device *pdev)
ret = -ENOMEM;
goto do_release_region;
}
- sprintf(up->name, "OMAP UART%d", pdev->id);
up->pdev = pdev;
up->port.dev = &pdev->dev;
up->port.type = PORT_OMAP;
@@ -1375,6 +1374,7 @@ static int serial_omap_probe(struct platform_device *pdev)
up->port.fifosize = 64;
up->port.ops = &serial_omap_pops;
up->port.line = pdev->id;
+ sprintf(up->name, "OMAP UART%d", up->port.line);
up->port.mapbase = mem->start;
up->port.membase = ioremap(mem->start, resource_size(mem));
@@ -1417,7 +1417,7 @@ static int serial_omap_probe(struct platform_device *pdev)
pm_runtime_enable(&pdev->dev);
pm_runtime_get_sync(&pdev->dev);
- ui[pdev->id] = up;
+ ui[up->port.line] = up;
serial_omap_add_console_port(up);
ret = uart_add_one_port(&serial_omap_reg, &up->port);
--
1.7.1
^ permalink raw reply related [flat|nested] 12+ messages in thread
* [PATCH v2 2/4] omap-serial: Use default clock speed (48Mhz) if not specified
2011-11-22 13:44 [PATCH v2 0/4] OMAP serial device tree support Rajendra Nayak
[not found] ` <1321969456-24266-1-git-send-email-rnayak-l0cyMroinI0@public.gmane.org>
@ 2011-11-22 13:44 ` Rajendra Nayak
2011-11-27 3:36 ` [PATCH v2 0/4] OMAP serial device tree support Greg KH
2 siblings, 0 replies; 12+ messages in thread
From: Rajendra Nayak @ 2011-11-22 13:44 UTC (permalink / raw)
To: linux-serial, linux-omap, devicetree-discuss
Cc: tony, khilman, govindraj.raja, b-cousson, linux-arm-kernel,
linaro-dev, patches, robherring2, Rajendra Nayak
Use a default clock speed of 48Mhz, instead of ending up with 0,
if platforms fail to specify a valid clock speed.
Signed-off-by: Rajendra Nayak <rnayak@ti.com>
---
drivers/tty/serial/omap-serial.c | 7 +++++++
1 files changed, 7 insertions(+), 0 deletions(-)
diff --git a/drivers/tty/serial/omap-serial.c b/drivers/tty/serial/omap-serial.c
index a02cc9f..f14b9c5 100644
--- a/drivers/tty/serial/omap-serial.c
+++ b/drivers/tty/serial/omap-serial.c
@@ -43,6 +43,8 @@
#include <plat/dmtimer.h>
#include <plat/omap-serial.h>
+#define DEFAULT_CLK_SPEED 48000000 /* 48Mhz*/
+
static struct uart_omap_port *ui[OMAP_MAX_HSUART_PORTS];
/* Forward declaration of functions */
@@ -1386,6 +1388,11 @@ static int serial_omap_probe(struct platform_device *pdev)
up->port.flags = omap_up_info->flags;
up->port.uartclk = omap_up_info->uartclk;
+ if (!up->port.uartclk) {
+ up->port.uartclk = DEFAULT_CLK_SPEED;
+ dev_warn(&pdev->dev, "No clock speed specified: using default:"
+ "%d\n", DEFAULT_CLK_SPEED);
+ }
up->uart_dma.uart_base = mem->start;
up->errata = omap_up_info->errata;
--
1.7.1
^ permalink raw reply related [flat|nested] 12+ messages in thread
* [PATCH v2 3/4] omap-serial: Add minimal device tree support
[not found] ` <1321969456-24266-1-git-send-email-rnayak-l0cyMroinI0@public.gmane.org>
2011-11-22 13:44 ` [PATCH v2 1/4] omap-serial: Get rid of all pdev->id usage Rajendra Nayak
@ 2011-11-22 13:44 ` Rajendra Nayak
2011-11-28 13:39 ` Rob Herring
2011-11-22 13:44 ` [PATCH v2 4/4] ARM: omap: pass minimal SoC/board data for UART from dt Rajendra Nayak
2 siblings, 1 reply; 12+ messages in thread
From: Rajendra Nayak @ 2011-11-22 13:44 UTC (permalink / raw)
To: linux-serial-u79uwXL29TY76Z2rM5mHXA,
linux-omap-u79uwXL29TY76Z2rM5mHXA,
devicetree-discuss-uLR06cmDAlY/bJ5BZ2RsiQ
Cc: khilman-l0cyMroinI0, linaro-dev-cunTk1MwBs8s++Sfvej+rw,
patches-QSEj5FYQhm4dnm+yROfE0A, tony-4v6yS6AI5VpBDgjK7y7TUQ,
Rajendra Nayak, govindraj.raja-l0cyMroinI0,
linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r
Adapt the driver to device tree and pass minimal platform
data from device tree needed for console boot.
No power management features will be suppported for now
since it requires more tweaks around OCP settings
to toggle forceidle/noidle/smaridle bits and handling
remote wakeup and dynamic muxing.
Signed-off-by: Rajendra Nayak <rnayak-l0cyMroinI0@public.gmane.org>
---
.../devicetree/bindings/serial/omap_serial.txt | 10 ++++
drivers/tty/serial/omap-serial.c | 45 ++++++++++++++++++-
2 files changed, 52 insertions(+), 3 deletions(-)
create mode 100644 Documentation/devicetree/bindings/serial/omap_serial.txt
diff --git a/Documentation/devicetree/bindings/serial/omap_serial.txt b/Documentation/devicetree/bindings/serial/omap_serial.txt
new file mode 100644
index 0000000..342eedd
--- /dev/null
+++ b/Documentation/devicetree/bindings/serial/omap_serial.txt
@@ -0,0 +1,10 @@
+OMAP UART controller
+
+Required properties:
+- compatible : should be "ti,omap2-uart" for OMAP2 controllers
+- compatible : should be "ti,omap3-uart" for OMAP3 controllers
+- compatible : should be "ti,omap4-uart" for OMAP4 controllers
+- ti,hwmods : Must be "uart<n>", n being the instance number (1-based)
+
+Optional properties:
+- clock-frequency : frequency of the clock input to the UART
diff --git a/drivers/tty/serial/omap-serial.c b/drivers/tty/serial/omap-serial.c
index f14b9c5..5aa524e 100644
--- a/drivers/tty/serial/omap-serial.c
+++ b/drivers/tty/serial/omap-serial.c
@@ -38,6 +38,7 @@
#include <linux/serial_core.h>
#include <linux/irq.h>
#include <linux/pm_runtime.h>
+#include <linux/of.h>
#include <plat/dma.h>
#include <plat/dmtimer.h>
@@ -1324,6 +1325,19 @@ static void uart_tx_dma_callback(int lch, u16 ch_status, void *data)
return;
}
+static struct omap_uart_port_info *of_get_uart_port_info(struct device *dev)
+{
+ struct omap_uart_port_info *omap_up_info;
+
+ omap_up_info = devm_kzalloc(dev, sizeof(*omap_up_info), GFP_KERNEL);
+ if (!omap_up_info)
+ return NULL; /* out of memory */
+
+ of_property_read_u32(dev->of_node, "clock-frequency",
+ &omap_up_info->uartclk);
+ return omap_up_info;
+}
+
static int serial_omap_probe(struct platform_device *pdev)
{
struct uart_omap_port *up;
@@ -1331,6 +1345,9 @@ static int serial_omap_probe(struct platform_device *pdev)
struct omap_uart_port_info *omap_up_info = pdev->dev.platform_data;
int ret = -ENOSPC;
+ if (pdev->dev.of_node)
+ omap_up_info = of_get_uart_port_info(&pdev->dev);
+
mem = platform_get_resource(pdev, IORESOURCE_MEM, 0);
if (!mem) {
dev_err(&pdev->dev, "no mem resource?\n");
@@ -1375,9 +1392,20 @@ static int serial_omap_probe(struct platform_device *pdev)
up->port.regshift = 2;
up->port.fifosize = 64;
up->port.ops = &serial_omap_pops;
- up->port.line = pdev->id;
- sprintf(up->name, "OMAP UART%d", up->port.line);
+ if (pdev->dev.of_node)
+ up->port.line = of_alias_get_id(pdev->dev.of_node, "serial");
+ else
+ up->port.line = pdev->id;
+
+ if (up->port.line < 0) {
+ dev_err(&pdev->dev, "failed to get alias/pdev id, errno %d\n",
+ up->port.line);
+ ret = -ENODEV;
+ goto err;
+ }
+
+ sprintf(up->name, "OMAP UART%d", up->port.line);
up->port.mapbase = mem->start;
up->port.membase = ioremap(mem->start, resource_size(mem));
if (!up->port.membase) {
@@ -1530,7 +1558,7 @@ static int serial_omap_runtime_suspend(struct device *dev)
if (!up)
return -EINVAL;
- if (!pdata->enable_wakeup)
+ if (!pdata || !pdata->enable_wakeup)
return 0;
if (pdata->get_context_loss_count)
@@ -1591,12 +1619,23 @@ static const struct dev_pm_ops serial_omap_dev_pm_ops = {
serial_omap_runtime_resume, NULL)
};
+#if defined(CONFIG_OF)
+static const struct of_device_id omap_serial_of_match[] = {
+ { .compatible = "ti,omap2-uart" },
+ { .compatible = "ti,omap3-uart" },
+ { .compatible = "ti,omap4-uart" },
+ {},
+};
+MODULE_DEVICE_TABLE(of, omap_serial_of_match);
+#endif
+
static struct platform_driver serial_omap_driver = {
.probe = serial_omap_probe,
.remove = serial_omap_remove,
.driver = {
.name = DRIVER_NAME,
.pm = &serial_omap_dev_pm_ops,
+ .of_match_table = of_match_ptr(omap_serial_of_match),
},
};
--
1.7.1
^ permalink raw reply related [flat|nested] 12+ messages in thread
* [PATCH v2 4/4] ARM: omap: pass minimal SoC/board data for UART from dt
[not found] ` <1321969456-24266-1-git-send-email-rnayak-l0cyMroinI0@public.gmane.org>
2011-11-22 13:44 ` [PATCH v2 1/4] omap-serial: Get rid of all pdev->id usage Rajendra Nayak
2011-11-22 13:44 ` [PATCH v2 3/4] omap-serial: Add minimal device tree support Rajendra Nayak
@ 2011-11-22 13:44 ` Rajendra Nayak
2011-11-28 13:40 ` Rob Herring
2 siblings, 1 reply; 12+ messages in thread
From: Rajendra Nayak @ 2011-11-22 13:44 UTC (permalink / raw)
To: linux-serial-u79uwXL29TY76Z2rM5mHXA,
linux-omap-u79uwXL29TY76Z2rM5mHXA,
devicetree-discuss-uLR06cmDAlY/bJ5BZ2RsiQ
Cc: khilman-l0cyMroinI0, linaro-dev-cunTk1MwBs8s++Sfvej+rw,
patches-QSEj5FYQhm4dnm+yROfE0A, tony-4v6yS6AI5VpBDgjK7y7TUQ,
Rajendra Nayak, govindraj.raja-l0cyMroinI0,
linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r
Pass minimal data needed for console boot, from dt, for
OMAP4 panda/sdp and OMAP3 beagle boards, and get rid of the
static initialization from generic board file.
Signed-off-by: Rajendra Nayak <rnayak-l0cyMroinI0@public.gmane.org>
---
arch/arm/boot/dts/omap3.dtsi | 31 +++++++++++++++++++++++++++++++
arch/arm/boot/dts/omap4.dtsi | 28 ++++++++++++++++++++++++++++
arch/arm/mach-omap2/board-generic.c | 1 -
3 files changed, 59 insertions(+), 1 deletions(-)
diff --git a/arch/arm/boot/dts/omap3.dtsi b/arch/arm/boot/dts/omap3.dtsi
index d202bb5..216c331 100644
--- a/arch/arm/boot/dts/omap3.dtsi
+++ b/arch/arm/boot/dts/omap3.dtsi
@@ -13,6 +13,13 @@
/ {
compatible = "ti,omap3430", "ti,omap3";
+ aliases {
+ serial0 = &uart1;
+ serial1 = &uart2;
+ serial2 = &uart3;
+ serial3 = &uart4;
+ };
+
cpus {
cpu@0 {
compatible = "arm,cortex-a8";
@@ -59,5 +66,29 @@
interrupt-controller;
#interrupt-cells = <1>;
};
+
+ uart1: serial@0x4806a000 {
+ compatible = "ti,omap3-uart";
+ ti,hwmods = "uart1";
+ clock-frequency = <48000000>;
+ };
+
+ uart2: serial@0x4806c000 {
+ compatible = "ti,omap3-uart";
+ ti,hwmods = "uart2";
+ clock-frequency = <48000000>;
+ };
+
+ uart3: serial@0x49020000 {
+ compatible = "ti,omap3-uart";
+ ti,hwmods = "uart3";
+ clock-frequency = <48000000>;
+ };
+
+ uart4: serial@0x49042000 {
+ compatible = "ti,omap3-uart";
+ ti,hwmods = "uart4";
+ clock-frequency = <48000000>;
+ };
};
};
diff --git a/arch/arm/boot/dts/omap4.dtsi b/arch/arm/boot/dts/omap4.dtsi
index 4c61c82..e8fe75f 100644
--- a/arch/arm/boot/dts/omap4.dtsi
+++ b/arch/arm/boot/dts/omap4.dtsi
@@ -21,6 +21,10 @@
interrupt-parent = <&gic>;
aliases {
+ serial0 = &uart1;
+ serial1 = &uart2;
+ serial2 = &uart3;
+ serial3 = &uart4;
};
cpus {
@@ -99,5 +103,29 @@
reg = <0x48241000 0x1000>,
<0x48240100 0x0100>;
};
+
+ uart1: serial@0x4806a000 {
+ compatible = "ti,omap4-uart";
+ ti,hwmods = "uart1";
+ clock-frequency = <48000000>;
+ };
+
+ uart2: serial@0x4806c000 {
+ compatible = "ti,omap4-uart";
+ ti,hwmods = "uart2";
+ clock-frequency = <48000000>;
+ };
+
+ uart3: serial@0x48020000 {
+ compatible = "ti,omap4-uart";
+ ti,hwmods = "uart3";
+ clock-frequency = <48000000>;
+ };
+
+ uart4: serial@0x4806e000 {
+ compatible = "ti,omap4-uart";
+ ti,hwmods = "uart4";
+ clock-frequency = <48000000>;
+ };
};
};
diff --git a/arch/arm/mach-omap2/board-generic.c b/arch/arm/mach-omap2/board-generic.c
index fb55fa3..bb72809 100644
--- a/arch/arm/mach-omap2/board-generic.c
+++ b/arch/arm/mach-omap2/board-generic.c
@@ -70,7 +70,6 @@ static void __init omap_generic_init(void)
if (node)
irq_domain_add_simple(node, 0);
- omap_serial_init();
omap_sdrc_init(NULL, NULL);
of_platform_populate(NULL, omap_dt_match_table, NULL, NULL);
--
1.7.1
^ permalink raw reply related [flat|nested] 12+ messages in thread
* Re: [PATCH v2 0/4] OMAP serial device tree support
2011-11-22 13:44 [PATCH v2 0/4] OMAP serial device tree support Rajendra Nayak
[not found] ` <1321969456-24266-1-git-send-email-rnayak-l0cyMroinI0@public.gmane.org>
2011-11-22 13:44 ` [PATCH v2 2/4] omap-serial: Use default clock speed (48Mhz) if not specified Rajendra Nayak
@ 2011-11-27 3:36 ` Greg KH
2011-11-28 6:06 ` Rajendra Nayak
2 siblings, 1 reply; 12+ messages in thread
From: Greg KH @ 2011-11-27 3:36 UTC (permalink / raw)
To: Rajendra Nayak
Cc: linux-serial, linux-omap, devicetree-discuss, tony, khilman,
govindraj.raja, b-cousson, linux-arm-kernel, linaro-dev, patches,
robherring2
On Tue, Nov 22, 2011 at 07:14:12PM +0530, Rajendra Nayak wrote:
> v2 is based on the latest omap-serial runtime patches, which
> can be found here[1]
>
> The series passes minimal data that allows serial console
> boot, with UART's initialised from device tree.
> However some of low power support for UART and remote
> wakeup needs more work.
> Boot tested on OMAP4 panda and OMAP4 sdp boards.
>
> Patches can be found here..
> git://gitorious.org/omap-pm/linux.git for-dt/serial
What tree are these going to go through, some device tree one, or do you
want me to take the serial driver patches?
thanks,
greg k-h
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH v2 0/4] OMAP serial device tree support
2011-11-27 3:36 ` [PATCH v2 0/4] OMAP serial device tree support Greg KH
@ 2011-11-28 6:06 ` Rajendra Nayak
2011-11-28 6:31 ` Greg KH
0 siblings, 1 reply; 12+ messages in thread
From: Rajendra Nayak @ 2011-11-28 6:06 UTC (permalink / raw)
To: Greg KH
Cc: linux-serial, linux-omap, devicetree-discuss, tony, khilman,
govindraj.raja, b-cousson, linux-arm-kernel, linaro-dev, patches,
robherring2
On Sunday 27 November 2011 09:06 AM, Greg KH wrote:
> On Tue, Nov 22, 2011 at 07:14:12PM +0530, Rajendra Nayak wrote:
>> v2 is based on the latest omap-serial runtime patches, which
>> can be found here[1]
>>
>> The series passes minimal data that allows serial console
>> boot, with UART's initialised from device tree.
>> However some of low power support for UART and remote
>> wakeup needs more work.
>> Boot tested on OMAP4 panda and OMAP4 sdp boards.
>>
>> Patches can be found here..
>> git://gitorious.org/omap-pm/linux.git for-dt/serial
>
> What tree are these going to go through, some device tree one, or do you
> want me to take the serial driver patches?
Hi Greg,
These patches have a dependency on the omap-serial runtime series.
So once that makes it in, through the serial driver tree, and once we
have the necessary Acks from the Device Tree maintainers on the relevant
patches from this series, these could go through the serial driver tree
as well.
thanks,
Rajendra
>
> thanks,
>
> greg k-h
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH v2 0/4] OMAP serial device tree support
2011-11-28 6:06 ` Rajendra Nayak
@ 2011-11-28 6:31 ` Greg KH
2011-11-28 13:44 ` Rob Herring
0 siblings, 1 reply; 12+ messages in thread
From: Greg KH @ 2011-11-28 6:31 UTC (permalink / raw)
To: Rajendra Nayak
Cc: linux-serial, linux-omap, devicetree-discuss, tony, khilman,
govindraj.raja, b-cousson, linux-arm-kernel, linaro-dev, patches,
robherring2
On Mon, Nov 28, 2011 at 11:36:56AM +0530, Rajendra Nayak wrote:
> On Sunday 27 November 2011 09:06 AM, Greg KH wrote:
> >On Tue, Nov 22, 2011 at 07:14:12PM +0530, Rajendra Nayak wrote:
> >>v2 is based on the latest omap-serial runtime patches, which
> >>can be found here[1]
> >>
> >>The series passes minimal data that allows serial console
> >>boot, with UART's initialised from device tree.
> >>However some of low power support for UART and remote
> >>wakeup needs more work.
> >>Boot tested on OMAP4 panda and OMAP4 sdp boards.
> >>
> >>Patches can be found here..
> >>git://gitorious.org/omap-pm/linux.git for-dt/serial
> >
> >What tree are these going to go through, some device tree one, or do you
> >want me to take the serial driver patches?
>
> Hi Greg,
>
> These patches have a dependency on the omap-serial runtime series.
> So once that makes it in, through the serial driver tree, and once we
> have the necessary Acks from the Device Tree maintainers on the relevant
> patches from this series, these could go through the serial driver tree
> as well.
Then all of these should probably go through the device tree tree.
thanks,
greg k-h
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH v2 3/4] omap-serial: Add minimal device tree support
2011-11-22 13:44 ` [PATCH v2 3/4] omap-serial: Add minimal device tree support Rajendra Nayak
@ 2011-11-28 13:39 ` Rob Herring
2011-11-29 7:04 ` Rajendra Nayak
0 siblings, 1 reply; 12+ messages in thread
From: Rob Herring @ 2011-11-28 13:39 UTC (permalink / raw)
To: Rajendra Nayak
Cc: linux-serial, linux-omap, devicetree-discuss, tony, khilman,
govindraj.raja, b-cousson, linux-arm-kernel, linaro-dev, patches
On 11/22/2011 07:44 AM, Rajendra Nayak wrote:
> Adapt the driver to device tree and pass minimal platform
> data from device tree needed for console boot.
> No power management features will be suppported for now
> since it requires more tweaks around OCP settings
> to toggle forceidle/noidle/smaridle bits and handling
typo: smartidle
> remote wakeup and dynamic muxing.
>
> Signed-off-by: Rajendra Nayak <rnayak@ti.com>
Acked-by: Rob Herring <rob.herring@calxeda.com>
Rob
> ---
> .../devicetree/bindings/serial/omap_serial.txt | 10 ++++
> drivers/tty/serial/omap-serial.c | 45 ++++++++++++++++++-
> 2 files changed, 52 insertions(+), 3 deletions(-)
> create mode 100644 Documentation/devicetree/bindings/serial/omap_serial.txt
>
> diff --git a/Documentation/devicetree/bindings/serial/omap_serial.txt b/Documentation/devicetree/bindings/serial/omap_serial.txt
> new file mode 100644
> index 0000000..342eedd
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/serial/omap_serial.txt
> @@ -0,0 +1,10 @@
> +OMAP UART controller
> +
> +Required properties:
> +- compatible : should be "ti,omap2-uart" for OMAP2 controllers
> +- compatible : should be "ti,omap3-uart" for OMAP3 controllers
> +- compatible : should be "ti,omap4-uart" for OMAP4 controllers
> +- ti,hwmods : Must be "uart<n>", n being the instance number (1-based)
> +
> +Optional properties:
> +- clock-frequency : frequency of the clock input to the UART
> diff --git a/drivers/tty/serial/omap-serial.c b/drivers/tty/serial/omap-serial.c
> index f14b9c5..5aa524e 100644
> --- a/drivers/tty/serial/omap-serial.c
> +++ b/drivers/tty/serial/omap-serial.c
> @@ -38,6 +38,7 @@
> #include <linux/serial_core.h>
> #include <linux/irq.h>
> #include <linux/pm_runtime.h>
> +#include <linux/of.h>
>
> #include <plat/dma.h>
> #include <plat/dmtimer.h>
> @@ -1324,6 +1325,19 @@ static void uart_tx_dma_callback(int lch, u16 ch_status, void *data)
> return;
> }
>
> +static struct omap_uart_port_info *of_get_uart_port_info(struct device *dev)
> +{
> + struct omap_uart_port_info *omap_up_info;
> +
> + omap_up_info = devm_kzalloc(dev, sizeof(*omap_up_info), GFP_KERNEL);
> + if (!omap_up_info)
> + return NULL; /* out of memory */
> +
> + of_property_read_u32(dev->of_node, "clock-frequency",
> + &omap_up_info->uartclk);
> + return omap_up_info;
> +}
> +
> static int serial_omap_probe(struct platform_device *pdev)
> {
> struct uart_omap_port *up;
> @@ -1331,6 +1345,9 @@ static int serial_omap_probe(struct platform_device *pdev)
> struct omap_uart_port_info *omap_up_info = pdev->dev.platform_data;
> int ret = -ENOSPC;
>
> + if (pdev->dev.of_node)
> + omap_up_info = of_get_uart_port_info(&pdev->dev);
> +
> mem = platform_get_resource(pdev, IORESOURCE_MEM, 0);
> if (!mem) {
> dev_err(&pdev->dev, "no mem resource?\n");
> @@ -1375,9 +1392,20 @@ static int serial_omap_probe(struct platform_device *pdev)
> up->port.regshift = 2;
> up->port.fifosize = 64;
> up->port.ops = &serial_omap_pops;
> - up->port.line = pdev->id;
> - sprintf(up->name, "OMAP UART%d", up->port.line);
>
> + if (pdev->dev.of_node)
> + up->port.line = of_alias_get_id(pdev->dev.of_node, "serial");
> + else
> + up->port.line = pdev->id;
> +
> + if (up->port.line < 0) {
> + dev_err(&pdev->dev, "failed to get alias/pdev id, errno %d\n",
> + up->port.line);
> + ret = -ENODEV;
> + goto err;
> + }
> +
> + sprintf(up->name, "OMAP UART%d", up->port.line);
> up->port.mapbase = mem->start;
> up->port.membase = ioremap(mem->start, resource_size(mem));
> if (!up->port.membase) {
> @@ -1530,7 +1558,7 @@ static int serial_omap_runtime_suspend(struct device *dev)
> if (!up)
> return -EINVAL;
>
> - if (!pdata->enable_wakeup)
> + if (!pdata || !pdata->enable_wakeup)
> return 0;
>
> if (pdata->get_context_loss_count)
> @@ -1591,12 +1619,23 @@ static const struct dev_pm_ops serial_omap_dev_pm_ops = {
> serial_omap_runtime_resume, NULL)
> };
>
> +#if defined(CONFIG_OF)
> +static const struct of_device_id omap_serial_of_match[] = {
> + { .compatible = "ti,omap2-uart" },
> + { .compatible = "ti,omap3-uart" },
> + { .compatible = "ti,omap4-uart" },
> + {},
> +};
> +MODULE_DEVICE_TABLE(of, omap_serial_of_match);
> +#endif
> +
> static struct platform_driver serial_omap_driver = {
> .probe = serial_omap_probe,
> .remove = serial_omap_remove,
> .driver = {
> .name = DRIVER_NAME,
> .pm = &serial_omap_dev_pm_ops,
> + .of_match_table = of_match_ptr(omap_serial_of_match),
> },
> };
>
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH v2 4/4] ARM: omap: pass minimal SoC/board data for UART from dt
2011-11-22 13:44 ` [PATCH v2 4/4] ARM: omap: pass minimal SoC/board data for UART from dt Rajendra Nayak
@ 2011-11-28 13:40 ` Rob Herring
0 siblings, 0 replies; 12+ messages in thread
From: Rob Herring @ 2011-11-28 13:40 UTC (permalink / raw)
To: Rajendra Nayak
Cc: linux-serial, linux-omap, devicetree-discuss, tony, khilman,
govindraj.raja, b-cousson, linux-arm-kernel, linaro-dev, patches
On 11/22/2011 07:44 AM, Rajendra Nayak wrote:
> Pass minimal data needed for console boot, from dt, for
> OMAP4 panda/sdp and OMAP3 beagle boards, and get rid of the
> static initialization from generic board file.
>
> Signed-off-by: Rajendra Nayak <rnayak@ti.com>
Acked-by: Rob Herring <rob.herring@calxeda.com>
Rob
> ---
> arch/arm/boot/dts/omap3.dtsi | 31 +++++++++++++++++++++++++++++++
> arch/arm/boot/dts/omap4.dtsi | 28 ++++++++++++++++++++++++++++
> arch/arm/mach-omap2/board-generic.c | 1 -
> 3 files changed, 59 insertions(+), 1 deletions(-)
>
> diff --git a/arch/arm/boot/dts/omap3.dtsi b/arch/arm/boot/dts/omap3.dtsi
> index d202bb5..216c331 100644
> --- a/arch/arm/boot/dts/omap3.dtsi
> +++ b/arch/arm/boot/dts/omap3.dtsi
> @@ -13,6 +13,13 @@
> / {
> compatible = "ti,omap3430", "ti,omap3";
>
> + aliases {
> + serial0 = &uart1;
> + serial1 = &uart2;
> + serial2 = &uart3;
> + serial3 = &uart4;
> + };
> +
> cpus {
> cpu@0 {
> compatible = "arm,cortex-a8";
> @@ -59,5 +66,29 @@
> interrupt-controller;
> #interrupt-cells = <1>;
> };
> +
> + uart1: serial@0x4806a000 {
> + compatible = "ti,omap3-uart";
> + ti,hwmods = "uart1";
> + clock-frequency = <48000000>;
> + };
> +
> + uart2: serial@0x4806c000 {
> + compatible = "ti,omap3-uart";
> + ti,hwmods = "uart2";
> + clock-frequency = <48000000>;
> + };
> +
> + uart3: serial@0x49020000 {
> + compatible = "ti,omap3-uart";
> + ti,hwmods = "uart3";
> + clock-frequency = <48000000>;
> + };
> +
> + uart4: serial@0x49042000 {
> + compatible = "ti,omap3-uart";
> + ti,hwmods = "uart4";
> + clock-frequency = <48000000>;
> + };
> };
> };
> diff --git a/arch/arm/boot/dts/omap4.dtsi b/arch/arm/boot/dts/omap4.dtsi
> index 4c61c82..e8fe75f 100644
> --- a/arch/arm/boot/dts/omap4.dtsi
> +++ b/arch/arm/boot/dts/omap4.dtsi
> @@ -21,6 +21,10 @@
> interrupt-parent = <&gic>;
>
> aliases {
> + serial0 = &uart1;
> + serial1 = &uart2;
> + serial2 = &uart3;
> + serial3 = &uart4;
> };
>
> cpus {
> @@ -99,5 +103,29 @@
> reg = <0x48241000 0x1000>,
> <0x48240100 0x0100>;
> };
> +
> + uart1: serial@0x4806a000 {
> + compatible = "ti,omap4-uart";
> + ti,hwmods = "uart1";
> + clock-frequency = <48000000>;
> + };
> +
> + uart2: serial@0x4806c000 {
> + compatible = "ti,omap4-uart";
> + ti,hwmods = "uart2";
> + clock-frequency = <48000000>;
> + };
> +
> + uart3: serial@0x48020000 {
> + compatible = "ti,omap4-uart";
> + ti,hwmods = "uart3";
> + clock-frequency = <48000000>;
> + };
> +
> + uart4: serial@0x4806e000 {
> + compatible = "ti,omap4-uart";
> + ti,hwmods = "uart4";
> + clock-frequency = <48000000>;
> + };
> };
> };
> diff --git a/arch/arm/mach-omap2/board-generic.c b/arch/arm/mach-omap2/board-generic.c
> index fb55fa3..bb72809 100644
> --- a/arch/arm/mach-omap2/board-generic.c
> +++ b/arch/arm/mach-omap2/board-generic.c
> @@ -70,7 +70,6 @@ static void __init omap_generic_init(void)
> if (node)
> irq_domain_add_simple(node, 0);
>
> - omap_serial_init();
> omap_sdrc_init(NULL, NULL);
>
> of_platform_populate(NULL, omap_dt_match_table, NULL, NULL);
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH v2 0/4] OMAP serial device tree support
2011-11-28 6:31 ` Greg KH
@ 2011-11-28 13:44 ` Rob Herring
0 siblings, 0 replies; 12+ messages in thread
From: Rob Herring @ 2011-11-28 13:44 UTC (permalink / raw)
To: Greg KH
Cc: Rajendra Nayak, linux-serial, linux-omap, devicetree-discuss,
tony, khilman, govindraj.raja, b-cousson, linux-arm-kernel,
linaro-dev, patches
On 11/28/2011 12:31 AM, Greg KH wrote:
> On Mon, Nov 28, 2011 at 11:36:56AM +0530, Rajendra Nayak wrote:
>> On Sunday 27 November 2011 09:06 AM, Greg KH wrote:
>>> On Tue, Nov 22, 2011 at 07:14:12PM +0530, Rajendra Nayak wrote:
>>>> v2 is based on the latest omap-serial runtime patches, which
>>>> can be found here[1]
>>>>
>>>> The series passes minimal data that allows serial console
>>>> boot, with UART's initialised from device tree.
>>>> However some of low power support for UART and remote
>>>> wakeup needs more work.
>>>> Boot tested on OMAP4 panda and OMAP4 sdp boards.
>>>>
>>>> Patches can be found here..
>>>> git://gitorious.org/omap-pm/linux.git for-dt/serial
>>>
>>> What tree are these going to go through, some device tree one, or do you
>>> want me to take the serial driver patches?
>>
>> Hi Greg,
>>
>> These patches have a dependency on the omap-serial runtime series.
>> So once that makes it in, through the serial driver tree, and once we
>> have the necessary Acks from the Device Tree maintainers on the relevant
>> patches from this series, these could go through the serial driver tree
>> as well.
>
> Then all of these should probably go through the device tree tree.
Generally, DT related driver changes go in thru the respective driver trees.
Rob
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH v2 3/4] omap-serial: Add minimal device tree support
2011-11-28 13:39 ` Rob Herring
@ 2011-11-29 7:04 ` Rajendra Nayak
0 siblings, 0 replies; 12+ messages in thread
From: Rajendra Nayak @ 2011-11-29 7:04 UTC (permalink / raw)
To: Rob Herring
Cc: linux-serial, linux-omap, devicetree-discuss, tony, khilman,
govindraj.raja, b-cousson, linux-arm-kernel, linaro-dev, patches
On Monday 28 November 2011 07:09 PM, Rob Herring wrote:
> On 11/22/2011 07:44 AM, Rajendra Nayak wrote:
>> Adapt the driver to device tree and pass minimal platform
>> data from device tree needed for console boot.
>> No power management features will be suppported for now
>> since it requires more tweaks around OCP settings
>> to toggle forceidle/noidle/smaridle bits and handling
>
> typo: smartidle
>
>> remote wakeup and dynamic muxing.
>>
>> Signed-off-by: Rajendra Nayak<rnayak@ti.com>
>
> Acked-by: Rob Herring<rob.herring@calxeda.com>
Thanks Rob, will fix the above typo.
>
> Rob
>
>> ---
>> .../devicetree/bindings/serial/omap_serial.txt | 10 ++++
>> drivers/tty/serial/omap-serial.c | 45 ++++++++++++++++++-
>> 2 files changed, 52 insertions(+), 3 deletions(-)
>> create mode 100644 Documentation/devicetree/bindings/serial/omap_serial.txt
>>
>> diff --git a/Documentation/devicetree/bindings/serial/omap_serial.txt b/Documentation/devicetree/bindings/serial/omap_serial.txt
>> new file mode 100644
>> index 0000000..342eedd
>> --- /dev/null
>> +++ b/Documentation/devicetree/bindings/serial/omap_serial.txt
>> @@ -0,0 +1,10 @@
>> +OMAP UART controller
>> +
>> +Required properties:
>> +- compatible : should be "ti,omap2-uart" for OMAP2 controllers
>> +- compatible : should be "ti,omap3-uart" for OMAP3 controllers
>> +- compatible : should be "ti,omap4-uart" for OMAP4 controllers
>> +- ti,hwmods : Must be "uart<n>", n being the instance number (1-based)
>> +
>> +Optional properties:
>> +- clock-frequency : frequency of the clock input to the UART
>> diff --git a/drivers/tty/serial/omap-serial.c b/drivers/tty/serial/omap-serial.c
>> index f14b9c5..5aa524e 100644
>> --- a/drivers/tty/serial/omap-serial.c
>> +++ b/drivers/tty/serial/omap-serial.c
>> @@ -38,6 +38,7 @@
>> #include<linux/serial_core.h>
>> #include<linux/irq.h>
>> #include<linux/pm_runtime.h>
>> +#include<linux/of.h>
>>
>> #include<plat/dma.h>
>> #include<plat/dmtimer.h>
>> @@ -1324,6 +1325,19 @@ static void uart_tx_dma_callback(int lch, u16 ch_status, void *data)
>> return;
>> }
>>
>> +static struct omap_uart_port_info *of_get_uart_port_info(struct device *dev)
>> +{
>> + struct omap_uart_port_info *omap_up_info;
>> +
>> + omap_up_info = devm_kzalloc(dev, sizeof(*omap_up_info), GFP_KERNEL);
>> + if (!omap_up_info)
>> + return NULL; /* out of memory */
>> +
>> + of_property_read_u32(dev->of_node, "clock-frequency",
>> + &omap_up_info->uartclk);
>> + return omap_up_info;
>> +}
>> +
>> static int serial_omap_probe(struct platform_device *pdev)
>> {
>> struct uart_omap_port *up;
>> @@ -1331,6 +1345,9 @@ static int serial_omap_probe(struct platform_device *pdev)
>> struct omap_uart_port_info *omap_up_info = pdev->dev.platform_data;
>> int ret = -ENOSPC;
>>
>> + if (pdev->dev.of_node)
>> + omap_up_info = of_get_uart_port_info(&pdev->dev);
>> +
>> mem = platform_get_resource(pdev, IORESOURCE_MEM, 0);
>> if (!mem) {
>> dev_err(&pdev->dev, "no mem resource?\n");
>> @@ -1375,9 +1392,20 @@ static int serial_omap_probe(struct platform_device *pdev)
>> up->port.regshift = 2;
>> up->port.fifosize = 64;
>> up->port.ops =&serial_omap_pops;
>> - up->port.line = pdev->id;
>> - sprintf(up->name, "OMAP UART%d", up->port.line);
>>
>> + if (pdev->dev.of_node)
>> + up->port.line = of_alias_get_id(pdev->dev.of_node, "serial");
>> + else
>> + up->port.line = pdev->id;
>> +
>> + if (up->port.line< 0) {
>> + dev_err(&pdev->dev, "failed to get alias/pdev id, errno %d\n",
>> + up->port.line);
>> + ret = -ENODEV;
>> + goto err;
>> + }
>> +
>> + sprintf(up->name, "OMAP UART%d", up->port.line);
>> up->port.mapbase = mem->start;
>> up->port.membase = ioremap(mem->start, resource_size(mem));
>> if (!up->port.membase) {
>> @@ -1530,7 +1558,7 @@ static int serial_omap_runtime_suspend(struct device *dev)
>> if (!up)
>> return -EINVAL;
>>
>> - if (!pdata->enable_wakeup)
>> + if (!pdata || !pdata->enable_wakeup)
>> return 0;
>>
>> if (pdata->get_context_loss_count)
>> @@ -1591,12 +1619,23 @@ static const struct dev_pm_ops serial_omap_dev_pm_ops = {
>> serial_omap_runtime_resume, NULL)
>> };
>>
>> +#if defined(CONFIG_OF)
>> +static const struct of_device_id omap_serial_of_match[] = {
>> + { .compatible = "ti,omap2-uart" },
>> + { .compatible = "ti,omap3-uart" },
>> + { .compatible = "ti,omap4-uart" },
>> + {},
>> +};
>> +MODULE_DEVICE_TABLE(of, omap_serial_of_match);
>> +#endif
>> +
>> static struct platform_driver serial_omap_driver = {
>> .probe = serial_omap_probe,
>> .remove = serial_omap_remove,
>> .driver = {
>> .name = DRIVER_NAME,
>> .pm =&serial_omap_dev_pm_ops,
>> + .of_match_table = of_match_ptr(omap_serial_of_match),
>> },
>> };
>>
>
^ permalink raw reply [flat|nested] 12+ messages in thread
end of thread, other threads:[~2011-11-29 7:04 UTC | newest]
Thread overview: 12+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2011-11-22 13:44 [PATCH v2 0/4] OMAP serial device tree support Rajendra Nayak
[not found] ` <1321969456-24266-1-git-send-email-rnayak-l0cyMroinI0@public.gmane.org>
2011-11-22 13:44 ` [PATCH v2 1/4] omap-serial: Get rid of all pdev->id usage Rajendra Nayak
2011-11-22 13:44 ` [PATCH v2 3/4] omap-serial: Add minimal device tree support Rajendra Nayak
2011-11-28 13:39 ` Rob Herring
2011-11-29 7:04 ` Rajendra Nayak
2011-11-22 13:44 ` [PATCH v2 4/4] ARM: omap: pass minimal SoC/board data for UART from dt Rajendra Nayak
2011-11-28 13:40 ` Rob Herring
2011-11-22 13:44 ` [PATCH v2 2/4] omap-serial: Use default clock speed (48Mhz) if not specified Rajendra Nayak
2011-11-27 3:36 ` [PATCH v2 0/4] OMAP serial device tree support Greg KH
2011-11-28 6:06 ` Rajendra Nayak
2011-11-28 6:31 ` Greg KH
2011-11-28 13:44 ` Rob Herring
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).