[meta-ti] [PATCH] linux-ti33x-psp 3.2: updates

Koen Kooi koen at dominion.thruhere.net
Mon May 14 07:34:35 PDT 2012


* 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 at dominion.thruhere.net>
---
 ...glebone-add-support-for-DVI-rev.-A2-capes.patch |  242 ++++++++++++++++++++
 ...e-enable-LEDs-for-DVI-LCD3-and-LCD7-capes.patch |  240 +++++++++++++++++++
 ...036-Beaglebone-Fixed-compiletime-warnings.patch |   48 ++++
 ...Added-missing-termination-record-to-bone_.patch |   26 +++
 ...xevm.c-Beaglebone-expose-all-pwms-through.patch |   58 +++++
 ...x-Fixed-debugfs-mux-output-always-reporti.patch |   99 ++++++++
 ...export-SPI2-as-spidev-when-no-capes-are-u.patch |   83 +++++++
 recipes-kernel/linux/linux-ti33x-psp_3.2.bb        |    9 +-
 8 files changed, 804 insertions(+), 1 deletion(-)
 create mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0034-beaglebone-add-support-for-DVI-rev.-A2-capes.patch
 create mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0035-beaglebone-enable-LEDs-for-DVI-LCD3-and-LCD7-capes.patch
 create mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0036-Beaglebone-Fixed-compiletime-warnings.patch
 create mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0037-Beaglebone-Added-missing-termination-record-to-bone_.patch
 create mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0038-board-am335xevm.c-Beaglebone-expose-all-pwms-through.patch
 create mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0039-ARM-OMAP-Mux-Fixed-debugfs-mux-output-always-reporti.patch
 create mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0040-beaglebone-export-SPI2-as-spidev-when-no-capes-are-u.patch

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 0000000..cd04c5e
--- /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 @@
+From b97227a0f246edd115cba03d8509c2b7460a815b Mon Sep 17 00:00:00 2001
+From: Koen Kooi <koen at dominion.thruhere.net>
+Date: Thu, 19 Apr 2012 14:23:06 +0200
+Subject: [PATCH 34/40] beaglebone: add support for DVI rev. A2 capes
+
+Signed-off-by: Koen Kooi <koen at dominion.thruhere.net>
+---
+ arch/arm/mach-omap2/board-am335xevm.c |  150 ++++++++-------------------------
+ 1 files changed, 35 insertions(+), 115 deletions(-)
+
+diff --git a/arch/arm/mach-omap2/board-am335xevm.c b/arch/arm/mach-omap2/board-am335xevm.c
+index 6e7b203..e02c0b6 100644
+--- a/arch/arm/mach-omap2/board-am335xevm.c
++++ b/arch/arm/mach-omap2/board-am335xevm.c
+@@ -545,38 +545,6 @@ static struct pinmux_config batterycape_pin_mux[] = {
+ 	
+ /* Module pin mux for LCDC */
+ static struct pinmux_config lcdc_pin_mux[] = {
+-	{"lcd_data0.lcd_data0",		OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT
+-						       | AM33XX_PULL_DISA},
+-	{"lcd_data1.lcd_data1",		OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT
+-						       | AM33XX_PULL_DISA},
+-	{"lcd_data2.lcd_data2",		OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT
+-						       | AM33XX_PULL_DISA},
+-	{"lcd_data3.lcd_data3",		OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT
+-						       | AM33XX_PULL_DISA},
+-	{"lcd_data4.lcd_data4",		OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT
+-						       | AM33XX_PULL_DISA},
+-	{"lcd_data5.lcd_data5",		OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT
+-						       | AM33XX_PULL_DISA},
+-	{"lcd_data6.lcd_data6",		OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT
+-						       | AM33XX_PULL_DISA},
+-	{"lcd_data7.lcd_data7",		OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT
+-						       | AM33XX_PULL_DISA},
+-	{"lcd_data8.lcd_data8",		OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT
+-						       | AM33XX_PULL_DISA},
+-	{"lcd_data9.lcd_data9",		OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT
+-						       | AM33XX_PULL_DISA},
+-	{"lcd_data10.lcd_data10",	OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT
+-						       | AM33XX_PULL_DISA},
+-	{"lcd_data11.lcd_data11",	OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT
+-						       | AM33XX_PULL_DISA},
+-	{"lcd_data12.lcd_data12",	OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT
+-						       | AM33XX_PULL_DISA},
+-	{"lcd_data13.lcd_data13",	OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT
+-						       | AM33XX_PULL_DISA},
+-	{"lcd_data14.lcd_data14",	OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT
+-						       | AM33XX_PULL_DISA},
+-	{"lcd_data15.lcd_data15",	OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT
+-						       | AM33XX_PULL_DISA},
+ 	{"gpmc_ad8.lcd_data16",		OMAP_MUX_MODE1 | AM33XX_PIN_OUTPUT},
+ 	{"gpmc_ad9.lcd_data17",		OMAP_MUX_MODE1 | AM33XX_PIN_OUTPUT},
+ 	{"gpmc_ad10.lcd_data18",	OMAP_MUX_MODE1 | AM33XX_PIN_OUTPUT},
+@@ -585,15 +553,11 @@ static struct pinmux_config lcdc_pin_mux[] = {
+ 	{"gpmc_ad13.lcd_data21",	OMAP_MUX_MODE1 | AM33XX_PIN_OUTPUT},
+ 	{"gpmc_ad14.lcd_data22",	OMAP_MUX_MODE1 | AM33XX_PIN_OUTPUT},
+ 	{"gpmc_ad15.lcd_data23",	OMAP_MUX_MODE1 | AM33XX_PIN_OUTPUT},
+-	{"lcd_vsync.lcd_vsync",		OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT},
+-	{"lcd_hsync.lcd_hsync",		OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT},
+-	{"lcd_pclk.lcd_pclk",		OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT},
+-	{"lcd_ac_bias_en.lcd_ac_bias_en", OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT},
+ 	{NULL, 0},
+ };
+ 
+-/* Module pin mux for Beagleboardtoys DVI cape */
+-static struct pinmux_config dvi_pin_mux[] = {
++
++static struct pinmux_config lcdc16_pin_mux[] = {
+ 	{"lcd_data0.lcd_data0",		OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT
+         | AM33XX_PULL_DISA},
+ 	{"lcd_data1.lcd_data1",		OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT
+@@ -630,90 +594,31 @@ static struct pinmux_config dvi_pin_mux[] = {
+ 	{"lcd_hsync.lcd_hsync",		OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT},
+ 	{"lcd_pclk.lcd_pclk",		OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT},
+ 	{"lcd_ac_bias_en.lcd_ac_bias_en", OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT},
++	{NULL, 0},
++};
++
++
++/* Module pin mux for Beagleboardtoys DVI cape */
++static struct pinmux_config dvia1_pin_mux[] = {
+ 	{"gpmc_a2.rgmii2_td3", OMAP_MUX_MODE7 | AM33XX_PIN_OUTPUT}, // USR0 LED
+ 	{"gpmc_a3.rgmii2_td2", OMAP_MUX_MODE7 | AM33XX_PIN_OUTPUT}, // USR1 LED
+ 	{"gpmc_ad7.gpmc_ad7", OMAP_MUX_MODE7 | AM33XX_PIN_OUTPUT}, // DVI PDn
+ 	{NULL, 0},
+ };
+ 
++static struct pinmux_config dvia2_pin_mux[] = {
++	{"gpmc_a2.rgmii2_td3", OMAP_MUX_MODE7 | AM33XX_PIN_OUTPUT}, // USR0 LED
++	{"gpmc_a3.rgmii2_td2", OMAP_MUX_MODE7 | AM33XX_PIN_OUTPUT}, // USR1 LED
++	{"gpmc_csn2.gpio1_31", OMAP_MUX_MODE7 | AM33XX_PIN_OUTPUT}, // DVI PDn
++	{NULL, 0},
++};
++
+ /* Module pin mux for Beagleboardtoys 3.5" LCD cape */
+ static struct pinmux_config bbtoys35_pin_mux[] = {
+-	{"lcd_data0.lcd_data0",		OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT
+-		| AM33XX_PULL_DISA},
+-	{"lcd_data1.lcd_data1",		OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT
+-		| AM33XX_PULL_DISA},
+-	{"lcd_data2.lcd_data2",		OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT
+-		| AM33XX_PULL_DISA},
+-	{"lcd_data3.lcd_data3",		OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT
+-		| AM33XX_PULL_DISA},
+-	{"lcd_data4.lcd_data4",		OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT
+-		| AM33XX_PULL_DISA},
+-	{"lcd_data5.lcd_data5",		OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT
+-		| AM33XX_PULL_DISA},
+-	{"lcd_data6.lcd_data6",		OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT
+-		| AM33XX_PULL_DISA},
+-	{"lcd_data7.lcd_data7",		OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT
+-		| AM33XX_PULL_DISA},
+-	{"lcd_data8.lcd_data8",		OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT
+-		| AM33XX_PULL_DISA},
+-	{"lcd_data9.lcd_data9",		OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT
+-		| AM33XX_PULL_DISA},
+-	{"lcd_data10.lcd_data10",	OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT
+-		| AM33XX_PULL_DISA},
+-	{"lcd_data11.lcd_data11",	OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT
+-		| AM33XX_PULL_DISA},
+-	{"lcd_data12.lcd_data12",	OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT
+-		| AM33XX_PULL_DISA},
+-	{"lcd_data13.lcd_data13",	OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT
+-		| AM33XX_PULL_DISA},
+-	{"lcd_data14.lcd_data14",	OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT
+-		| AM33XX_PULL_DISA},
+-	{"lcd_data15.lcd_data15",	OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT
+-		| AM33XX_PULL_DISA},
+-	{"lcd_vsync.lcd_vsync",		OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT},
+-	{"lcd_hsync.lcd_hsync",		OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT},
+-	{"lcd_pclk.lcd_pclk",		OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT},
+-	{"lcd_ac_bias_en.lcd_ac_bias_en", OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT},
+ 	{NULL, 0},
+ };
+ /* Module pin mux for Beagleboardtoys 7" LCD cape */
+ static struct pinmux_config bbtoys7_pin_mux[] = {
+-	{"lcd_data0.lcd_data0",		OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT
+-		| AM33XX_PULL_DISA},
+-	{"lcd_data1.lcd_data1",		OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT
+-		| AM33XX_PULL_DISA},
+-	{"lcd_data2.lcd_data2",		OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT
+-		| AM33XX_PULL_DISA},
+-	{"lcd_data3.lcd_data3",		OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT
+-		| AM33XX_PULL_DISA},
+-	{"lcd_data4.lcd_data4",		OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT
+-		| AM33XX_PULL_DISA},
+-	{"lcd_data5.lcd_data5",		OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT
+-		| AM33XX_PULL_DISA},
+-	{"lcd_data6.lcd_data6",		OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT
+-		| AM33XX_PULL_DISA},
+-	{"lcd_data7.lcd_data7",		OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT
+-		| AM33XX_PULL_DISA},
+-	{"lcd_data8.lcd_data8",		OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT
+-		| AM33XX_PULL_DISA},
+-	{"lcd_data9.lcd_data9",		OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT
+-		| AM33XX_PULL_DISA},
+-	{"lcd_data10.lcd_data10",	OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT
+-		| AM33XX_PULL_DISA},
+-	{"lcd_data11.lcd_data11",	OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT
+-		| AM33XX_PULL_DISA},
+-	{"lcd_data12.lcd_data12",	OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT
+-		| AM33XX_PULL_DISA},
+-	{"lcd_data13.lcd_data13",	OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT
+-		| AM33XX_PULL_DISA},
+-	{"lcd_data14.lcd_data14",	OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT
+-		| AM33XX_PULL_DISA},
+-	{"lcd_data15.lcd_data15",	OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT
+-		| AM33XX_PULL_DISA},
+-	{"lcd_vsync.lcd_vsync",		OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT},
+-	{"lcd_hsync.lcd_hsync",		OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT},
+-	{"lcd_pclk.lcd_pclk",		OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT},
+-	{"lcd_ac_bias_en.lcd_ac_bias_en", OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT},
+ 	{"ecap0_in_pwm0_out.gpio0_7", OMAP_MUX_MODE7 | AM33XX_PIN_OUTPUT}, // AVDD_EN
+ 	{"gpmc_a2.ehrpwm1A", OMAP_MUX_MODE6 | AM33XX_PIN_OUTPUT}, // Backlight
+ 	{NULL, 0},
+@@ -1567,6 +1472,7 @@ out:
+ static void lcdc_init(int evm_id, int profile)
+ {
+ 
++	setup_pin_mux(lcdc16_pin_mux);
+ 	setup_pin_mux(lcdc_pin_mux);
+ 
+ 	if (conf_disp_pll(300000000)) {
+@@ -1584,6 +1490,7 @@ static void lcdc_init(int evm_id, int profile)
+ 
+ static void bbtoys7lcd_init(int evm_id, int profile)
+ {
++	setup_pin_mux(lcdc16_pin_mux);
+ 	setup_pin_mux(bbtoys7_pin_mux);
+ 	gpio_request(BEAGLEBONE_LCD_AVDD_EN, "BONE_LCD_AVDD_EN");
+ 	gpio_direction_output(BEAGLEBONE_LCD_AVDD_EN, 1);
+@@ -1603,6 +1510,7 @@ static void bbtoys7lcd_init(int evm_id, int profile)
+ 
+ static void bbtoys35lcd_init(int evm_id, int profile)
+ {
++	setup_pin_mux(lcdc16_pin_mux);
+ 	setup_pin_mux(bbtoys35_pin_mux);
+ 	
+ 	// we are being stupid and setting pixclock from here instead of da8xx-fb.c
+@@ -1618,13 +1526,12 @@ static void bbtoys35lcd_init(int evm_id, int profile)
+ 	return;
+ }
+ 
+-#define BEAGLEBONEDVI_PDn  GPIO_TO_PIN(1, 7)
++#define BEAGLEBONEDVI_PDn_A1  GPIO_TO_PIN(1, 7)
++#define BEAGLEBONEDVI_PDn_A2  GPIO_TO_PIN(1, 31)
+ 
+ static void dvi_init(int evm_id, int profile)
+ {
+-    setup_pin_mux(dvi_pin_mux);
+-	gpio_request(BEAGLEBONEDVI_PDn, "DVI_PDn");
+-	gpio_direction_output(BEAGLEBONEDVI_PDn, 1);
++	setup_pin_mux(lcdc16_pin_mux);
+ 
+ 	// we are being stupid and setting pixclock from here instead of da8xx-fb.c
+ 	if (conf_disp_pll(560000000)) {
+@@ -2218,8 +2125,21 @@ static void beaglebone_cape_setup(struct memory_accessor *mem_acc, void *context
+ 	pr_info("BeagleBone cape partnumber: %s\n", tmp);   
+ 
+ 	if (!strncmp("BB-BONE-DVID-01", cape_config.partnumber, 15)) {
+-			pr_info("BeagleBone cape: initializing DVI cape\n");
++		pr_info("BeagleBone cape: initializing DVI cape\n");
++		
++		if (!strncmp("00A1", cape_config.version, 4) || !strncmp("000A", cape_config.version, 4)) {
++			pr_info("BeagleBone cape: DVI init for revision A1 or older\n");
++			setup_pin_mux(dvia1_pin_mux);
++			gpio_request(BEAGLEBONEDVI_PDn_A1, "DVI_PDn");
++			gpio_direction_output(BEAGLEBONEDVI_PDn_A1, 1);
+ 			dvi_init(0,0);
++		} else {
++			pr_info("BeagleBone cape: DVI init for revision A2 or newer\n");
++			setup_pin_mux(dvia2_pin_mux);
++			gpio_request(BEAGLEBONEDVI_PDn_A2, "DVI_PDn");
++			gpio_direction_output(BEAGLEBONEDVI_PDn_A2, 1);
++			dvi_init(0,0);
++		}
+ 	}
+ 	if (!strncmp("BB-BONE-LCD7-01", cape_config.partnumber, 15)) {
+ 		pr_info("BeagleBone cape: initializing LCD cape\n");
+-- 
+1.7.7.6
+
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 0000000..f50bdf6
--- /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 @@
+From 080d90fddb1c39a5197b56b3aab0a7701adced75 Mon Sep 17 00:00:00 2001
+From: Koen Kooi <koen at dominion.thruhere.net>
+Date: Fri, 11 May 2012 13:08:24 +0200
+Subject: [PATCH 35/40] beaglebone: enable LEDs for DVI, LCD3 and LCD7 capes
+
+Signed-off-by: Koen Kooi <koen at dominion.thruhere.net>
+---
+ arch/arm/mach-omap2/board-am335xevm.c |  140 ++++++++++++++++++++++++++++++--
+ 1 files changed, 131 insertions(+), 9 deletions(-)
+
+diff --git a/arch/arm/mach-omap2/board-am335xevm.c b/arch/arm/mach-omap2/board-am335xevm.c
+index e02c0b6..8db33b9 100644
+--- a/arch/arm/mach-omap2/board-am335xevm.c
++++ b/arch/arm/mach-omap2/board-am335xevm.c
+@@ -496,6 +496,7 @@ static bool beaglebone_cape_detected;
+ /* keep track of ADC pin usage */
+ static int capecount = 0;
+ static bool beaglebone_tsadcpins_free = 1;
++static bool beaglebone_leds_free = 1;
+ 
+ 
+ #define GP_EVM_REV_IS_1_0		0x1
+@@ -600,23 +601,26 @@ static struct pinmux_config lcdc16_pin_mux[] = {
+ 
+ /* Module pin mux for Beagleboardtoys DVI cape */
+ static struct pinmux_config dvia1_pin_mux[] = {
+-	{"gpmc_a2.rgmii2_td3", OMAP_MUX_MODE7 | AM33XX_PIN_OUTPUT}, // USR0 LED
+-	{"gpmc_a3.rgmii2_td2", OMAP_MUX_MODE7 | AM33XX_PIN_OUTPUT}, // USR1 LED
++	{"gpmc_a2.gpio1_18", OMAP_MUX_MODE7 | AM33XX_PIN_OUTPUT}, // USR0 LED
++	{"gpmc_a3.gpio1_19", OMAP_MUX_MODE7 | AM33XX_PIN_OUTPUT}, // USR1 LED
+ 	{"gpmc_ad7.gpmc_ad7", OMAP_MUX_MODE7 | AM33XX_PIN_OUTPUT}, // DVI PDn
+ 	{NULL, 0},
+ };
+ 
+ static struct pinmux_config dvia2_pin_mux[] = {
+-	{"gpmc_a2.rgmii2_td3", OMAP_MUX_MODE7 | AM33XX_PIN_OUTPUT}, // USR0 LED
+-	{"gpmc_a3.rgmii2_td2", OMAP_MUX_MODE7 | AM33XX_PIN_OUTPUT}, // USR1 LED
++	{"gpmc_a2.gpio1_18", OMAP_MUX_MODE7 | AM33XX_PIN_OUTPUT}, // USR0 LED
++	{"gpmc_a3.gpio1_19", OMAP_MUX_MODE7 | AM33XX_PIN_OUTPUT}, // USR1 LED
+ 	{"gpmc_csn2.gpio1_31", OMAP_MUX_MODE7 | AM33XX_PIN_OUTPUT}, // DVI PDn
+ 	{NULL, 0},
+ };
+ 
+ /* Module pin mux for Beagleboardtoys 3.5" LCD cape */
+ static struct pinmux_config bbtoys35_pin_mux[] = {
++	{"gpmc_a2.gpio1_18", OMAP_MUX_MODE7 | AM33XX_PIN_OUTPUT}, // USR0 LED
++	{"gpmc_a3.gpio1_19", OMAP_MUX_MODE7 | AM33XX_PIN_OUTPUT}, // USR1 LED
+ 	{NULL, 0},
+ };
++
+ /* Module pin mux for Beagleboardtoys 7" LCD cape */
+ static struct pinmux_config bbtoys7_pin_mux[] = {
+ 	{"ecap0_in_pwm0_out.gpio0_7", OMAP_MUX_MODE7 | AM33XX_PIN_OUTPUT}, // AVDD_EN
+@@ -1018,6 +1022,7 @@ static struct pinmux_config lcd7_keys_pin_mux[] = {
+ 	{"gpmc_a3.gpio1_19",  OMAP_MUX_MODE7 | AM33XX_PIN_INPUT},
+ 	{"mcasp0_axr0.gpio3_16",    OMAP_MUX_MODE7 | AM33XX_PIN_INPUT},
+ 	{"mcasp0_fsr.gpio3_19",    OMAP_MUX_MODE7 | AM33XX_PIN_INPUT},
++	{"gpmc_ben1.gpio1_28",    OMAP_MUX_MODE7 | AM33XX_PIN_OUTPUT},
+ 	{NULL, 0},
+ };
+ 
+@@ -1327,6 +1332,94 @@ static struct platform_device dvi_leds_gpio = {
+ 	},
+ };
+ 
++#define BEAGLEBONELCD3_USR0_LED  GPIO_TO_PIN(1, 18)
++#define BEAGLEBONELCD3_USR1_LED  GPIO_TO_PIN(1, 19)
++
++static struct gpio_led lcd3_gpio_leds[] = {
++	{
++		.name			= "beaglebone::usr0",
++		.default_trigger	= "heartbeat",
++		.gpio			= BEAGLEBONE_USR1_LED,
++	},
++	{
++		.name			= "beaglebone::usr1",
++		.default_trigger	= "mmc0",
++		.gpio			= BEAGLEBONE_USR2_LED,
++	},
++	{
++		.name			= "beaglebone::usr2",
++		.gpio			= BEAGLEBONE_USR3_LED,
++	},
++	{
++		.name           = "beaglebone::usr3",
++		.gpio           = BEAGLEBONE_USR4_LED,
++	},
++	{
++		.name			= "lcd3::usr0",
++		.default_trigger	= "heartbeat",
++		.gpio			= BEAGLEBONELCD3_USR0_LED,
++	},
++	{
++		.name			= "lcd3::usr1",
++		.default_trigger	= "mmc0",
++		.gpio			= BEAGLEBONELCD3_USR1_LED,
++	},
++};
++
++static struct gpio_led_platform_data lcd3_gpio_led_info = {
++	.leds		= lcd3_gpio_leds,
++	.num_leds	= ARRAY_SIZE(lcd3_gpio_leds),
++};
++
++static struct platform_device lcd3_leds_gpio = {
++	.name	= "leds-gpio",
++	.id	= -1,
++	.dev	= {
++		.platform_data	= &lcd3_gpio_led_info,
++	},
++};
++
++#define BEAGLEBONELCD7_USR_LED  GPIO_TO_PIN(1, 28)
++
++static struct gpio_led lcd7_gpio_leds[] = {
++	{
++		.name			= "beaglebone::usr0",
++		.default_trigger	= "heartbeat",
++		.gpio			= BEAGLEBONE_USR1_LED,
++	},
++	{
++		.name			= "beaglebone::usr1",
++		.default_trigger	= "mmc0",
++		.gpio			= BEAGLEBONE_USR2_LED,
++	},
++	{
++		.name			= "beaglebone::usr2",
++		.gpio			= BEAGLEBONE_USR3_LED,
++	},
++	{
++		.name           = "beaglebone::usr3",
++		.gpio           = BEAGLEBONE_USR4_LED,
++	},
++	{
++		.name			= "lcd7::usr",
++		.default_trigger	= "heartbeat",
++		.gpio			= BEAGLEBONELCD7_USR_LED,
++	},
++};
++
++static struct gpio_led_platform_data lcd7_gpio_led_info = {
++	.leds		= lcd7_gpio_leds,
++	.num_leds	= ARRAY_SIZE(lcd7_gpio_leds),
++};
++
++static struct platform_device lcd7_leds_gpio = {
++	.name	= "leds-gpio",
++	.id	= -1,
++	.dev	= {
++		.platform_data	= &lcd7_gpio_led_info,
++	},
++};
++
+ static struct pinmux_config bone_pin_mux[] = {
+ 	/* User LED gpios (gpio1_21 to gpio1_24) */
+     {"gpmc_a5.rgmii2_td0", OMAP_MUX_MODE7 | AM33XX_PIN_OUTPUT},
+@@ -1595,6 +1688,22 @@ static void dvileds_init(int evm_id, int profile )
+ 		pr_err("failed to register BeagleBone DVI cape LEDS\n");
+ }
+ 
++static void lcd3leds_init(int evm_id, int profile )
++{
++	int err;
++	err = platform_device_register(&lcd3_leds_gpio);
++	if (err)
++		pr_err("failed to register BeagleBone LCD cape LEDs\n");
++}
++
++static void lcd7leds_init(int evm_id, int profile )
++{
++	int err;
++	err = platform_device_register(&lcd7_leds_gpio);
++	if (err)
++		pr_err("failed to register BeagleBone LCD cape LED\n");
++}
++
+ static void bonew1_gpio_init(int evm_id, int profile )
+ {
+ 	int err;
+@@ -2102,10 +2211,15 @@ static void beaglebone_cape_setup(struct memory_accessor *mem_acc, void *context
+ 	ret = mem_acc->read(mem_acc, (char *)&cape_config, 0, sizeof(cape_config));
+ 	if (ret != sizeof(cape_config)) {
+ 		pr_warning("BeagleBone cape EEPROM: could not read eeprom at address 0x%x\n", capecount + 0x53);
+-		if ((capecount > 3) && (beaglebone_tsadcpins_free == 1)) {
+-			pr_info("BeagleBone cape: exporting ADC pins to sysfs\n");
+-			bone_tsc_init(0,0);
+-			beaglebone_tsadcpins_free = 0;
++		if (capecount > 3) {
++			if (beaglebone_tsadcpins_free == 1) {
++				pr_info("BeagleBone cape: exporting ADC pins to sysfs\n");
++				bone_tsc_init(0,0);
++				beaglebone_tsadcpins_free = 0;
++			}
++			if (beaglebone_leds_free == 1) {
++				boneleds_init(0,0);
++			}
+ 		}
+ 		return;
+ 	}
+@@ -2127,6 +2241,9 @@ static void beaglebone_cape_setup(struct memory_accessor *mem_acc, void *context
+ 	if (!strncmp("BB-BONE-DVID-01", cape_config.partnumber, 15)) {
+ 		pr_info("BeagleBone cape: initializing DVI cape\n");
+ 		
++		beaglebone_leds_free = 0;
++		dvileds_init(0,0);
++		
+ 		if (!strncmp("00A1", cape_config.version, 4) || !strncmp("000A", cape_config.version, 4)) {
+ 			pr_info("BeagleBone cape: DVI init for revision A1 or older\n");
+ 			setup_pin_mux(dvia1_pin_mux);
+@@ -2151,6 +2268,10 @@ static void beaglebone_cape_setup(struct memory_accessor *mem_acc, void *context
+ 		beaglebone_tsadcpins_free = 0;
+ 		pr_info("BeagleBone cape: Registering gpio-keys for LCD cape\n");
+ 		beaglebone_lcd7_keys_init(0,0);
++		
++		// A1 or newer
++		beaglebone_leds_free = 0;
++		lcd7leds_init(0,0);
+ 	}
+ 	
+ 	if (!strncmp("BB-BONE-LCD3-01", cape_config.partnumber, 15)) {
+@@ -2161,6 +2282,8 @@ static void beaglebone_cape_setup(struct memory_accessor *mem_acc, void *context
+ 		beaglebone_tsadcpins_free = 0;
+ 		pr_info("BeagleBone cape: Registering gpio-keys for LCD cape\n");
+ 		beaglebone_lcd3_keys_init(0,0);
++		beaglebone_leds_free = 0;
++		lcd3leds_init(0,0);
+ 	}
+ 	
+ 	if (!strncmp("BB-BONE-VGA-01", cape_config.partnumber, 14)) {
+@@ -2659,7 +2782,6 @@ static struct evm_dev_cfg beaglebone_dev_cfg[] = {
+ 	{usb1_init,	DEV_ON_BASEBOARD, PROFILE_NONE},
+ 	{i2c2_init,	DEV_ON_BASEBOARD, PROFILE_NONE},
+ 	{mmc0_init,	DEV_ON_BASEBOARD, PROFILE_NONE},
+-	{boneleds_init,	DEV_ON_BASEBOARD, PROFILE_ALL},
+ 	{bonew1_gpio_init, DEV_ON_BASEBOARD, PROFILE_ALL},
+ 	{NULL, 0, 0},
+ };
+-- 
+1.7.7.6
+
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 0000000..8e82e1f
--- /dev/null
+++ b/recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0036-Beaglebone-Fixed-compiletime-warnings.patch
@@ -0,0 +1,48 @@
+From 8688e4d9d9bdf1a9ff34b77b9a5b5ac22ca1c548 Mon Sep 17 00:00:00 2001
+From: Bas Laarhoven <sjml at xs4all.nl>
+Date: Sun, 13 May 2012 18:06:24 +0200
+Subject: [PATCH 36/40] Beaglebone: Fixed compiletime warnings.
+
+Signed-off-by: Bas Laarhoven <sjml at xs4all.nl>
+---
+ arch/arm/mach-omap2/board-am335xevm.c |    4 ++--
+ 1 files changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/arch/arm/mach-omap2/board-am335xevm.c b/arch/arm/mach-omap2/board-am335xevm.c
+index 8db33b9..b48e0fd 100644
+--- a/arch/arm/mach-omap2/board-am335xevm.c
++++ b/arch/arm/mach-omap2/board-am335xevm.c
+@@ -41,6 +41,7 @@
+ #include <linux/opp.h>
+ #include <linux/w1-gpio.h>
+ #include <linux/can/platform/mcp251x.h>
++#include <linux/input/ti_tscadc.h>
+ 
+ /* LCD controller is similar to DA850 */
+ #include <video/da8xx-fb.h>
+@@ -300,7 +301,6 @@ struct da8xx_lcdc_platform_data dvi_pdata = {
+ };
+ 
+ /* TSc controller */
+-#include <linux/input/ti_tscadc.h>
+ #include <linux/lis3lv02d.h>
+ 
+ /* TSc controller */
+@@ -2200,13 +2200,13 @@ static void tt3201_init(int evm_id, int profile)
+ }
+ static void beaglebone_cape_setup(struct memory_accessor *mem_acc, void *context)
+ {
+-	capecount++;
+ 	int ret;
+ 	char tmp[32];
+ 	char name[32];
+ 	char version[4];
+ 	char manufacturer[32];
+ 
++	capecount++;
+ 	/* get cape specific data */
+ 	ret = mem_acc->read(mem_acc, (char *)&cape_config, 0, sizeof(cape_config));
+ 	if (ret != sizeof(cape_config)) {
+-- 
+1.7.7.6
+
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 0000000..dcef3aa
--- /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 @@
+From f1f19044cff0ac6a145c4f14782e4ddb78bb38cb Mon Sep 17 00:00:00 2001
+From: Bas Laarhoven <sjml at xs4all.nl>
+Date: Sun, 13 May 2012 18:18:52 +0200
+Subject: [PATCH 37/40] Beaglebone: Added missing termination record to
+ bone_pin_mux data.
+
+Signed-off-by: Bas Laarhoven <sjml at xs4all.nl>
+---
+ arch/arm/mach-omap2/board-am335xevm.c |    1 +
+ 1 files changed, 1 insertions(+), 0 deletions(-)
+
+diff --git a/arch/arm/mach-omap2/board-am335xevm.c b/arch/arm/mach-omap2/board-am335xevm.c
+index b48e0fd..7dbeac6 100644
+--- a/arch/arm/mach-omap2/board-am335xevm.c
++++ b/arch/arm/mach-omap2/board-am335xevm.c
+@@ -1428,6 +1428,7 @@ static struct pinmux_config bone_pin_mux[] = {
+     {"gpmc_a8.rgmii2_rd3", OMAP_MUX_MODE7 | AM33XX_PIN_OUTPUT},
+     /* Grounding gpio1_6 (pin 3 Conn A) signals bone tester to start diag tests */
+     {"gpmc_ad6.gpio1_6", OMAP_MUX_MODE7 | AM33XX_PIN_INPUT_PULLUP},
++	{NULL, 0},
+ };
+ 
+ /* Module pin mux for eCAP0 */
+-- 
+1.7.7.6
+
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 0000000..0607be3
--- /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 @@
+From 557ed6bc4850bcb4610ff1b9e024a4fd13785c27 Mon Sep 17 00:00:00 2001
+From: Rob Kellett <r-kellett at ti.com>
+Date: Mon, 14 May 2012 09:35:35 +0100
+Subject: [PATCH 38/40] board-am335xevm.c: Beaglebone - expose all pwms
+ through sysfs
+
+---
+ arch/arm/mach-omap2/board-am335xevm.c |   20 +++++++++++++++++++-
+ 1 files changed, 19 insertions(+), 1 deletions(-)
+
+diff --git a/arch/arm/mach-omap2/board-am335xevm.c b/arch/arm/mach-omap2/board-am335xevm.c
+index 7dbeac6..c9ee0a2 100644
+--- a/arch/arm/mach-omap2/board-am335xevm.c
++++ b/arch/arm/mach-omap2/board-am335xevm.c
+@@ -1509,6 +1509,16 @@ static struct pwmss_platform_data  pwm_pdata[3] = {
+ 	},
+ };
+ 
++static void register_all_pwms(void)
++{
++	am33xx_register_ehrpwm(0, &pwm_pdata[0]);
++	am33xx_register_ehrpwm(1, &pwm_pdata[1]);
++	am33xx_register_ehrpwm(2, &pwm_pdata[2]);
++	am33xx_register_ecap(0, &pwm_pdata[0]);
++	am33xx_register_ecap(1, &pwm_pdata[1]);
++	am33xx_register_ecap(2, &pwm_pdata[2]);
++}
++
+ static int __init ecap0_init(void)
+ {
+ 	int status = 0;
+@@ -1524,7 +1534,10 @@ late_initcall(ecap0_init);
+ static void enable_ehrpwm1(int evm_id, int profile)
+ {
+ 	ehrpwm_backlight_enable = true;
+-	am33xx_register_ehrpwm(1, &pwm_pdata[1]);
++	/*am33xx_register_ehrpwm(1, &pwm_pdata[1]);
++	 *TODO:no longer required as we are registering 
++	 *all pwms for the beaglebone
++	 */
+ }
+ 
+ /* Setup pwm-backlight for bbtoys7lcd */
+@@ -2883,6 +2896,11 @@ static void setup_beaglebone(void)
+ 
+ 	/* Fill up global evmid */
+ 	am33xx_evmid_fillup(BEAGLE_BONE_A3);
++
++	/*TODO:We are registering all pwms for the beaglebone here
++	 *this may effect power management in the future
++	 */
++	register_all_pwms();
+ }
+ 
+ 
+-- 
+1.7.7.6
+
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 0000000..7df5c20
--- /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 @@
+From b8241eee030b29f23a5792de1eec03830699ae98 Mon Sep 17 00:00:00 2001
+From: Bas Laarhoven <sjml at xs4all.nl>
+Date: Sun, 13 May 2012 18:09:57 +0200
+Subject: [PATCH 39/40] ARM: OMAP: Mux: Fixed debugfs mux output (always
+ reporting pins as output)
+
+Signed-off-by: Bas Laarhoven <sjml at xs4all.nl>
+Signed-off-by: Koen Kooi <koen at dominion.thruhere.net>
+---
+ arch/arm/mach-omap2/mux.c |   62 +++++++++++++++++++++++++++-----------------
+ 1 files changed, 38 insertions(+), 24 deletions(-)
+
+diff --git a/arch/arm/mach-omap2/mux.c b/arch/arm/mach-omap2/mux.c
+index e1cc75d..5899266 100644
+--- a/arch/arm/mach-omap2/mux.c
++++ b/arch/arm/mach-omap2/mux.c
+@@ -522,41 +522,55 @@ static inline void omap_mux_decode(struct seq_file *s, u16 val)
+ 	i++;
+ 	flags[i] = mode;
+ 
+-	OMAP_MUX_TEST_FLAG(val, OMAP_PIN_OFF_WAKEUPENABLE);
+-	if (val & OMAP_OFF_EN) {
+-		if (!(val & OMAP_OFFOUT_EN)) {
+-			if (!(val & OMAP_OFF_PULL_UP)) {
+-				OMAP_MUX_TEST_FLAG(val,
+-					OMAP_PIN_OFF_INPUT_PULLDOWN);
++	if (cpu_is_am33xx()) {
++		if (val & AM33XX_INPUT_EN) {
++			if (val & AM33XX_PULL_DISA) {
++				flags[ ++i] = "OMAP_PIN_INPUT";
++			} else if (val & AM33XX_PULL_UP) {
++				flags[ ++i] = "OMAP_PIN_INPUT_PULLUP";
+ 			} else {
+-				OMAP_MUX_TEST_FLAG(val,
+-					OMAP_PIN_OFF_INPUT_PULLUP);
++				flags[ ++i] = "OMAP_PIN_INPUT_PULLDOWN";
+ 			}
+ 		} else {
+-			if (!(val & OMAP_OFFOUT_VAL)) {
+-				OMAP_MUX_TEST_FLAG(val,
+-					OMAP_PIN_OFF_OUTPUT_LOW);
++			flags[ ++i] = "OMAP_PIN_OUTPUT";
++		}
++	} else {
++		OMAP_MUX_TEST_FLAG(val, OMAP_PIN_OFF_WAKEUPENABLE);
++		if (val & OMAP_OFF_EN) {
++			if (!(val & OMAP_OFFOUT_EN)) {
++				if (!(val & OMAP_OFF_PULL_UP)) {
++					OMAP_MUX_TEST_FLAG(val,
++							OMAP_PIN_OFF_INPUT_PULLDOWN);
++				} else {
++					OMAP_MUX_TEST_FLAG(val,
++							OMAP_PIN_OFF_INPUT_PULLUP);
++				}
+ 			} else {
+-				OMAP_MUX_TEST_FLAG(val,
+-					OMAP_PIN_OFF_OUTPUT_HIGH);
++				if (!(val & OMAP_OFFOUT_VAL)) {
++					OMAP_MUX_TEST_FLAG(val,
++							OMAP_PIN_OFF_OUTPUT_LOW);
++				} else {
++					OMAP_MUX_TEST_FLAG(val,
++							OMAP_PIN_OFF_OUTPUT_HIGH);
++				}
+ 			}
+ 		}
+-	}
+ 
+-	if (val & OMAP_INPUT_EN) {
+-		if (val & OMAP_PULL_ENA) {
+-			if (!(val & OMAP_PULL_UP)) {
+-				OMAP_MUX_TEST_FLAG(val,
+-					OMAP_PIN_INPUT_PULLDOWN);
++		if (val & OMAP_INPUT_EN) {
++			if (val & OMAP_PULL_ENA) {
++				if (!(val & OMAP_PULL_UP)) {
++					OMAP_MUX_TEST_FLAG(val,
++							OMAP_PIN_INPUT_PULLDOWN);
++				} else {
++					OMAP_MUX_TEST_FLAG(val, OMAP_PIN_INPUT_PULLUP);
++				}
+ 			} else {
+-				OMAP_MUX_TEST_FLAG(val, OMAP_PIN_INPUT_PULLUP);
++				OMAP_MUX_TEST_FLAG(val, OMAP_PIN_INPUT);
+ 			}
+ 		} else {
+-			OMAP_MUX_TEST_FLAG(val, OMAP_PIN_INPUT);
++			i++;
++			flags[i] = "OMAP_PIN_OUTPUT";
+ 		}
+-	} else {
+-		i++;
+-		flags[i] = "OMAP_PIN_OUTPUT";
+ 	}
+ 
+ 	do {
+-- 
+1.7.7.6
+
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 0000000..4a004d7
--- /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 @@
+From d4527038dac639f1066b529cbcc368de91d2f525 Mon Sep 17 00:00:00 2001
+From: Koen Kooi <koen at dominion.thruhere.net>
+Date: Mon, 14 May 2012 14:23:45 +0200
+Subject: [PATCH 40/40] beaglebone: export SPI2 as spidev when no capes are
+ using SPI
+
+Signed-off-by: Koen Kooi <koen at dominion.thruhere.net>
+---
+ arch/arm/mach-omap2/board-am335xevm.c |   25 +++++++++++++++++++++----
+ 1 files changed, 21 insertions(+), 4 deletions(-)
+
+diff --git a/arch/arm/mach-omap2/board-am335xevm.c b/arch/arm/mach-omap2/board-am335xevm.c
+index c9ee0a2..a0fa53a 100644
+--- a/arch/arm/mach-omap2/board-am335xevm.c
++++ b/arch/arm/mach-omap2/board-am335xevm.c
+@@ -497,6 +497,7 @@ static bool beaglebone_cape_detected;
+ static int capecount = 0;
+ static bool beaglebone_tsadcpins_free = 1;
+ static bool beaglebone_leds_free = 1;
++static bool beaglebone_spi1_free = 1;
+ 
+ 
+ #define GP_EVM_REV_IS_1_0		0x1
+@@ -1897,6 +1898,16 @@ static struct spi_board_info am335x_spi1_slave_info[] = {
+ 	},
+ };
+ 
++static struct spi_board_info bone_spidev2_info[] = {
++	{
++		.modalias      = "spidev",
++		.irq           = -1,
++		.max_speed_hz  = 12000000,
++		.bus_num       = 2,
++		.chip_select   = 0,
++	},
++};
++
+ static struct gpmc_timings am335x_nand_timings = {
+ 	.sync_clk = 0,
+ 
+@@ -2199,8 +2210,9 @@ static struct spi_board_info tt3201_spi_info[] = {
+ 
+ static void tt3201_init(int evm_id, int profile)
+ {
+-	pr_info("TowerTech TT3201 CAN Cape\n");
+-
++	pr_info("TowerTech TT3201 CAN cape\n");
++	
++	beaglebone_spi1_free = 0;
+ 	setup_pin_mux(spi1_pin_mux);
+ 	setup_pin_mux(tt3201_pin_mux);
+ 
+@@ -2234,12 +2246,18 @@ static void beaglebone_cape_setup(struct memory_accessor *mem_acc, void *context
+ 			if (beaglebone_leds_free == 1) {
+ 				boneleds_init(0,0);
+ 			}
++			if(beaglebone_spi1_free == 1) {
++				beaglebone_spi1_free = 0;
++				pr_info("BeagleBone cape: exporting SPI pins as spidev\n");
++				setup_pin_mux(spi1_pin_mux);
++				spi_register_board_info(bone_spidev2_info, ARRAY_SIZE(bone_spidev2_info));
++			}
+ 		}
+ 		return;
+ 	}
+ 
+ 	if (cape_config.header != AM335X_EEPROM_HEADER) {
+-		pr_warning("BeagleBone Cape EEPROM: wrong header 0x%x, expected 0x%x\n",
++		pr_warning("BeagleBone cape EEPROM: wrong header 0x%x, expected 0x%x\n",
+ 			cape_config.header, AM335X_EEPROM_HEADER);
+ 		goto out;
+ 	}
+@@ -2630,7 +2648,6 @@ static void spi1_init(int evm_id, int profile)
+ 	return;
+ }
+ 
+-
+ static int beaglebone_phy_fixup(struct phy_device *phydev)
+ {
+ 	phydev->supported &= ~(SUPPORTED_100baseT_Half |
+-- 
+1.7.7.6
+
diff --git a/recipes-kernel/linux/linux-ti33x-psp_3.2.bb b/recipes-kernel/linux/linux-ti33x-psp_3.2.bb
index 0f44a95..05772b4 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 = ""
 
 BRANCH = "v3.2-staging"
 SRCREV = "720e07b4c1f687b61b147b31c698cb6816d72f01"
-MACHINE_KERNEL_PR_append = "h+gitr${SRCREV}"
+MACHINE_KERNEL_PR_append = "i+gitr${SRCREV}"
 
 COMPATIBLE_MACHINE = "(ti33x)"
 
@@ -960,5 +960,12 @@ PATCHES_OVER_PSP = " \
 	file://beaglebone/0031-beaglebone-fix-3.5-cape-support.patch \
 	file://beaglebone/0032-beaglebone-connect-batterycape-GPIO-to-gpio-charger.patch \
 	file://beaglebone/0033-beaglebone-add-support-for-CAN-and-RS232-cape.patch \
+	file://beaglebone/0034-beaglebone-add-support-for-DVI-rev.-A2-capes.patch \
+	file://beaglebone/0035-beaglebone-enable-LEDs-for-DVI-LCD3-and-LCD7-capes.patch \
+	file://beaglebone/0036-Beaglebone-Fixed-compiletime-warnings.patch \
+	file://beaglebone/0037-Beaglebone-Added-missing-termination-record-to-bone_.patch \
+	file://beaglebone/0038-board-am335xevm.c-Beaglebone-expose-all-pwms-through.patch \
+	file://beaglebone/0039-ARM-OMAP-Mux-Fixed-debugfs-mux-output-always-reporti.patch \
+	file://beaglebone/0040-beaglebone-export-SPI2-as-spidev-when-no-capes-are-u.patch \
 	file://beaglebone/0001-arm-boot-compressed-default-asm-arch-to-armv7-a.patch \
 "
-- 
1.7.10




More information about the meta-ti mailing list