diff options
author | Koen Kooi <koen@dominion.thruhere.net> | 2012-05-14 16:34:35 +0200 |
---|---|---|
committer | Denys Dmytriyenko <denys@ti.com> | 2012-05-15 00:40:26 -0400 |
commit | f189b368a7012056624173e9a8d598e39f96dfd1 (patch) | |
tree | 2f38a0dc34f2615e2322cd23e7f12148f54fcc79 | |
parent | a623c766f2ea8e022d216d281301919ee0cdd3fb (diff) | |
download | meta-ti-f189b368a7012056624173e9a8d598e39f96dfd1.tar.gz |
linux-ti33x-psp 3.2: updates
* Fix LEDs on 3.5", 7" and DVI capes
* Add support for rev A2 DVI capes
* Minor warning fixes to the boardfile
* All PWMs are initialized, but not pinmuxed
* Debugfs output for mux direction has been fixed
* When no capes claim the SPI bus /dev/spidev2.0 will appear
Signed-off-by: Koen Kooi <koen@dominion.thruhere.net>
Signed-off-by: Denys Dmytriyenko <denys@ti.com>
8 files changed, 804 insertions, 1 deletions
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0034-beaglebone-add-support-for-DVI-rev.-A2-capes.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0034-beaglebone-add-support-for-DVI-rev.-A2-capes.patch new file mode 100644 index 00000000..cd04c5e8 --- /dev/null +++ b/recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0034-beaglebone-add-support-for-DVI-rev.-A2-capes.patch | |||
@@ -0,0 +1,242 @@ | |||
1 | From b97227a0f246edd115cba03d8509c2b7460a815b Mon Sep 17 00:00:00 2001 | ||
2 | From: Koen Kooi <koen@dominion.thruhere.net> | ||
3 | Date: Thu, 19 Apr 2012 14:23:06 +0200 | ||
4 | Subject: [PATCH 34/40] beaglebone: add support for DVI rev. A2 capes | ||
5 | |||
6 | Signed-off-by: Koen Kooi <koen@dominion.thruhere.net> | ||
7 | --- | ||
8 | arch/arm/mach-omap2/board-am335xevm.c | 150 ++++++++------------------------- | ||
9 | 1 files changed, 35 insertions(+), 115 deletions(-) | ||
10 | |||
11 | diff --git a/arch/arm/mach-omap2/board-am335xevm.c b/arch/arm/mach-omap2/board-am335xevm.c | ||
12 | index 6e7b203..e02c0b6 100644 | ||
13 | --- a/arch/arm/mach-omap2/board-am335xevm.c | ||
14 | +++ b/arch/arm/mach-omap2/board-am335xevm.c | ||
15 | @@ -545,38 +545,6 @@ static struct pinmux_config batterycape_pin_mux[] = { | ||
16 | |||
17 | /* Module pin mux for LCDC */ | ||
18 | static struct pinmux_config lcdc_pin_mux[] = { | ||
19 | - {"lcd_data0.lcd_data0", OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT | ||
20 | - | AM33XX_PULL_DISA}, | ||
21 | - {"lcd_data1.lcd_data1", OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT | ||
22 | - | AM33XX_PULL_DISA}, | ||
23 | - {"lcd_data2.lcd_data2", OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT | ||
24 | - | AM33XX_PULL_DISA}, | ||
25 | - {"lcd_data3.lcd_data3", OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT | ||
26 | - | AM33XX_PULL_DISA}, | ||
27 | - {"lcd_data4.lcd_data4", OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT | ||
28 | - | AM33XX_PULL_DISA}, | ||
29 | - {"lcd_data5.lcd_data5", OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT | ||
30 | - | AM33XX_PULL_DISA}, | ||
31 | - {"lcd_data6.lcd_data6", OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT | ||
32 | - | AM33XX_PULL_DISA}, | ||
33 | - {"lcd_data7.lcd_data7", OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT | ||
34 | - | AM33XX_PULL_DISA}, | ||
35 | - {"lcd_data8.lcd_data8", OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT | ||
36 | - | AM33XX_PULL_DISA}, | ||
37 | - {"lcd_data9.lcd_data9", OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT | ||
38 | - | AM33XX_PULL_DISA}, | ||
39 | - {"lcd_data10.lcd_data10", OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT | ||
40 | - | AM33XX_PULL_DISA}, | ||
41 | - {"lcd_data11.lcd_data11", OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT | ||
42 | - | AM33XX_PULL_DISA}, | ||
43 | - {"lcd_data12.lcd_data12", OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT | ||
44 | - | AM33XX_PULL_DISA}, | ||
45 | - {"lcd_data13.lcd_data13", OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT | ||
46 | - | AM33XX_PULL_DISA}, | ||
47 | - {"lcd_data14.lcd_data14", OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT | ||
48 | - | AM33XX_PULL_DISA}, | ||
49 | - {"lcd_data15.lcd_data15", OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT | ||
50 | - | AM33XX_PULL_DISA}, | ||
51 | {"gpmc_ad8.lcd_data16", OMAP_MUX_MODE1 | AM33XX_PIN_OUTPUT}, | ||
52 | {"gpmc_ad9.lcd_data17", OMAP_MUX_MODE1 | AM33XX_PIN_OUTPUT}, | ||
53 | {"gpmc_ad10.lcd_data18", OMAP_MUX_MODE1 | AM33XX_PIN_OUTPUT}, | ||
54 | @@ -585,15 +553,11 @@ static struct pinmux_config lcdc_pin_mux[] = { | ||
55 | {"gpmc_ad13.lcd_data21", OMAP_MUX_MODE1 | AM33XX_PIN_OUTPUT}, | ||
56 | {"gpmc_ad14.lcd_data22", OMAP_MUX_MODE1 | AM33XX_PIN_OUTPUT}, | ||
57 | {"gpmc_ad15.lcd_data23", OMAP_MUX_MODE1 | AM33XX_PIN_OUTPUT}, | ||
58 | - {"lcd_vsync.lcd_vsync", OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT}, | ||
59 | - {"lcd_hsync.lcd_hsync", OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT}, | ||
60 | - {"lcd_pclk.lcd_pclk", OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT}, | ||
61 | - {"lcd_ac_bias_en.lcd_ac_bias_en", OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT}, | ||
62 | {NULL, 0}, | ||
63 | }; | ||
64 | |||
65 | -/* Module pin mux for Beagleboardtoys DVI cape */ | ||
66 | -static struct pinmux_config dvi_pin_mux[] = { | ||
67 | + | ||
68 | +static struct pinmux_config lcdc16_pin_mux[] = { | ||
69 | {"lcd_data0.lcd_data0", OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT | ||
70 | | AM33XX_PULL_DISA}, | ||
71 | {"lcd_data1.lcd_data1", OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT | ||
72 | @@ -630,90 +594,31 @@ static struct pinmux_config dvi_pin_mux[] = { | ||
73 | {"lcd_hsync.lcd_hsync", OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT}, | ||
74 | {"lcd_pclk.lcd_pclk", OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT}, | ||
75 | {"lcd_ac_bias_en.lcd_ac_bias_en", OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT}, | ||
76 | + {NULL, 0}, | ||
77 | +}; | ||
78 | + | ||
79 | + | ||
80 | +/* Module pin mux for Beagleboardtoys DVI cape */ | ||
81 | +static struct pinmux_config dvia1_pin_mux[] = { | ||
82 | {"gpmc_a2.rgmii2_td3", OMAP_MUX_MODE7 | AM33XX_PIN_OUTPUT}, // USR0 LED | ||
83 | {"gpmc_a3.rgmii2_td2", OMAP_MUX_MODE7 | AM33XX_PIN_OUTPUT}, // USR1 LED | ||
84 | {"gpmc_ad7.gpmc_ad7", OMAP_MUX_MODE7 | AM33XX_PIN_OUTPUT}, // DVI PDn | ||
85 | {NULL, 0}, | ||
86 | }; | ||
87 | |||
88 | +static struct pinmux_config dvia2_pin_mux[] = { | ||
89 | + {"gpmc_a2.rgmii2_td3", OMAP_MUX_MODE7 | AM33XX_PIN_OUTPUT}, // USR0 LED | ||
90 | + {"gpmc_a3.rgmii2_td2", OMAP_MUX_MODE7 | AM33XX_PIN_OUTPUT}, // USR1 LED | ||
91 | + {"gpmc_csn2.gpio1_31", OMAP_MUX_MODE7 | AM33XX_PIN_OUTPUT}, // DVI PDn | ||
92 | + {NULL, 0}, | ||
93 | +}; | ||
94 | + | ||
95 | /* Module pin mux for Beagleboardtoys 3.5" LCD cape */ | ||
96 | static struct pinmux_config bbtoys35_pin_mux[] = { | ||
97 | - {"lcd_data0.lcd_data0", OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT | ||
98 | - | AM33XX_PULL_DISA}, | ||
99 | - {"lcd_data1.lcd_data1", OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT | ||
100 | - | AM33XX_PULL_DISA}, | ||
101 | - {"lcd_data2.lcd_data2", OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT | ||
102 | - | AM33XX_PULL_DISA}, | ||
103 | - {"lcd_data3.lcd_data3", OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT | ||
104 | - | AM33XX_PULL_DISA}, | ||
105 | - {"lcd_data4.lcd_data4", OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT | ||
106 | - | AM33XX_PULL_DISA}, | ||
107 | - {"lcd_data5.lcd_data5", OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT | ||
108 | - | AM33XX_PULL_DISA}, | ||
109 | - {"lcd_data6.lcd_data6", OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT | ||
110 | - | AM33XX_PULL_DISA}, | ||
111 | - {"lcd_data7.lcd_data7", OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT | ||
112 | - | AM33XX_PULL_DISA}, | ||
113 | - {"lcd_data8.lcd_data8", OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT | ||
114 | - | AM33XX_PULL_DISA}, | ||
115 | - {"lcd_data9.lcd_data9", OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT | ||
116 | - | AM33XX_PULL_DISA}, | ||
117 | - {"lcd_data10.lcd_data10", OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT | ||
118 | - | AM33XX_PULL_DISA}, | ||
119 | - {"lcd_data11.lcd_data11", OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT | ||
120 | - | AM33XX_PULL_DISA}, | ||
121 | - {"lcd_data12.lcd_data12", OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT | ||
122 | - | AM33XX_PULL_DISA}, | ||
123 | - {"lcd_data13.lcd_data13", OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT | ||
124 | - | AM33XX_PULL_DISA}, | ||
125 | - {"lcd_data14.lcd_data14", OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT | ||
126 | - | AM33XX_PULL_DISA}, | ||
127 | - {"lcd_data15.lcd_data15", OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT | ||
128 | - | AM33XX_PULL_DISA}, | ||
129 | - {"lcd_vsync.lcd_vsync", OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT}, | ||
130 | - {"lcd_hsync.lcd_hsync", OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT}, | ||
131 | - {"lcd_pclk.lcd_pclk", OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT}, | ||
132 | - {"lcd_ac_bias_en.lcd_ac_bias_en", OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT}, | ||
133 | {NULL, 0}, | ||
134 | }; | ||
135 | /* Module pin mux for Beagleboardtoys 7" LCD cape */ | ||
136 | static struct pinmux_config bbtoys7_pin_mux[] = { | ||
137 | - {"lcd_data0.lcd_data0", OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT | ||
138 | - | AM33XX_PULL_DISA}, | ||
139 | - {"lcd_data1.lcd_data1", OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT | ||
140 | - | AM33XX_PULL_DISA}, | ||
141 | - {"lcd_data2.lcd_data2", OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT | ||
142 | - | AM33XX_PULL_DISA}, | ||
143 | - {"lcd_data3.lcd_data3", OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT | ||
144 | - | AM33XX_PULL_DISA}, | ||
145 | - {"lcd_data4.lcd_data4", OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT | ||
146 | - | AM33XX_PULL_DISA}, | ||
147 | - {"lcd_data5.lcd_data5", OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT | ||
148 | - | AM33XX_PULL_DISA}, | ||
149 | - {"lcd_data6.lcd_data6", OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT | ||
150 | - | AM33XX_PULL_DISA}, | ||
151 | - {"lcd_data7.lcd_data7", OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT | ||
152 | - | AM33XX_PULL_DISA}, | ||
153 | - {"lcd_data8.lcd_data8", OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT | ||
154 | - | AM33XX_PULL_DISA}, | ||
155 | - {"lcd_data9.lcd_data9", OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT | ||
156 | - | AM33XX_PULL_DISA}, | ||
157 | - {"lcd_data10.lcd_data10", OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT | ||
158 | - | AM33XX_PULL_DISA}, | ||
159 | - {"lcd_data11.lcd_data11", OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT | ||
160 | - | AM33XX_PULL_DISA}, | ||
161 | - {"lcd_data12.lcd_data12", OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT | ||
162 | - | AM33XX_PULL_DISA}, | ||
163 | - {"lcd_data13.lcd_data13", OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT | ||
164 | - | AM33XX_PULL_DISA}, | ||
165 | - {"lcd_data14.lcd_data14", OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT | ||
166 | - | AM33XX_PULL_DISA}, | ||
167 | - {"lcd_data15.lcd_data15", OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT | ||
168 | - | AM33XX_PULL_DISA}, | ||
169 | - {"lcd_vsync.lcd_vsync", OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT}, | ||
170 | - {"lcd_hsync.lcd_hsync", OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT}, | ||
171 | - {"lcd_pclk.lcd_pclk", OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT}, | ||
172 | - {"lcd_ac_bias_en.lcd_ac_bias_en", OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT}, | ||
173 | {"ecap0_in_pwm0_out.gpio0_7", OMAP_MUX_MODE7 | AM33XX_PIN_OUTPUT}, // AVDD_EN | ||
174 | {"gpmc_a2.ehrpwm1A", OMAP_MUX_MODE6 | AM33XX_PIN_OUTPUT}, // Backlight | ||
175 | {NULL, 0}, | ||
176 | @@ -1567,6 +1472,7 @@ out: | ||
177 | static void lcdc_init(int evm_id, int profile) | ||
178 | { | ||
179 | |||
180 | + setup_pin_mux(lcdc16_pin_mux); | ||
181 | setup_pin_mux(lcdc_pin_mux); | ||
182 | |||
183 | if (conf_disp_pll(300000000)) { | ||
184 | @@ -1584,6 +1490,7 @@ static void lcdc_init(int evm_id, int profile) | ||
185 | |||
186 | static void bbtoys7lcd_init(int evm_id, int profile) | ||
187 | { | ||
188 | + setup_pin_mux(lcdc16_pin_mux); | ||
189 | setup_pin_mux(bbtoys7_pin_mux); | ||
190 | gpio_request(BEAGLEBONE_LCD_AVDD_EN, "BONE_LCD_AVDD_EN"); | ||
191 | gpio_direction_output(BEAGLEBONE_LCD_AVDD_EN, 1); | ||
192 | @@ -1603,6 +1510,7 @@ static void bbtoys7lcd_init(int evm_id, int profile) | ||
193 | |||
194 | static void bbtoys35lcd_init(int evm_id, int profile) | ||
195 | { | ||
196 | + setup_pin_mux(lcdc16_pin_mux); | ||
197 | setup_pin_mux(bbtoys35_pin_mux); | ||
198 | |||
199 | // we are being stupid and setting pixclock from here instead of da8xx-fb.c | ||
200 | @@ -1618,13 +1526,12 @@ static void bbtoys35lcd_init(int evm_id, int profile) | ||
201 | return; | ||
202 | } | ||
203 | |||
204 | -#define BEAGLEBONEDVI_PDn GPIO_TO_PIN(1, 7) | ||
205 | +#define BEAGLEBONEDVI_PDn_A1 GPIO_TO_PIN(1, 7) | ||
206 | +#define BEAGLEBONEDVI_PDn_A2 GPIO_TO_PIN(1, 31) | ||
207 | |||
208 | static void dvi_init(int evm_id, int profile) | ||
209 | { | ||
210 | - setup_pin_mux(dvi_pin_mux); | ||
211 | - gpio_request(BEAGLEBONEDVI_PDn, "DVI_PDn"); | ||
212 | - gpio_direction_output(BEAGLEBONEDVI_PDn, 1); | ||
213 | + setup_pin_mux(lcdc16_pin_mux); | ||
214 | |||
215 | // we are being stupid and setting pixclock from here instead of da8xx-fb.c | ||
216 | if (conf_disp_pll(560000000)) { | ||
217 | @@ -2218,8 +2125,21 @@ static void beaglebone_cape_setup(struct memory_accessor *mem_acc, void *context | ||
218 | pr_info("BeagleBone cape partnumber: %s\n", tmp); | ||
219 | |||
220 | if (!strncmp("BB-BONE-DVID-01", cape_config.partnumber, 15)) { | ||
221 | - pr_info("BeagleBone cape: initializing DVI cape\n"); | ||
222 | + pr_info("BeagleBone cape: initializing DVI cape\n"); | ||
223 | + | ||
224 | + if (!strncmp("00A1", cape_config.version, 4) || !strncmp("000A", cape_config.version, 4)) { | ||
225 | + pr_info("BeagleBone cape: DVI init for revision A1 or older\n"); | ||
226 | + setup_pin_mux(dvia1_pin_mux); | ||
227 | + gpio_request(BEAGLEBONEDVI_PDn_A1, "DVI_PDn"); | ||
228 | + gpio_direction_output(BEAGLEBONEDVI_PDn_A1, 1); | ||
229 | dvi_init(0,0); | ||
230 | + } else { | ||
231 | + pr_info("BeagleBone cape: DVI init for revision A2 or newer\n"); | ||
232 | + setup_pin_mux(dvia2_pin_mux); | ||
233 | + gpio_request(BEAGLEBONEDVI_PDn_A2, "DVI_PDn"); | ||
234 | + gpio_direction_output(BEAGLEBONEDVI_PDn_A2, 1); | ||
235 | + dvi_init(0,0); | ||
236 | + } | ||
237 | } | ||
238 | if (!strncmp("BB-BONE-LCD7-01", cape_config.partnumber, 15)) { | ||
239 | pr_info("BeagleBone cape: initializing LCD cape\n"); | ||
240 | -- | ||
241 | 1.7.7.6 | ||
242 | |||
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0035-beaglebone-enable-LEDs-for-DVI-LCD3-and-LCD7-capes.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0035-beaglebone-enable-LEDs-for-DVI-LCD3-and-LCD7-capes.patch new file mode 100644 index 00000000..f50bdf60 --- /dev/null +++ b/recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0035-beaglebone-enable-LEDs-for-DVI-LCD3-and-LCD7-capes.patch | |||
@@ -0,0 +1,240 @@ | |||
1 | From 080d90fddb1c39a5197b56b3aab0a7701adced75 Mon Sep 17 00:00:00 2001 | ||
2 | From: Koen Kooi <koen@dominion.thruhere.net> | ||
3 | Date: Fri, 11 May 2012 13:08:24 +0200 | ||
4 | Subject: [PATCH 35/40] beaglebone: enable LEDs for DVI, LCD3 and LCD7 capes | ||
5 | |||
6 | Signed-off-by: Koen Kooi <koen@dominion.thruhere.net> | ||
7 | --- | ||
8 | arch/arm/mach-omap2/board-am335xevm.c | 140 ++++++++++++++++++++++++++++++-- | ||
9 | 1 files changed, 131 insertions(+), 9 deletions(-) | ||
10 | |||
11 | diff --git a/arch/arm/mach-omap2/board-am335xevm.c b/arch/arm/mach-omap2/board-am335xevm.c | ||
12 | index e02c0b6..8db33b9 100644 | ||
13 | --- a/arch/arm/mach-omap2/board-am335xevm.c | ||
14 | +++ b/arch/arm/mach-omap2/board-am335xevm.c | ||
15 | @@ -496,6 +496,7 @@ static bool beaglebone_cape_detected; | ||
16 | /* keep track of ADC pin usage */ | ||
17 | static int capecount = 0; | ||
18 | static bool beaglebone_tsadcpins_free = 1; | ||
19 | +static bool beaglebone_leds_free = 1; | ||
20 | |||
21 | |||
22 | #define GP_EVM_REV_IS_1_0 0x1 | ||
23 | @@ -600,23 +601,26 @@ static struct pinmux_config lcdc16_pin_mux[] = { | ||
24 | |||
25 | /* Module pin mux for Beagleboardtoys DVI cape */ | ||
26 | static struct pinmux_config dvia1_pin_mux[] = { | ||
27 | - {"gpmc_a2.rgmii2_td3", OMAP_MUX_MODE7 | AM33XX_PIN_OUTPUT}, // USR0 LED | ||
28 | - {"gpmc_a3.rgmii2_td2", OMAP_MUX_MODE7 | AM33XX_PIN_OUTPUT}, // USR1 LED | ||
29 | + {"gpmc_a2.gpio1_18", OMAP_MUX_MODE7 | AM33XX_PIN_OUTPUT}, // USR0 LED | ||
30 | + {"gpmc_a3.gpio1_19", OMAP_MUX_MODE7 | AM33XX_PIN_OUTPUT}, // USR1 LED | ||
31 | {"gpmc_ad7.gpmc_ad7", OMAP_MUX_MODE7 | AM33XX_PIN_OUTPUT}, // DVI PDn | ||
32 | {NULL, 0}, | ||
33 | }; | ||
34 | |||
35 | static struct pinmux_config dvia2_pin_mux[] = { | ||
36 | - {"gpmc_a2.rgmii2_td3", OMAP_MUX_MODE7 | AM33XX_PIN_OUTPUT}, // USR0 LED | ||
37 | - {"gpmc_a3.rgmii2_td2", OMAP_MUX_MODE7 | AM33XX_PIN_OUTPUT}, // USR1 LED | ||
38 | + {"gpmc_a2.gpio1_18", OMAP_MUX_MODE7 | AM33XX_PIN_OUTPUT}, // USR0 LED | ||
39 | + {"gpmc_a3.gpio1_19", OMAP_MUX_MODE7 | AM33XX_PIN_OUTPUT}, // USR1 LED | ||
40 | {"gpmc_csn2.gpio1_31", OMAP_MUX_MODE7 | AM33XX_PIN_OUTPUT}, // DVI PDn | ||
41 | {NULL, 0}, | ||
42 | }; | ||
43 | |||
44 | /* Module pin mux for Beagleboardtoys 3.5" LCD cape */ | ||
45 | static struct pinmux_config bbtoys35_pin_mux[] = { | ||
46 | + {"gpmc_a2.gpio1_18", OMAP_MUX_MODE7 | AM33XX_PIN_OUTPUT}, // USR0 LED | ||
47 | + {"gpmc_a3.gpio1_19", OMAP_MUX_MODE7 | AM33XX_PIN_OUTPUT}, // USR1 LED | ||
48 | {NULL, 0}, | ||
49 | }; | ||
50 | + | ||
51 | /* Module pin mux for Beagleboardtoys 7" LCD cape */ | ||
52 | static struct pinmux_config bbtoys7_pin_mux[] = { | ||
53 | {"ecap0_in_pwm0_out.gpio0_7", OMAP_MUX_MODE7 | AM33XX_PIN_OUTPUT}, // AVDD_EN | ||
54 | @@ -1018,6 +1022,7 @@ static struct pinmux_config lcd7_keys_pin_mux[] = { | ||
55 | {"gpmc_a3.gpio1_19", OMAP_MUX_MODE7 | AM33XX_PIN_INPUT}, | ||
56 | {"mcasp0_axr0.gpio3_16", OMAP_MUX_MODE7 | AM33XX_PIN_INPUT}, | ||
57 | {"mcasp0_fsr.gpio3_19", OMAP_MUX_MODE7 | AM33XX_PIN_INPUT}, | ||
58 | + {"gpmc_ben1.gpio1_28", OMAP_MUX_MODE7 | AM33XX_PIN_OUTPUT}, | ||
59 | {NULL, 0}, | ||
60 | }; | ||
61 | |||
62 | @@ -1327,6 +1332,94 @@ static struct platform_device dvi_leds_gpio = { | ||
63 | }, | ||
64 | }; | ||
65 | |||
66 | +#define BEAGLEBONELCD3_USR0_LED GPIO_TO_PIN(1, 18) | ||
67 | +#define BEAGLEBONELCD3_USR1_LED GPIO_TO_PIN(1, 19) | ||
68 | + | ||
69 | +static struct gpio_led lcd3_gpio_leds[] = { | ||
70 | + { | ||
71 | + .name = "beaglebone::usr0", | ||
72 | + .default_trigger = "heartbeat", | ||
73 | + .gpio = BEAGLEBONE_USR1_LED, | ||
74 | + }, | ||
75 | + { | ||
76 | + .name = "beaglebone::usr1", | ||
77 | + .default_trigger = "mmc0", | ||
78 | + .gpio = BEAGLEBONE_USR2_LED, | ||
79 | + }, | ||
80 | + { | ||
81 | + .name = "beaglebone::usr2", | ||
82 | + .gpio = BEAGLEBONE_USR3_LED, | ||
83 | + }, | ||
84 | + { | ||
85 | + .name = "beaglebone::usr3", | ||
86 | + .gpio = BEAGLEBONE_USR4_LED, | ||
87 | + }, | ||
88 | + { | ||
89 | + .name = "lcd3::usr0", | ||
90 | + .default_trigger = "heartbeat", | ||
91 | + .gpio = BEAGLEBONELCD3_USR0_LED, | ||
92 | + }, | ||
93 | + { | ||
94 | + .name = "lcd3::usr1", | ||
95 | + .default_trigger = "mmc0", | ||
96 | + .gpio = BEAGLEBONELCD3_USR1_LED, | ||
97 | + }, | ||
98 | +}; | ||
99 | + | ||
100 | +static struct gpio_led_platform_data lcd3_gpio_led_info = { | ||
101 | + .leds = lcd3_gpio_leds, | ||
102 | + .num_leds = ARRAY_SIZE(lcd3_gpio_leds), | ||
103 | +}; | ||
104 | + | ||
105 | +static struct platform_device lcd3_leds_gpio = { | ||
106 | + .name = "leds-gpio", | ||
107 | + .id = -1, | ||
108 | + .dev = { | ||
109 | + .platform_data = &lcd3_gpio_led_info, | ||
110 | + }, | ||
111 | +}; | ||
112 | + | ||
113 | +#define BEAGLEBONELCD7_USR_LED GPIO_TO_PIN(1, 28) | ||
114 | + | ||
115 | +static struct gpio_led lcd7_gpio_leds[] = { | ||
116 | + { | ||
117 | + .name = "beaglebone::usr0", | ||
118 | + .default_trigger = "heartbeat", | ||
119 | + .gpio = BEAGLEBONE_USR1_LED, | ||
120 | + }, | ||
121 | + { | ||
122 | + .name = "beaglebone::usr1", | ||
123 | + .default_trigger = "mmc0", | ||
124 | + .gpio = BEAGLEBONE_USR2_LED, | ||
125 | + }, | ||
126 | + { | ||
127 | + .name = "beaglebone::usr2", | ||
128 | + .gpio = BEAGLEBONE_USR3_LED, | ||
129 | + }, | ||
130 | + { | ||
131 | + .name = "beaglebone::usr3", | ||
132 | + .gpio = BEAGLEBONE_USR4_LED, | ||
133 | + }, | ||
134 | + { | ||
135 | + .name = "lcd7::usr", | ||
136 | + .default_trigger = "heartbeat", | ||
137 | + .gpio = BEAGLEBONELCD7_USR_LED, | ||
138 | + }, | ||
139 | +}; | ||
140 | + | ||
141 | +static struct gpio_led_platform_data lcd7_gpio_led_info = { | ||
142 | + .leds = lcd7_gpio_leds, | ||
143 | + .num_leds = ARRAY_SIZE(lcd7_gpio_leds), | ||
144 | +}; | ||
145 | + | ||
146 | +static struct platform_device lcd7_leds_gpio = { | ||
147 | + .name = "leds-gpio", | ||
148 | + .id = -1, | ||
149 | + .dev = { | ||
150 | + .platform_data = &lcd7_gpio_led_info, | ||
151 | + }, | ||
152 | +}; | ||
153 | + | ||
154 | static struct pinmux_config bone_pin_mux[] = { | ||
155 | /* User LED gpios (gpio1_21 to gpio1_24) */ | ||
156 | {"gpmc_a5.rgmii2_td0", OMAP_MUX_MODE7 | AM33XX_PIN_OUTPUT}, | ||
157 | @@ -1595,6 +1688,22 @@ static void dvileds_init(int evm_id, int profile ) | ||
158 | pr_err("failed to register BeagleBone DVI cape LEDS\n"); | ||
159 | } | ||
160 | |||
161 | +static void lcd3leds_init(int evm_id, int profile ) | ||
162 | +{ | ||
163 | + int err; | ||
164 | + err = platform_device_register(&lcd3_leds_gpio); | ||
165 | + if (err) | ||
166 | + pr_err("failed to register BeagleBone LCD cape LEDs\n"); | ||
167 | +} | ||
168 | + | ||
169 | +static void lcd7leds_init(int evm_id, int profile ) | ||
170 | +{ | ||
171 | + int err; | ||
172 | + err = platform_device_register(&lcd7_leds_gpio); | ||
173 | + if (err) | ||
174 | + pr_err("failed to register BeagleBone LCD cape LED\n"); | ||
175 | +} | ||
176 | + | ||
177 | static void bonew1_gpio_init(int evm_id, int profile ) | ||
178 | { | ||
179 | int err; | ||
180 | @@ -2102,10 +2211,15 @@ static void beaglebone_cape_setup(struct memory_accessor *mem_acc, void *context | ||
181 | ret = mem_acc->read(mem_acc, (char *)&cape_config, 0, sizeof(cape_config)); | ||
182 | if (ret != sizeof(cape_config)) { | ||
183 | pr_warning("BeagleBone cape EEPROM: could not read eeprom at address 0x%x\n", capecount + 0x53); | ||
184 | - if ((capecount > 3) && (beaglebone_tsadcpins_free == 1)) { | ||
185 | - pr_info("BeagleBone cape: exporting ADC pins to sysfs\n"); | ||
186 | - bone_tsc_init(0,0); | ||
187 | - beaglebone_tsadcpins_free = 0; | ||
188 | + if (capecount > 3) { | ||
189 | + if (beaglebone_tsadcpins_free == 1) { | ||
190 | + pr_info("BeagleBone cape: exporting ADC pins to sysfs\n"); | ||
191 | + bone_tsc_init(0,0); | ||
192 | + beaglebone_tsadcpins_free = 0; | ||
193 | + } | ||
194 | + if (beaglebone_leds_free == 1) { | ||
195 | + boneleds_init(0,0); | ||
196 | + } | ||
197 | } | ||
198 | return; | ||
199 | } | ||
200 | @@ -2127,6 +2241,9 @@ static void beaglebone_cape_setup(struct memory_accessor *mem_acc, void *context | ||
201 | if (!strncmp("BB-BONE-DVID-01", cape_config.partnumber, 15)) { | ||
202 | pr_info("BeagleBone cape: initializing DVI cape\n"); | ||
203 | |||
204 | + beaglebone_leds_free = 0; | ||
205 | + dvileds_init(0,0); | ||
206 | + | ||
207 | if (!strncmp("00A1", cape_config.version, 4) || !strncmp("000A", cape_config.version, 4)) { | ||
208 | pr_info("BeagleBone cape: DVI init for revision A1 or older\n"); | ||
209 | setup_pin_mux(dvia1_pin_mux); | ||
210 | @@ -2151,6 +2268,10 @@ static void beaglebone_cape_setup(struct memory_accessor *mem_acc, void *context | ||
211 | beaglebone_tsadcpins_free = 0; | ||
212 | pr_info("BeagleBone cape: Registering gpio-keys for LCD cape\n"); | ||
213 | beaglebone_lcd7_keys_init(0,0); | ||
214 | + | ||
215 | + // A1 or newer | ||
216 | + beaglebone_leds_free = 0; | ||
217 | + lcd7leds_init(0,0); | ||
218 | } | ||
219 | |||
220 | if (!strncmp("BB-BONE-LCD3-01", cape_config.partnumber, 15)) { | ||
221 | @@ -2161,6 +2282,8 @@ static void beaglebone_cape_setup(struct memory_accessor *mem_acc, void *context | ||
222 | beaglebone_tsadcpins_free = 0; | ||
223 | pr_info("BeagleBone cape: Registering gpio-keys for LCD cape\n"); | ||
224 | beaglebone_lcd3_keys_init(0,0); | ||
225 | + beaglebone_leds_free = 0; | ||
226 | + lcd3leds_init(0,0); | ||
227 | } | ||
228 | |||
229 | if (!strncmp("BB-BONE-VGA-01", cape_config.partnumber, 14)) { | ||
230 | @@ -2659,7 +2782,6 @@ static struct evm_dev_cfg beaglebone_dev_cfg[] = { | ||
231 | {usb1_init, DEV_ON_BASEBOARD, PROFILE_NONE}, | ||
232 | {i2c2_init, DEV_ON_BASEBOARD, PROFILE_NONE}, | ||
233 | {mmc0_init, DEV_ON_BASEBOARD, PROFILE_NONE}, | ||
234 | - {boneleds_init, DEV_ON_BASEBOARD, PROFILE_ALL}, | ||
235 | {bonew1_gpio_init, DEV_ON_BASEBOARD, PROFILE_ALL}, | ||
236 | {NULL, 0, 0}, | ||
237 | }; | ||
238 | -- | ||
239 | 1.7.7.6 | ||
240 | |||
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0036-Beaglebone-Fixed-compiletime-warnings.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0036-Beaglebone-Fixed-compiletime-warnings.patch new file mode 100644 index 00000000..8e82e1f7 --- /dev/null +++ b/recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0036-Beaglebone-Fixed-compiletime-warnings.patch | |||
@@ -0,0 +1,48 @@ | |||
1 | From 8688e4d9d9bdf1a9ff34b77b9a5b5ac22ca1c548 Mon Sep 17 00:00:00 2001 | ||
2 | From: Bas Laarhoven <sjml@xs4all.nl> | ||
3 | Date: Sun, 13 May 2012 18:06:24 +0200 | ||
4 | Subject: [PATCH 36/40] Beaglebone: Fixed compiletime warnings. | ||
5 | |||
6 | Signed-off-by: Bas Laarhoven <sjml@xs4all.nl> | ||
7 | --- | ||
8 | arch/arm/mach-omap2/board-am335xevm.c | 4 ++-- | ||
9 | 1 files changed, 2 insertions(+), 2 deletions(-) | ||
10 | |||
11 | diff --git a/arch/arm/mach-omap2/board-am335xevm.c b/arch/arm/mach-omap2/board-am335xevm.c | ||
12 | index 8db33b9..b48e0fd 100644 | ||
13 | --- a/arch/arm/mach-omap2/board-am335xevm.c | ||
14 | +++ b/arch/arm/mach-omap2/board-am335xevm.c | ||
15 | @@ -41,6 +41,7 @@ | ||
16 | #include <linux/opp.h> | ||
17 | #include <linux/w1-gpio.h> | ||
18 | #include <linux/can/platform/mcp251x.h> | ||
19 | +#include <linux/input/ti_tscadc.h> | ||
20 | |||
21 | /* LCD controller is similar to DA850 */ | ||
22 | #include <video/da8xx-fb.h> | ||
23 | @@ -300,7 +301,6 @@ struct da8xx_lcdc_platform_data dvi_pdata = { | ||
24 | }; | ||
25 | |||
26 | /* TSc controller */ | ||
27 | -#include <linux/input/ti_tscadc.h> | ||
28 | #include <linux/lis3lv02d.h> | ||
29 | |||
30 | /* TSc controller */ | ||
31 | @@ -2200,13 +2200,13 @@ static void tt3201_init(int evm_id, int profile) | ||
32 | } | ||
33 | static void beaglebone_cape_setup(struct memory_accessor *mem_acc, void *context) | ||
34 | { | ||
35 | - capecount++; | ||
36 | int ret; | ||
37 | char tmp[32]; | ||
38 | char name[32]; | ||
39 | char version[4]; | ||
40 | char manufacturer[32]; | ||
41 | |||
42 | + capecount++; | ||
43 | /* get cape specific data */ | ||
44 | ret = mem_acc->read(mem_acc, (char *)&cape_config, 0, sizeof(cape_config)); | ||
45 | if (ret != sizeof(cape_config)) { | ||
46 | -- | ||
47 | 1.7.7.6 | ||
48 | |||
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0037-Beaglebone-Added-missing-termination-record-to-bone_.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0037-Beaglebone-Added-missing-termination-record-to-bone_.patch new file mode 100644 index 00000000..dcef3aa9 --- /dev/null +++ b/recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0037-Beaglebone-Added-missing-termination-record-to-bone_.patch | |||
@@ -0,0 +1,26 @@ | |||
1 | From f1f19044cff0ac6a145c4f14782e4ddb78bb38cb Mon Sep 17 00:00:00 2001 | ||
2 | From: Bas Laarhoven <sjml@xs4all.nl> | ||
3 | Date: Sun, 13 May 2012 18:18:52 +0200 | ||
4 | Subject: [PATCH 37/40] Beaglebone: Added missing termination record to | ||
5 | bone_pin_mux data. | ||
6 | |||
7 | Signed-off-by: Bas Laarhoven <sjml@xs4all.nl> | ||
8 | --- | ||
9 | arch/arm/mach-omap2/board-am335xevm.c | 1 + | ||
10 | 1 files changed, 1 insertions(+), 0 deletions(-) | ||
11 | |||
12 | diff --git a/arch/arm/mach-omap2/board-am335xevm.c b/arch/arm/mach-omap2/board-am335xevm.c | ||
13 | index b48e0fd..7dbeac6 100644 | ||
14 | --- a/arch/arm/mach-omap2/board-am335xevm.c | ||
15 | +++ b/arch/arm/mach-omap2/board-am335xevm.c | ||
16 | @@ -1428,6 +1428,7 @@ static struct pinmux_config bone_pin_mux[] = { | ||
17 | {"gpmc_a8.rgmii2_rd3", OMAP_MUX_MODE7 | AM33XX_PIN_OUTPUT}, | ||
18 | /* Grounding gpio1_6 (pin 3 Conn A) signals bone tester to start diag tests */ | ||
19 | {"gpmc_ad6.gpio1_6", OMAP_MUX_MODE7 | AM33XX_PIN_INPUT_PULLUP}, | ||
20 | + {NULL, 0}, | ||
21 | }; | ||
22 | |||
23 | /* Module pin mux for eCAP0 */ | ||
24 | -- | ||
25 | 1.7.7.6 | ||
26 | |||
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0038-board-am335xevm.c-Beaglebone-expose-all-pwms-through.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0038-board-am335xevm.c-Beaglebone-expose-all-pwms-through.patch new file mode 100644 index 00000000..0607be32 --- /dev/null +++ b/recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0038-board-am335xevm.c-Beaglebone-expose-all-pwms-through.patch | |||
@@ -0,0 +1,58 @@ | |||
1 | From 557ed6bc4850bcb4610ff1b9e024a4fd13785c27 Mon Sep 17 00:00:00 2001 | ||
2 | From: Rob Kellett <r-kellett@ti.com> | ||
3 | Date: Mon, 14 May 2012 09:35:35 +0100 | ||
4 | Subject: [PATCH 38/40] board-am335xevm.c: Beaglebone - expose all pwms | ||
5 | through sysfs | ||
6 | |||
7 | --- | ||
8 | arch/arm/mach-omap2/board-am335xevm.c | 20 +++++++++++++++++++- | ||
9 | 1 files changed, 19 insertions(+), 1 deletions(-) | ||
10 | |||
11 | diff --git a/arch/arm/mach-omap2/board-am335xevm.c b/arch/arm/mach-omap2/board-am335xevm.c | ||
12 | index 7dbeac6..c9ee0a2 100644 | ||
13 | --- a/arch/arm/mach-omap2/board-am335xevm.c | ||
14 | +++ b/arch/arm/mach-omap2/board-am335xevm.c | ||
15 | @@ -1509,6 +1509,16 @@ static struct pwmss_platform_data pwm_pdata[3] = { | ||
16 | }, | ||
17 | }; | ||
18 | |||
19 | +static void register_all_pwms(void) | ||
20 | +{ | ||
21 | + am33xx_register_ehrpwm(0, &pwm_pdata[0]); | ||
22 | + am33xx_register_ehrpwm(1, &pwm_pdata[1]); | ||
23 | + am33xx_register_ehrpwm(2, &pwm_pdata[2]); | ||
24 | + am33xx_register_ecap(0, &pwm_pdata[0]); | ||
25 | + am33xx_register_ecap(1, &pwm_pdata[1]); | ||
26 | + am33xx_register_ecap(2, &pwm_pdata[2]); | ||
27 | +} | ||
28 | + | ||
29 | static int __init ecap0_init(void) | ||
30 | { | ||
31 | int status = 0; | ||
32 | @@ -1524,7 +1534,10 @@ late_initcall(ecap0_init); | ||
33 | static void enable_ehrpwm1(int evm_id, int profile) | ||
34 | { | ||
35 | ehrpwm_backlight_enable = true; | ||
36 | - am33xx_register_ehrpwm(1, &pwm_pdata[1]); | ||
37 | + /*am33xx_register_ehrpwm(1, &pwm_pdata[1]); | ||
38 | + *TODO:no longer required as we are registering | ||
39 | + *all pwms for the beaglebone | ||
40 | + */ | ||
41 | } | ||
42 | |||
43 | /* Setup pwm-backlight for bbtoys7lcd */ | ||
44 | @@ -2883,6 +2896,11 @@ static void setup_beaglebone(void) | ||
45 | |||
46 | /* Fill up global evmid */ | ||
47 | am33xx_evmid_fillup(BEAGLE_BONE_A3); | ||
48 | + | ||
49 | + /*TODO:We are registering all pwms for the beaglebone here | ||
50 | + *this may effect power management in the future | ||
51 | + */ | ||
52 | + register_all_pwms(); | ||
53 | } | ||
54 | |||
55 | |||
56 | -- | ||
57 | 1.7.7.6 | ||
58 | |||
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0039-ARM-OMAP-Mux-Fixed-debugfs-mux-output-always-reporti.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0039-ARM-OMAP-Mux-Fixed-debugfs-mux-output-always-reporti.patch new file mode 100644 index 00000000..7df5c205 --- /dev/null +++ b/recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0039-ARM-OMAP-Mux-Fixed-debugfs-mux-output-always-reporti.patch | |||
@@ -0,0 +1,99 @@ | |||
1 | From b8241eee030b29f23a5792de1eec03830699ae98 Mon Sep 17 00:00:00 2001 | ||
2 | From: Bas Laarhoven <sjml@xs4all.nl> | ||
3 | Date: Sun, 13 May 2012 18:09:57 +0200 | ||
4 | Subject: [PATCH 39/40] ARM: OMAP: Mux: Fixed debugfs mux output (always | ||
5 | reporting pins as output) | ||
6 | |||
7 | Signed-off-by: Bas Laarhoven <sjml@xs4all.nl> | ||
8 | Signed-off-by: Koen Kooi <koen@dominion.thruhere.net> | ||
9 | --- | ||
10 | arch/arm/mach-omap2/mux.c | 62 +++++++++++++++++++++++++++----------------- | ||
11 | 1 files changed, 38 insertions(+), 24 deletions(-) | ||
12 | |||
13 | diff --git a/arch/arm/mach-omap2/mux.c b/arch/arm/mach-omap2/mux.c | ||
14 | index e1cc75d..5899266 100644 | ||
15 | --- a/arch/arm/mach-omap2/mux.c | ||
16 | +++ b/arch/arm/mach-omap2/mux.c | ||
17 | @@ -522,41 +522,55 @@ static inline void omap_mux_decode(struct seq_file *s, u16 val) | ||
18 | i++; | ||
19 | flags[i] = mode; | ||
20 | |||
21 | - OMAP_MUX_TEST_FLAG(val, OMAP_PIN_OFF_WAKEUPENABLE); | ||
22 | - if (val & OMAP_OFF_EN) { | ||
23 | - if (!(val & OMAP_OFFOUT_EN)) { | ||
24 | - if (!(val & OMAP_OFF_PULL_UP)) { | ||
25 | - OMAP_MUX_TEST_FLAG(val, | ||
26 | - OMAP_PIN_OFF_INPUT_PULLDOWN); | ||
27 | + if (cpu_is_am33xx()) { | ||
28 | + if (val & AM33XX_INPUT_EN) { | ||
29 | + if (val & AM33XX_PULL_DISA) { | ||
30 | + flags[ ++i] = "OMAP_PIN_INPUT"; | ||
31 | + } else if (val & AM33XX_PULL_UP) { | ||
32 | + flags[ ++i] = "OMAP_PIN_INPUT_PULLUP"; | ||
33 | } else { | ||
34 | - OMAP_MUX_TEST_FLAG(val, | ||
35 | - OMAP_PIN_OFF_INPUT_PULLUP); | ||
36 | + flags[ ++i] = "OMAP_PIN_INPUT_PULLDOWN"; | ||
37 | } | ||
38 | } else { | ||
39 | - if (!(val & OMAP_OFFOUT_VAL)) { | ||
40 | - OMAP_MUX_TEST_FLAG(val, | ||
41 | - OMAP_PIN_OFF_OUTPUT_LOW); | ||
42 | + flags[ ++i] = "OMAP_PIN_OUTPUT"; | ||
43 | + } | ||
44 | + } else { | ||
45 | + OMAP_MUX_TEST_FLAG(val, OMAP_PIN_OFF_WAKEUPENABLE); | ||
46 | + if (val & OMAP_OFF_EN) { | ||
47 | + if (!(val & OMAP_OFFOUT_EN)) { | ||
48 | + if (!(val & OMAP_OFF_PULL_UP)) { | ||
49 | + OMAP_MUX_TEST_FLAG(val, | ||
50 | + OMAP_PIN_OFF_INPUT_PULLDOWN); | ||
51 | + } else { | ||
52 | + OMAP_MUX_TEST_FLAG(val, | ||
53 | + OMAP_PIN_OFF_INPUT_PULLUP); | ||
54 | + } | ||
55 | } else { | ||
56 | - OMAP_MUX_TEST_FLAG(val, | ||
57 | - OMAP_PIN_OFF_OUTPUT_HIGH); | ||
58 | + if (!(val & OMAP_OFFOUT_VAL)) { | ||
59 | + OMAP_MUX_TEST_FLAG(val, | ||
60 | + OMAP_PIN_OFF_OUTPUT_LOW); | ||
61 | + } else { | ||
62 | + OMAP_MUX_TEST_FLAG(val, | ||
63 | + OMAP_PIN_OFF_OUTPUT_HIGH); | ||
64 | + } | ||
65 | } | ||
66 | } | ||
67 | - } | ||
68 | |||
69 | - if (val & OMAP_INPUT_EN) { | ||
70 | - if (val & OMAP_PULL_ENA) { | ||
71 | - if (!(val & OMAP_PULL_UP)) { | ||
72 | - OMAP_MUX_TEST_FLAG(val, | ||
73 | - OMAP_PIN_INPUT_PULLDOWN); | ||
74 | + if (val & OMAP_INPUT_EN) { | ||
75 | + if (val & OMAP_PULL_ENA) { | ||
76 | + if (!(val & OMAP_PULL_UP)) { | ||
77 | + OMAP_MUX_TEST_FLAG(val, | ||
78 | + OMAP_PIN_INPUT_PULLDOWN); | ||
79 | + } else { | ||
80 | + OMAP_MUX_TEST_FLAG(val, OMAP_PIN_INPUT_PULLUP); | ||
81 | + } | ||
82 | } else { | ||
83 | - OMAP_MUX_TEST_FLAG(val, OMAP_PIN_INPUT_PULLUP); | ||
84 | + OMAP_MUX_TEST_FLAG(val, OMAP_PIN_INPUT); | ||
85 | } | ||
86 | } else { | ||
87 | - OMAP_MUX_TEST_FLAG(val, OMAP_PIN_INPUT); | ||
88 | + i++; | ||
89 | + flags[i] = "OMAP_PIN_OUTPUT"; | ||
90 | } | ||
91 | - } else { | ||
92 | - i++; | ||
93 | - flags[i] = "OMAP_PIN_OUTPUT"; | ||
94 | } | ||
95 | |||
96 | do { | ||
97 | -- | ||
98 | 1.7.7.6 | ||
99 | |||
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0040-beaglebone-export-SPI2-as-spidev-when-no-capes-are-u.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0040-beaglebone-export-SPI2-as-spidev-when-no-capes-are-u.patch new file mode 100644 index 00000000..4a004d7a --- /dev/null +++ b/recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0040-beaglebone-export-SPI2-as-spidev-when-no-capes-are-u.patch | |||
@@ -0,0 +1,83 @@ | |||
1 | From d4527038dac639f1066b529cbcc368de91d2f525 Mon Sep 17 00:00:00 2001 | ||
2 | From: Koen Kooi <koen@dominion.thruhere.net> | ||
3 | Date: Mon, 14 May 2012 14:23:45 +0200 | ||
4 | Subject: [PATCH 40/40] beaglebone: export SPI2 as spidev when no capes are | ||
5 | using SPI | ||
6 | |||
7 | Signed-off-by: Koen Kooi <koen@dominion.thruhere.net> | ||
8 | --- | ||
9 | arch/arm/mach-omap2/board-am335xevm.c | 25 +++++++++++++++++++++---- | ||
10 | 1 files changed, 21 insertions(+), 4 deletions(-) | ||
11 | |||
12 | diff --git a/arch/arm/mach-omap2/board-am335xevm.c b/arch/arm/mach-omap2/board-am335xevm.c | ||
13 | index c9ee0a2..a0fa53a 100644 | ||
14 | --- a/arch/arm/mach-omap2/board-am335xevm.c | ||
15 | +++ b/arch/arm/mach-omap2/board-am335xevm.c | ||
16 | @@ -497,6 +497,7 @@ static bool beaglebone_cape_detected; | ||
17 | static int capecount = 0; | ||
18 | static bool beaglebone_tsadcpins_free = 1; | ||
19 | static bool beaglebone_leds_free = 1; | ||
20 | +static bool beaglebone_spi1_free = 1; | ||
21 | |||
22 | |||
23 | #define GP_EVM_REV_IS_1_0 0x1 | ||
24 | @@ -1897,6 +1898,16 @@ static struct spi_board_info am335x_spi1_slave_info[] = { | ||
25 | }, | ||
26 | }; | ||
27 | |||
28 | +static struct spi_board_info bone_spidev2_info[] = { | ||
29 | + { | ||
30 | + .modalias = "spidev", | ||
31 | + .irq = -1, | ||
32 | + .max_speed_hz = 12000000, | ||
33 | + .bus_num = 2, | ||
34 | + .chip_select = 0, | ||
35 | + }, | ||
36 | +}; | ||
37 | + | ||
38 | static struct gpmc_timings am335x_nand_timings = { | ||
39 | .sync_clk = 0, | ||
40 | |||
41 | @@ -2199,8 +2210,9 @@ static struct spi_board_info tt3201_spi_info[] = { | ||
42 | |||
43 | static void tt3201_init(int evm_id, int profile) | ||
44 | { | ||
45 | - pr_info("TowerTech TT3201 CAN Cape\n"); | ||
46 | - | ||
47 | + pr_info("TowerTech TT3201 CAN cape\n"); | ||
48 | + | ||
49 | + beaglebone_spi1_free = 0; | ||
50 | setup_pin_mux(spi1_pin_mux); | ||
51 | setup_pin_mux(tt3201_pin_mux); | ||
52 | |||
53 | @@ -2234,12 +2246,18 @@ static void beaglebone_cape_setup(struct memory_accessor *mem_acc, void *context | ||
54 | if (beaglebone_leds_free == 1) { | ||
55 | boneleds_init(0,0); | ||
56 | } | ||
57 | + if(beaglebone_spi1_free == 1) { | ||
58 | + beaglebone_spi1_free = 0; | ||
59 | + pr_info("BeagleBone cape: exporting SPI pins as spidev\n"); | ||
60 | + setup_pin_mux(spi1_pin_mux); | ||
61 | + spi_register_board_info(bone_spidev2_info, ARRAY_SIZE(bone_spidev2_info)); | ||
62 | + } | ||
63 | } | ||
64 | return; | ||
65 | } | ||
66 | |||
67 | if (cape_config.header != AM335X_EEPROM_HEADER) { | ||
68 | - pr_warning("BeagleBone Cape EEPROM: wrong header 0x%x, expected 0x%x\n", | ||
69 | + pr_warning("BeagleBone cape EEPROM: wrong header 0x%x, expected 0x%x\n", | ||
70 | cape_config.header, AM335X_EEPROM_HEADER); | ||
71 | goto out; | ||
72 | } | ||
73 | @@ -2630,7 +2648,6 @@ static void spi1_init(int evm_id, int profile) | ||
74 | return; | ||
75 | } | ||
76 | |||
77 | - | ||
78 | static int beaglebone_phy_fixup(struct phy_device *phydev) | ||
79 | { | ||
80 | phydev->supported &= ~(SUPPORTED_100baseT_Half | | ||
81 | -- | ||
82 | 1.7.7.6 | ||
83 | |||
diff --git a/recipes-kernel/linux/linux-ti33x-psp_3.2.bb b/recipes-kernel/linux/linux-ti33x-psp_3.2.bb index 0f44a950..05772b4a 100644 --- a/recipes-kernel/linux/linux-ti33x-psp_3.2.bb +++ b/recipes-kernel/linux/linux-ti33x-psp_3.2.bb | |||
@@ -12,7 +12,7 @@ MULTI_CONFIG_BASE_SUFFIX = "" | |||
12 | 12 | ||
13 | BRANCH = "v3.2-staging" | 13 | BRANCH = "v3.2-staging" |
14 | SRCREV = "720e07b4c1f687b61b147b31c698cb6816d72f01" | 14 | SRCREV = "720e07b4c1f687b61b147b31c698cb6816d72f01" |
15 | MACHINE_KERNEL_PR_append = "h+gitr${SRCREV}" | 15 | MACHINE_KERNEL_PR_append = "i+gitr${SRCREV}" |
16 | 16 | ||
17 | COMPATIBLE_MACHINE = "(ti33x)" | 17 | COMPATIBLE_MACHINE = "(ti33x)" |
18 | 18 | ||
@@ -960,5 +960,12 @@ PATCHES_OVER_PSP = " \ | |||
960 | file://beaglebone/0031-beaglebone-fix-3.5-cape-support.patch \ | 960 | file://beaglebone/0031-beaglebone-fix-3.5-cape-support.patch \ |
961 | file://beaglebone/0032-beaglebone-connect-batterycape-GPIO-to-gpio-charger.patch \ | 961 | file://beaglebone/0032-beaglebone-connect-batterycape-GPIO-to-gpio-charger.patch \ |
962 | file://beaglebone/0033-beaglebone-add-support-for-CAN-and-RS232-cape.patch \ | 962 | file://beaglebone/0033-beaglebone-add-support-for-CAN-and-RS232-cape.patch \ |
963 | file://beaglebone/0034-beaglebone-add-support-for-DVI-rev.-A2-capes.patch \ | ||
964 | file://beaglebone/0035-beaglebone-enable-LEDs-for-DVI-LCD3-and-LCD7-capes.patch \ | ||
965 | file://beaglebone/0036-Beaglebone-Fixed-compiletime-warnings.patch \ | ||
966 | file://beaglebone/0037-Beaglebone-Added-missing-termination-record-to-bone_.patch \ | ||
967 | file://beaglebone/0038-board-am335xevm.c-Beaglebone-expose-all-pwms-through.patch \ | ||
968 | file://beaglebone/0039-ARM-OMAP-Mux-Fixed-debugfs-mux-output-always-reporti.patch \ | ||
969 | file://beaglebone/0040-beaglebone-export-SPI2-as-spidev-when-no-capes-are-u.patch \ | ||
963 | file://beaglebone/0001-arm-boot-compressed-default-asm-arch-to-armv7-a.patch \ | 970 | file://beaglebone/0001-arm-boot-compressed-default-asm-arch-to-armv7-a.patch \ |
964 | " | 971 | " |