summaryrefslogtreecommitdiffstats
path: root/meta/recipes-kernel/linux/linux-omap2-git/beagleboard/TWL4030-07.patch
diff options
context:
space:
mode:
authorRichard Purdie <rpurdie@linux.intel.com>2010-08-27 15:14:24 +0100
committerRichard Purdie <rpurdie@linux.intel.com>2010-08-27 15:29:45 +0100
commit29d6678fd546377459ef75cf54abeef5b969b5cf (patch)
tree8edd65790e37a00d01c3f203f773fe4b5012db18 /meta/recipes-kernel/linux/linux-omap2-git/beagleboard/TWL4030-07.patch
parentda49de6885ee1bc424e70bc02f21f6ab920efb55 (diff)
downloadpoky-29d6678fd546377459ef75cf54abeef5b969b5cf.tar.gz
Major layout change to the packages directory
Having one monolithic packages directory makes it hard to find things and is generally overwhelming. This commit splits it into several logical sections roughly based on function, recipes.txt gives more information about the classifications used. The opportunity is also used to switch from "packages" to "recipes" as used in OpenEmbedded as the term "packages" can be confusing to people and has many different meanings. Not all recipes have been classified yet, this is just a first pass at separating things out. Some packages are moved to meta-extras as they're no longer actively used or maintained. Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
Diffstat (limited to 'meta/recipes-kernel/linux/linux-omap2-git/beagleboard/TWL4030-07.patch')
-rw-r--r--meta/recipes-kernel/linux/linux-omap2-git/beagleboard/TWL4030-07.patch274
1 files changed, 274 insertions, 0 deletions
diff --git a/meta/recipes-kernel/linux/linux-omap2-git/beagleboard/TWL4030-07.patch b/meta/recipes-kernel/linux/linux-omap2-git/beagleboard/TWL4030-07.patch
new file mode 100644
index 0000000000..8e4c4d6be4
--- /dev/null
+++ b/meta/recipes-kernel/linux/linux-omap2-git/beagleboard/TWL4030-07.patch
@@ -0,0 +1,274 @@
1TWL4030: move TWL module register defs into separate include files
2
3From: Paul Walmsley <paul@pwsan.com>
4
5twl_init_irq() uses "magic numbers" to access TWL module IMR and ISR
6registers. Symbolic constants are definitely preferred.
7
8Rather than duplicating already existing symbolic constants in
9twl4030-gpio.c and twl4030-pwrirq.c, move the existing constants out
10into include files. This patch should not change kernel behavior.
11
12Signed-off-by: Paul Walmsley <paul@pwsan.com>
13---
14
15 drivers/i2c/chips/twl4030-gpio.c | 48 -----------------------
16 drivers/i2c/chips/twl4030-pwrirq.c | 15 +++----
17 include/linux/i2c/twl4030-gpio.h | 76 ++++++++++++++++++++++++++++++++++++
18 include/linux/i2c/twl4030-pwrirq.h | 37 ++++++++++++++++++
19 4 files changed, 121 insertions(+), 55 deletions(-)
20 create mode 100644 include/linux/i2c/twl4030-gpio.h
21 create mode 100644 include/linux/i2c/twl4030-pwrirq.h
22
23diff --git a/drivers/i2c/chips/twl4030-gpio.c b/drivers/i2c/chips/twl4030-gpio.c
24index f16a48b..9d17f45 100644
25--- a/drivers/i2c/chips/twl4030-gpio.c
26+++ b/drivers/i2c/chips/twl4030-gpio.c
27@@ -38,6 +38,7 @@
28
29 #include <linux/i2c.h>
30 #include <linux/i2c/twl4030.h>
31+#include <linux/i2c/twl4030-gpio.h>
32 #include <linux/slab.h>
33
34 #include <asm/arch/irqs.h>
35@@ -47,53 +48,6 @@
36
37 #include <linux/device.h>
38
39-/*
40- * GPIO Block Register definitions
41- */
42-
43-#define REG_GPIODATAIN1 0x0
44-#define REG_GPIODATAIN2 0x1
45-#define REG_GPIODATAIN3 0x2
46-#define REG_GPIODATADIR1 0x3
47-#define REG_GPIODATADIR2 0x4
48-#define REG_GPIODATADIR3 0x5
49-#define REG_GPIODATAOUT1 0x6
50-#define REG_GPIODATAOUT2 0x7
51-#define REG_GPIODATAOUT3 0x8
52-#define REG_CLEARGPIODATAOUT1 0x9
53-#define REG_CLEARGPIODATAOUT2 0xA
54-#define REG_CLEARGPIODATAOUT3 0xB
55-#define REG_SETGPIODATAOUT1 0xC
56-#define REG_SETGPIODATAOUT2 0xD
57-#define REG_SETGPIODATAOUT3 0xE
58-#define REG_GPIO_DEBEN1 0xF
59-#define REG_GPIO_DEBEN2 0x10
60-#define REG_GPIO_DEBEN3 0x11
61-#define REG_GPIO_CTRL 0x12
62-#define REG_GPIOPUPDCTR1 0x13
63-#define REG_GPIOPUPDCTR2 0x14
64-#define REG_GPIOPUPDCTR3 0x15
65-#define REG_GPIOPUPDCTR4 0x16
66-#define REG_GPIOPUPDCTR5 0x17
67-#define REG_GPIO_ISR1A 0x19
68-#define REG_GPIO_ISR2A 0x1A
69-#define REG_GPIO_ISR3A 0x1B
70-#define REG_GPIO_IMR1A 0x1C
71-#define REG_GPIO_IMR2A 0x1D
72-#define REG_GPIO_IMR3A 0x1E
73-#define REG_GPIO_ISR1B 0x1F
74-#define REG_GPIO_ISR2B 0x20
75-#define REG_GPIO_ISR3B 0x21
76-#define REG_GPIO_IMR1B 0x22
77-#define REG_GPIO_IMR2B 0x23
78-#define REG_GPIO_IMR3B 0x24
79-#define REG_GPIO_EDR1 0x28
80-#define REG_GPIO_EDR2 0x29
81-#define REG_GPIO_EDR3 0x2A
82-#define REG_GPIO_EDR4 0x2B
83-#define REG_GPIO_EDR5 0x2C
84-#define REG_GPIO_SIH_CTRL 0x2D
85-
86 /* BitField Definitions */
87
88 /* Data banks : 3 banks for 8 gpios each */
89diff --git a/drivers/i2c/chips/twl4030-pwrirq.c b/drivers/i2c/chips/twl4030-pwrirq.c
90index a4d2e92..1afdb65 100644
91--- a/drivers/i2c/chips/twl4030-pwrirq.c
92+++ b/drivers/i2c/chips/twl4030-pwrirq.c
93@@ -27,10 +27,8 @@
94 #include <linux/random.h>
95 #include <linux/kthread.h>
96 #include <linux/i2c/twl4030.h>
97+#include <linux/i2c/twl4030-pwrirq.h>
98
99-#define PWR_ISR1 0
100-#define PWR_IMR1 1
101-#define PWR_SIH_CTRL 7
102 #define PWR_SIH_CTRL_COR (1<<2)
103
104 static u8 twl4030_pwrirq_mask;
105@@ -93,7 +91,8 @@ static void do_twl4030_pwrmodule_irq(unsigned int irq, irq_desc_t *desc)
106 twl4030_pwrirq_mask |= 1 << (irq - TWL4030_PWR_IRQ_BASE);
107 local_irq_enable();
108 twl4030_i2c_write_u8(TWL4030_MODULE_INT,
109- twl4030_pwrirq_mask, PWR_IMR1);
110+ twl4030_pwrirq_mask,
111+ TWL4030_INT_PWR_IMR1);
112 }
113 }
114 }
115@@ -115,7 +114,7 @@ static void do_twl4030_pwrirq(unsigned int irq, irq_desc_t *desc)
116
117 local_irq_enable();
118 ret = twl4030_i2c_read_u8(TWL4030_MODULE_INT, &pwr_isr,
119- PWR_ISR1);
120+ TWL4030_INT_PWR_ISR1);
121 if (ret) {
122 printk(KERN_WARNING
123 "I2C error %d while reading TWL4030"
124@@ -151,7 +150,7 @@ static int twl4030_pwrirq_thread(void *data)
125 twl4030_pwrirq_mask &= ~local_unmask;
126
127 twl4030_i2c_write_u8(TWL4030_MODULE_INT, twl4030_pwrirq_mask,
128- PWR_IMR1);
129+ TWL4030_INT_PWR_IMR1);
130
131 local_irq_disable();
132 if (!twl4030_pwrirq_pending_unmask)
133@@ -172,14 +171,14 @@ static int __init twl4030_pwrirq_init(void)
134 twl4030_pwrirq_pending_unmask = 0;
135
136 err = twl4030_i2c_write_u8(TWL4030_MODULE_INT, twl4030_pwrirq_mask,
137- PWR_IMR1);
138+ TWL4030_INT_PWR_IMR1);
139 if (err)
140 return err;
141
142 /* Enable clear on read */
143
144 err = twl4030_i2c_write_u8(TWL4030_MODULE_INT, PWR_SIH_CTRL_COR,
145- PWR_SIH_CTRL);
146+ TWL4030_INT_PWR_SIH_CTRL);
147 if (err)
148 return err;
149
150diff --git a/include/linux/i2c/twl4030-gpio.h b/include/linux/i2c/twl4030-gpio.h
151new file mode 100644
152index 0000000..7cbf610
153--- /dev/null
154+++ b/include/linux/i2c/twl4030-gpio.h
155@@ -0,0 +1,76 @@
156+/*
157+ * twl4030-gpio.h - header for TWL4030 GPIO module
158+ *
159+ * Copyright (C) 2005-2006, 2008 Texas Instruments, Inc.
160+ * Copyright (C) 2008 Nokia Corporation
161+ *
162+ * Based on tlv320aic23.c:
163+ * Copyright (c) by Kai Svahn <kai.svahn@nokia.com>
164+ *
165+ * This program is free software; you can redistribute it and/or modify
166+ * it under the terms of the GNU General Public License as published by
167+ * the Free Software Foundation; either version 2 of the License, or
168+ * (at your option) any later version.
169+ *
170+ * This program is distributed in the hope that it will be useful,
171+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
172+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
173+ * GNU General Public License for more details.
174+ *
175+ * You should have received a copy of the GNU General Public License
176+ * along with this program; if not, write to the Free Software
177+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
178+ *
179+ */
180+
181+#ifndef __TWL4030_GPIO_H_
182+#define __TWL4030_GPIO_H_
183+
184+/*
185+ * GPIO Block Register definitions
186+ */
187+
188+#define REG_GPIODATAIN1 0x0
189+#define REG_GPIODATAIN2 0x1
190+#define REG_GPIODATAIN3 0x2
191+#define REG_GPIODATADIR1 0x3
192+#define REG_GPIODATADIR2 0x4
193+#define REG_GPIODATADIR3 0x5
194+#define REG_GPIODATAOUT1 0x6
195+#define REG_GPIODATAOUT2 0x7
196+#define REG_GPIODATAOUT3 0x8
197+#define REG_CLEARGPIODATAOUT1 0x9
198+#define REG_CLEARGPIODATAOUT2 0xA
199+#define REG_CLEARGPIODATAOUT3 0xB
200+#define REG_SETGPIODATAOUT1 0xC
201+#define REG_SETGPIODATAOUT2 0xD
202+#define REG_SETGPIODATAOUT3 0xE
203+#define REG_GPIO_DEBEN1 0xF
204+#define REG_GPIO_DEBEN2 0x10
205+#define REG_GPIO_DEBEN3 0x11
206+#define REG_GPIO_CTRL 0x12
207+#define REG_GPIOPUPDCTR1 0x13
208+#define REG_GPIOPUPDCTR2 0x14
209+#define REG_GPIOPUPDCTR3 0x15
210+#define REG_GPIOPUPDCTR4 0x16
211+#define REG_GPIOPUPDCTR5 0x17
212+#define REG_GPIO_ISR1A 0x19
213+#define REG_GPIO_ISR2A 0x1A
214+#define REG_GPIO_ISR3A 0x1B
215+#define REG_GPIO_IMR1A 0x1C
216+#define REG_GPIO_IMR2A 0x1D
217+#define REG_GPIO_IMR3A 0x1E
218+#define REG_GPIO_ISR1B 0x1F
219+#define REG_GPIO_ISR2B 0x20
220+#define REG_GPIO_ISR3B 0x21
221+#define REG_GPIO_IMR1B 0x22
222+#define REG_GPIO_IMR2B 0x23
223+#define REG_GPIO_IMR3B 0x24
224+#define REG_GPIO_EDR1 0x28
225+#define REG_GPIO_EDR2 0x29
226+#define REG_GPIO_EDR3 0x2A
227+#define REG_GPIO_EDR4 0x2B
228+#define REG_GPIO_EDR5 0x2C
229+#define REG_GPIO_SIH_CTRL 0x2D
230+
231+#endif /* End of __TWL4030_GPIO_H */
232diff --git a/include/linux/i2c/twl4030-pwrirq.h b/include/linux/i2c/twl4030-pwrirq.h
233new file mode 100644
234index 0000000..7a13368
235--- /dev/null
236+++ b/include/linux/i2c/twl4030-pwrirq.h
237@@ -0,0 +1,37 @@
238+/*
239+ * twl4030-gpio.h - header for TWL4030 GPIO module
240+ *
241+ * Copyright (C) 2008 Texas Instruments, Inc.
242+ * Copyright (C) 2008 Nokia Corporation
243+ *
244+ * This program is free software; you can redistribute it and/or modify
245+ * it under the terms of the GNU General Public License as published by
246+ * the Free Software Foundation; either version 2 of the License, or
247+ * (at your option) any later version.
248+ *
249+ * This program is distributed in the hope that it will be useful,
250+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
251+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
252+ * GNU General Public License for more details.
253+ *
254+ * You should have received a copy of the GNU General Public License
255+ * along with this program; if not, write to the Free Software
256+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
257+ *
258+ */
259+
260+#ifndef __TWL4030_PWRIRQ_H_
261+#define __TWL4030_PWRIRQ_H_
262+
263+/*
264+ * INT Module Register definitions
265+ * (not all registers are defined below)
266+ */
267+
268+#define TWL4030_INT_PWR_ISR1 0x0
269+#define TWL4030_INT_PWR_IMR1 0x1
270+#define TWL4030_INT_PWR_ISR2 0x2
271+#define TWL4030_INT_PWR_IMR2 0x3
272+#define TWL4030_INT_PWR_SIH_CTRL 0x7
273+
274+#endif /* End of __TWL4030_PWRIRQ_H */