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 | " |
