[PATCH 4/4] nios2/altera_serial_jtag: Switch to resources
franck.jullien at gmail.com
franck.jullien at gmail.com
Tue Jul 26 16:07:57 EDT 2011
From: Franck Jullien <franck.jullien at gmail.com>
Signed-off-by: Franck Jullien <franck.jullien at gmail.com>
---
drivers/serial/serial_altera_jtag.c | 27 +++++++++++++++++++++++----
1 files changed, 23 insertions(+), 4 deletions(-)
diff --git a/drivers/serial/serial_altera_jtag.c b/drivers/serial/serial_altera_jtag.c
index 322f9e9..2e34c89 100644
--- a/drivers/serial/serial_altera_jtag.c
+++ b/drivers/serial/serial_altera_jtag.c
@@ -30,6 +30,12 @@
#include <asm/io.h>
#include <asm/nios2-io.h>
+struct altera_serial_jtag_priv {
+ struct console_device cdev;
+ void __iomem *regs;
+};
+
+
static int altera_serial_jtag_setbaudrate(struct console_device *cdev, int baudrate)
{
return 0;
@@ -37,7 +43,10 @@ static int altera_serial_jtag_setbaudrate(struct console_device *cdev, int baudr
static void altera_serial_jtag_putc(struct console_device *cdev, char c)
{
- struct nios_jtag *jtag = (struct nios_jtag *)cdev->dev->map_base;
+ struct altera_serial_jtag_priv *priv = container_of(cdev,
+ struct altera_serial_jtag_priv, cdev);
+
+ struct nios_jtag *jtag = priv->regs;
uint32_t st;
while (1) {
@@ -51,14 +60,20 @@ static void altera_serial_jtag_putc(struct console_device *cdev, char c)
static int altera_serial_jtag_tstc(struct console_device *cdev)
{
- struct nios_jtag *jtag = (struct nios_jtag *)cdev->dev->map_base;
+ struct altera_serial_jtag_priv *priv = container_of(cdev,
+ struct altera_serial_jtag_priv, cdev);
+
+ struct nios_jtag *jtag = priv->regs;
return readl(&jtag->control) & NIOS_JTAG_RRDY;
}
static int altera_serial_jtag_getc(struct console_device *cdev)
{
- struct nios_jtag *jtag = (struct nios_jtag *)cdev->dev->map_base;
+ struct altera_serial_jtag_priv *priv = container_of(cdev,
+ struct altera_serial_jtag_priv, cdev);
+
+ struct nios_jtag *jtag = priv->regs;
uint32_t val;
while (1) {
@@ -73,8 +88,12 @@ static int altera_serial_jtag_getc(struct console_device *cdev)
static int altera_serial_jtag_probe(struct device_d *dev) {
struct console_device *cdev;
+ struct altera_serial_jtag_priv *priv;
+
+ priv = xmalloc(sizeof(*priv));
+ cdev = &priv->cdev;
- cdev = malloc(sizeof(struct console_device));
+ priv->regs = dev_request_mem_region(dev, 0);
dev->type_data = cdev;
cdev->dev = dev;
cdev->f_caps = CONSOLE_STDIN | CONSOLE_STDOUT | CONSOLE_STDERR;
--
1.7.6
More information about the barebox
mailing list