From 8f53db29b99e79f3e0e82bfc75a0a58741c9145b Mon Sep 17 00:00:00 2001 From: Koen Kooi Date: Fri, 4 May 2012 13:29:46 +0200 Subject: linux-ti335x-psp 3.2: add support for CAN, RS232 and Battery beaglebone capes Also change defconfig to prepare for audio support and fix lcd35 pinmux Signed-off-by: Koen Kooi Signed-off-by: Denys Dmytriyenko --- .../0033-beaglebone-fix-3.5-cape-support.patch | 73 +++++++++++++++++++ ...-connect-batterycape-GPIO-to-gpio-charger.patch | 84 ++++++++++++++++++++++ ...lebone-add-support-for-CAN-and-RS232-cape.patch | 67 +++++++++++++++++ .../linux/linux-ti33x-psp-3.2/beaglebone/defconfig | 21 +++--- recipes-kernel/linux/linux-ti33x-psp_3.2.bb | 5 +- 5 files changed, 238 insertions(+), 12 deletions(-) create mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0033-beaglebone-fix-3.5-cape-support.patch create mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0034-beaglebone-connect-batterycape-GPIO-to-gpio-charger.patch create mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0035-beaglebone-add-support-for-CAN-and-RS232-cape.patch (limited to 'recipes-kernel') diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0033-beaglebone-fix-3.5-cape-support.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0033-beaglebone-fix-3.5-cape-support.patch new file mode 100644 index 00000000..caee6fcf --- /dev/null +++ b/recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0033-beaglebone-fix-3.5-cape-support.patch @@ -0,0 +1,73 @@ +From d698dff8ded6583a447d81362534bacf77b8cbe5 Mon Sep 17 00:00:00 2001 +From: Koen Kooi +Date: Thu, 19 Apr 2012 14:33:53 +0200 +Subject: [PATCH 33/35] beaglebone: fix 3.5" cape support + +Signed-off-by: Koen Kooi +--- + arch/arm/mach-omap2/board-am335xevm.c | 42 ++++++++++++++++++++++++++++++++- + 1 files changed, 41 insertions(+), 1 deletions(-) + +diff --git a/arch/arm/mach-omap2/board-am335xevm.c b/arch/arm/mach-omap2/board-am335xevm.c +index 08a0425..7a4b766 100644 +--- a/arch/arm/mach-omap2/board-am335xevm.c ++++ b/arch/arm/mach-omap2/board-am335xevm.c +@@ -597,6 +597,46 @@ static struct pinmux_config dvi_pin_mux[] = { + {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 +@@ -1512,7 +1552,7 @@ static void bbtoys7lcd_init(int evm_id, int profile) + + static void bbtoys35lcd_init(int evm_id, int profile) + { +- setup_pin_mux(bbtoys7_pin_mux); ++ setup_pin_mux(bbtoys35_pin_mux); + + // we are being stupid and setting pixclock from here instead of da8xx-fb.c + if (conf_disp_pll(16000000)) { +-- +1.7.7.6 + diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0034-beaglebone-connect-batterycape-GPIO-to-gpio-charger.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0034-beaglebone-connect-batterycape-GPIO-to-gpio-charger.patch new file mode 100644 index 00000000..0a3c70ab --- /dev/null +++ b/recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0034-beaglebone-connect-batterycape-GPIO-to-gpio-charger.patch @@ -0,0 +1,84 @@ +From 759b49957081a1ccecf7302efc85c5141d00fe69 Mon Sep 17 00:00:00 2001 +From: Koen Kooi +Date: Wed, 25 Apr 2012 12:35:07 +0200 +Subject: [PATCH 34/35] beaglebone: connect batterycape GPIO to gpio-charger + +Signed-off-by: Koen Kooi +--- + arch/arm/mach-omap2/board-am335xevm.c | 46 ++++++++++++++++++++++++++++++++- + 1 files changed, 45 insertions(+), 1 deletions(-) + +diff --git a/arch/arm/mach-omap2/board-am335xevm.c b/arch/arm/mach-omap2/board-am335xevm.c +index 7a4b766..2bc9b14 100644 +--- a/arch/arm/mach-omap2/board-am335xevm.c ++++ b/arch/arm/mach-omap2/board-am335xevm.c +@@ -133,6 +133,36 @@ static const struct display_panel disp_panel = { + COLOR_ACTIVE, + }; + ++ ++#if defined(CONFIG_CHARGER_GPIO) ++ ++#include ++#include ++ ++/* charger */ ++static char *beaglebone_batteries[] = { ++ "battery", ++}; ++ ++static struct gpio_charger_platform_data beaglebone_charger_pdata = { ++ .name = "battery-cape", ++ .type = POWER_SUPPLY_TYPE_BATTERY, ++ .gpio = GPIO_TO_PIN(1,16), ++ .gpio_active_low = 0, ++ .supplied_to = beaglebone_batteries, ++ .num_supplicants = ARRAY_SIZE(beaglebone_batteries), ++}; ++ ++static struct platform_device beaglebone_charger_device = { ++ .name = "gpio-charger", ++ .dev = { ++ .platform_data = &beaglebone_charger_pdata, ++ }, ++}; ++ ++#endif /* gpio-charger */ ++ ++ + /* LCD backlight platform Data */ + #define AM335X_BACKLIGHT_MAX_BRIGHTNESS 100 + #define AM335X_BACKLIGHT_DEFAULT_BRIGHTNESS 50 +@@ -504,6 +534,13 @@ static struct pinmux_config haptics_pin_mux[] = { + {NULL, 0}, + }; + ++/* Module pin mux for battery cape */ ++static struct pinmux_config batterycape_pin_mux[] = { ++ {"gpmc_a0.gpio1_16", OMAP_MUX_MODE7 | AM33XX_PIN_INPUT}, ++ {NULL, 0}, ++}; ++ ++ + /* Module pin mux for LCDC */ + static struct pinmux_config lcdc_pin_mux[] = { + {"lcd_data0.lcd_data0", OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT +@@ -2201,7 +2238,14 @@ static void beaglebone_cape_setup(struct memory_accessor *mem_acc, void *context + pr_info("BeagleBone cape: initializing battery cape\n"); + // gpio1_6, P9_15 lowbat output + // AIN4, P9_33 vbat +- //foo_init(0,0); ++ setup_pin_mux(batterycape_pin_mux); ++ #if defined(CONFIG_CHARGER_GPIO) ++ int err; ++ err = platform_device_register(&beaglebone_charger_device); ++ if (err) ++ pr_err("failed to register BeagleBone battery cape gpio\n"); ++ ++ #endif + } + + if (!strncmp("BB-BONE-SERL", cape_config.partnumber, 12)) { +-- +1.7.7.6 + diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0035-beaglebone-add-support-for-CAN-and-RS232-cape.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0035-beaglebone-add-support-for-CAN-and-RS232-cape.patch new file mode 100644 index 00000000..caf5ad37 --- /dev/null +++ b/recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0035-beaglebone-add-support-for-CAN-and-RS232-cape.patch @@ -0,0 +1,67 @@ +From caa3254ea2054e6b5cf6a5c52002dfeba6aa3f4c Mon Sep 17 00:00:00 2001 +From: Koen Kooi +Date: Fri, 4 May 2012 13:19:45 +0200 +Subject: [PATCH 35/35] beaglebone: add support for CAN and RS232 cape + +Signed-off-by: Koen Kooi +--- + arch/arm/mach-omap2/board-am335xevm.c | 36 +++++++++++++++++++++++++++----- + 1 files changed, 30 insertions(+), 6 deletions(-) + +diff --git a/arch/arm/mach-omap2/board-am335xevm.c b/arch/arm/mach-omap2/board-am335xevm.c +index 2bc9b14..66d7613 100644 +--- a/arch/arm/mach-omap2/board-am335xevm.c ++++ b/arch/arm/mach-omap2/board-am335xevm.c +@@ -951,6 +951,18 @@ static struct pinmux_config tt3201_pin_mux[] = { + {NULL, 0}, + }; + ++static struct pinmux_config uart1dcan1_pin_mux[] = { ++ {"uart1_rxd.d_can1_tx", OMAP_MUX_MODE2 | AM33XX_PIN_OUTPUT }, ++ {"uart1_txd.d_can1_rx", OMAP_MUX_MODE2 | AM33XX_PIN_INPUT_PULLUP }, ++ {NULL, 0}, ++}; ++ ++static struct pinmux_config uart1_pin_mux[] = { ++ {"uart1_txd.uart1_txd", OMAP_MUX_MODE0 | AM33XX_PULL_ENBL}, ++ {"uart1_rxd.uart1_rxd", OMAP_MUX_MODE0 | AM33XX_PIN_INPUT_PULLUP}, ++ {NULL, 0}, ++}; ++ + /* Module pin mux for uart2 */ + static struct pinmux_config uart2_pin_mux[] = { + {"spi0_sclk.uart2_rxd", OMAP_MUX_MODE1 | AM33XX_SLEWCTRL_SLOW | +@@ -2248,12 +2260,24 @@ static void beaglebone_cape_setup(struct memory_accessor *mem_acc, void *context + #endif + } + +- if (!strncmp("BB-BONE-SERL", cape_config.partnumber, 12)) { +- pr_info("BeagleBone cape: initializing serial cape\n"); +- // 01 -> CAN +- // 02 -> Profibus +- // 03 -> RS232 +- // 04 -> RS485 ++ if (!strncmp("BB-BONE-SERL-01", cape_config.partnumber, 15)) { ++ pr_info("BeagleBone cape: initializing CAN cape\n"); ++ setup_pin_mux(uart1dcan1_pin_mux); ++ am33xx_d_can_init(1); ++ } ++ if (!strncmp("BB-BONE-SERL-02", cape_config.partnumber, 15)) { ++ pr_info("BeagleBone cape: not initializing Profibus cape\n"); ++ // gpio1_0 ++ // gpio1_4 ++ //foo_init(0,0); ++ } ++ if (!strncmp("BB-BONE-SERL-03", cape_config.partnumber, 15)) { ++ pr_info("BeagleBone cape: initializing RS232 cape\n"); ++ pr_info("BeagleBone cape: only uart1 is supported!\n"); ++ setup_pin_mux(uart1_pin_mux); ++ } ++ if (!strncmp("BB-BONE-SERL-04", cape_config.partnumber, 15)) { ++ pr_info("BeagleBone cape: not initializing RS485 cape\n"); + //foo_init(0,0); + } + +-- +1.7.7.6 + diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/defconfig b/recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/defconfig index 09128754..c5e447fc 100644 --- a/recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/defconfig +++ b/recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/defconfig @@ -1657,7 +1657,7 @@ CONFIG_W1_SLAVE_BQ27000=m CONFIG_POWER_SUPPLY=y # CONFIG_POWER_SUPPLY_DEBUG is not set # CONFIG_PDA_POWER is not set -# CONFIG_TEST_POWER is not set +CONFIG_TEST_POWER=m # CONFIG_BATTERY_DS2760 is not set # CONFIG_BATTERY_DS2780 is not set # CONFIG_BATTERY_DS2782 is not set @@ -1668,7 +1668,7 @@ CONFIG_POWER_SUPPLY=y # CONFIG_CHARGER_ISP1704 is not set # CONFIG_CHARGER_MAX8903 is not set # CONFIG_CHARGER_TWL4030 is not set -# CONFIG_CHARGER_GPIO is not set +CONFIG_CHARGER_GPIO=y CONFIG_HWMON=y CONFIG_HWMON_VID=m # CONFIG_HWMON_DEBUG_CHIP is not set @@ -1858,19 +1858,19 @@ CONFIG_REGULATOR=y # CONFIG_REGULATOR_DEBUG is not set CONFIG_REGULATOR_DUMMY=y CONFIG_REGULATOR_FIXED_VOLTAGE=y -CONFIG_REGULATOR_VIRTUAL_CONSUMER=y -CONFIG_REGULATOR_USERSPACE_CONSUMER=y +# CONFIG_REGULATOR_VIRTUAL_CONSUMER is not set +# CONFIG_REGULATOR_USERSPACE_CONSUMER is not set CONFIG_REGULATOR_GPIO=y # CONFIG_REGULATOR_BQ24022 is not set # CONFIG_REGULATOR_MAX1586 is not set # CONFIG_REGULATOR_MAX8649 is not set # CONFIG_REGULATOR_MAX8660 is not set # CONFIG_REGULATOR_MAX8952 is not set -CONFIG_REGULATOR_TWL4030=y +# CONFIG_REGULATOR_TWL4030 is not set # CONFIG_REGULATOR_LP3971 is not set # CONFIG_REGULATOR_LP3972 is not set -CONFIG_REGULATOR_TPS65023=y -CONFIG_REGULATOR_TPS6507X=y +# CONFIG_REGULATOR_TPS65023 is not set +# CONFIG_REGULATOR_TPS6507X is not set CONFIG_REGULATOR_TPS65217=y # CONFIG_REGULATOR_ISL6271A is not set # CONFIG_REGULATOR_AD5398 is not set @@ -2452,12 +2452,12 @@ CONFIG_SND_USB_AUDIO=y CONFIG_SND_SOC=y # CONFIG_SND_SOC_CACHE_LZO is not set CONFIG_SND_AM33XX_SOC=y -CONFIG_SND_DAVINCI_SOC_MCASP=m -CONFIG_SND_AM335X_SOC_EVM=m +CONFIG_SND_DAVINCI_SOC_MCASP=y +CONFIG_SND_AM335X_SOC_EVM=y # CONFIG_SND_OMAP_SOC is not set CONFIG_SND_SOC_I2C_AND_SPI=y # CONFIG_SND_SOC_ALL_CODECS is not set -CONFIG_SND_SOC_TLV320AIC3X=m +CONFIG_SND_SOC_TLV320AIC3X=y # CONFIG_SOUND_PRIME is not set CONFIG_HID_SUPPORT=y CONFIG_HID=y @@ -2764,7 +2764,6 @@ CONFIG_USB_G_WEBCAM=m CONFIG_USB_OTG_UTILS=y # CONFIG_USB_GPIO_VBUS is not set # CONFIG_USB_ULPI is not set -# CONFIG_TWL4030_USB is not set # CONFIG_TWL6030_USB is not set CONFIG_NOP_USB_XCEIV=y CONFIG_MMC=y diff --git a/recipes-kernel/linux/linux-ti33x-psp_3.2.bb b/recipes-kernel/linux/linux-ti33x-psp_3.2.bb index 70dd7be7..954e5cad 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 = "0d0567b6c1a61a374120b985559768077c511a6d" -MACHINE_KERNEL_PR_append = "a+gitr${SRCREV}" +MACHINE_KERNEL_PR_append = "c+gitr${SRCREV}" COMPATIBLE_MACHINE = "(ti33x)" @@ -956,4 +956,7 @@ PATCHES_OVER_PSP = " \ file://beaglebone/0030-beaglebone-don-t-compare-undefined-characters-it-mak.patch \ file://beaglebone/0031-omap2-irq-process-all-4-irq-banks-for-am335x.patch \ file://beaglebone/0032-omap2-irqs.h-increase-number-or-irq-banks.patch \ + file://beaglebone/0033-beaglebone-fix-3.5-cape-support.patch \ + file://beaglebone/0034-beaglebone-connect-batterycape-GPIO-to-gpio-charger.patch \ + file://beaglebone/0035-beaglebone-add-support-for-CAN-and-RS232-cape.patch \ " -- cgit v1.2.3-54-g00ecf