diff options
| -rw-r--r-- | drivers/input/keyboard/spear-keyboard.c | 30 |
1 files changed, 15 insertions, 15 deletions
diff --git a/drivers/input/keyboard/spear-keyboard.c b/drivers/input/keyboard/spear-keyboard.c index 45dd02cbcaa0..10dda9f8e706 100644 --- a/drivers/input/keyboard/spear-keyboard.c +++ b/drivers/input/keyboard/spear-keyboard.c | |||
| @@ -27,9 +27,9 @@ | |||
| 27 | #include <plat/keyboard.h> | 27 | #include <plat/keyboard.h> |
| 28 | 28 | ||
| 29 | /* Keyboard Registers */ | 29 | /* Keyboard Registers */ |
| 30 | #define MODE_REG 0x00 /* 16 bit reg */ | 30 | #define MODE_REG 0x00 |
| 31 | #define STATUS_REG 0x0C /* 2 bit reg */ | 31 | #define STATUS_REG 0x0C |
| 32 | #define DATA_REG 0x10 /* 8 bit reg */ | 32 | #define DATA_REG 0x10 |
| 33 | #define INTR_MASK 0x54 | 33 | #define INTR_MASK 0x54 |
| 34 | 34 | ||
| 35 | /* Register Values */ | 35 | /* Register Values */ |
| @@ -72,9 +72,9 @@ static irqreturn_t spear_kbd_interrupt(int irq, void *dev_id) | |||
| 72 | struct spear_kbd *kbd = dev_id; | 72 | struct spear_kbd *kbd = dev_id; |
| 73 | struct input_dev *input = kbd->input; | 73 | struct input_dev *input = kbd->input; |
| 74 | unsigned int key; | 74 | unsigned int key; |
| 75 | u8 sts, val; | 75 | u32 sts, val; |
| 76 | 76 | ||
| 77 | sts = readb(kbd->io_base + STATUS_REG); | 77 | sts = readl_relaxed(kbd->io_base + STATUS_REG); |
| 78 | if (!(sts & DATA_AVAIL)) | 78 | if (!(sts & DATA_AVAIL)) |
| 79 | return IRQ_NONE; | 79 | return IRQ_NONE; |
| 80 | 80 | ||
| @@ -84,7 +84,7 @@ static irqreturn_t spear_kbd_interrupt(int irq, void *dev_id) | |||
| 84 | } | 84 | } |
| 85 | 85 | ||
| 86 | /* following reads active (row, col) pair */ | 86 | /* following reads active (row, col) pair */ |
| 87 | val = readb(kbd->io_base + DATA_REG); | 87 | val = readl_relaxed(kbd->io_base + DATA_REG); |
| 88 | key = kbd->keycodes[val]; | 88 | key = kbd->keycodes[val]; |
| 89 | 89 | ||
| 90 | input_event(input, EV_MSC, MSC_SCAN, val); | 90 | input_event(input, EV_MSC, MSC_SCAN, val); |
| @@ -94,7 +94,7 @@ static irqreturn_t spear_kbd_interrupt(int irq, void *dev_id) | |||
| 94 | kbd->last_key = key; | 94 | kbd->last_key = key; |
| 95 | 95 | ||
| 96 | /* clear interrupt */ | 96 | /* clear interrupt */ |
| 97 | writeb(0, kbd->io_base + STATUS_REG); | 97 | writel_relaxed(0, kbd->io_base + STATUS_REG); |
| 98 | 98 | ||
| 99 | return IRQ_HANDLED; | 99 | return IRQ_HANDLED; |
| 100 | } | 100 | } |
| @@ -103,7 +103,7 @@ static int spear_kbd_open(struct input_dev *dev) | |||
| 103 | { | 103 | { |
| 104 | struct spear_kbd *kbd = input_get_drvdata(dev); | 104 | struct spear_kbd *kbd = input_get_drvdata(dev); |
| 105 | int error; | 105 | int error; |
| 106 | u16 val; | 106 | u32 val; |
| 107 | 107 | ||
| 108 | kbd->last_key = KEY_RESERVED; | 108 | kbd->last_key = KEY_RESERVED; |
| 109 | 109 | ||
| @@ -114,13 +114,13 @@ static int spear_kbd_open(struct input_dev *dev) | |||
| 114 | /* program keyboard */ | 114 | /* program keyboard */ |
| 115 | val = SCAN_RATE_80 | MODE_KEYBOARD | PCLK_FREQ_MSK | | 115 | val = SCAN_RATE_80 | MODE_KEYBOARD | PCLK_FREQ_MSK | |
| 116 | (kbd->mode << KEY_MATRIX_SHIFT); | 116 | (kbd->mode << KEY_MATRIX_SHIFT); |
| 117 | writew(val, kbd->io_base + MODE_REG); | 117 | writel_relaxed(val, kbd->io_base + MODE_REG); |
| 118 | writeb(1, kbd->io_base + STATUS_REG); | 118 | writel_relaxed(1, kbd->io_base + STATUS_REG); |
| 119 | 119 | ||
| 120 | /* start key scan */ | 120 | /* start key scan */ |
| 121 | val = readw(kbd->io_base + MODE_REG); | 121 | val = readl_relaxed(kbd->io_base + MODE_REG); |
| 122 | val |= START_SCAN; | 122 | val |= START_SCAN; |
| 123 | writew(val, kbd->io_base + MODE_REG); | 123 | writel_relaxed(val, kbd->io_base + MODE_REG); |
| 124 | 124 | ||
| 125 | return 0; | 125 | return 0; |
| 126 | } | 126 | } |
| @@ -128,12 +128,12 @@ static int spear_kbd_open(struct input_dev *dev) | |||
| 128 | static void spear_kbd_close(struct input_dev *dev) | 128 | static void spear_kbd_close(struct input_dev *dev) |
| 129 | { | 129 | { |
| 130 | struct spear_kbd *kbd = input_get_drvdata(dev); | 130 | struct spear_kbd *kbd = input_get_drvdata(dev); |
| 131 | u16 val; | 131 | u32 val; |
| 132 | 132 | ||
| 133 | /* stop key scan */ | 133 | /* stop key scan */ |
| 134 | val = readw(kbd->io_base + MODE_REG); | 134 | val = readl_relaxed(kbd->io_base + MODE_REG); |
| 135 | val &= ~START_SCAN; | 135 | val &= ~START_SCAN; |
| 136 | writew(val, kbd->io_base + MODE_REG); | 136 | writel_relaxed(val, kbd->io_base + MODE_REG); |
| 137 | 137 | ||
| 138 | clk_disable(kbd->clk); | 138 | clk_disable(kbd->clk); |
| 139 | 139 | ||
