aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm/mach-omap2/board-4430sdp.c
diff options
context:
space:
mode:
authorTakashi Iwai <tiwai@suse.de>2012-03-05 09:07:33 -0500
committerTakashi Iwai <tiwai@suse.de>2012-03-05 09:07:33 -0500
commit650d6e25cde82fda425995ba77ed4b0ad3be5b8d (patch)
tree44ed9829a0b1797d4eea907aa1ed68273f7e3692 /arch/arm/mach-omap2/board-4430sdp.c
parent6b21ed851624a03f11ea9ed3f229f56419e03686 (diff)
parentad20ff920c1fd217578e2c637dd50c1878a21c06 (diff)
Merge tag 'asoc-3.4' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound into topic/asoc
This has been a very active release for ASoC, as well as the usual raft of bugfixes and driver updates there's quite a few framework enhancements. Most are either small or are laying the groundwork for user visible features (especially dynamic PCM), the most directly visible change is the dmaengine library. There's also a bunch of regmap API enhancements pulled into the tree so that either the framework or drivers can take advantage of the new features. Changes include: - Support for widgets not associated with a CODEC, an important part of the dynamic PCM framework. - A library factoring out the common code shared by dmaengine based DMA drivers contributed by Lars-Peter Clausen. This will save a lot of code and make it much easier to deploy enhancements to dmaengine. - Support for binary controls, used for providing runtime configuration of algorithm coefficients. - A new DAPM widget type for regulator supplies allowing drivers for devices that can power down unused supplies while active to do without any per-driver code. - DAPM widgets for DAIs, initially giving a speed boost for playback startup and shutdown and also the basis for CODEC<->CODEC DAI link support. - Support for specifying the number of significant bits on audio interfaces, useful for allowing applications to know how much effort to put into generating data for a larger sample format. - Conversion of the FSI driver used on some SH processors to DMAEngine. - New CODEC drivers for Maxim MAX9768 and Wolfson Microelectronics WM2200.
Diffstat (limited to 'arch/arm/mach-omap2/board-4430sdp.c')
-rw-r--r--arch/arm/mach-omap2/board-4430sdp.c35
1 files changed, 25 insertions, 10 deletions
diff --git a/arch/arm/mach-omap2/board-4430sdp.c b/arch/arm/mach-omap2/board-4430sdp.c
index 7eaeb0806e28..90c76d340fb3 100644
--- a/arch/arm/mach-omap2/board-4430sdp.c
+++ b/arch/arm/mach-omap2/board-4430sdp.c
@@ -53,8 +53,9 @@
53#define ETH_KS8851_QUART 138 53#define ETH_KS8851_QUART 138
54#define OMAP4_SFH7741_SENSOR_OUTPUT_GPIO 184 54#define OMAP4_SFH7741_SENSOR_OUTPUT_GPIO 184
55#define OMAP4_SFH7741_ENABLE_GPIO 188 55#define OMAP4_SFH7741_ENABLE_GPIO 188
56#define HDMI_GPIO_HPD 60 /* Hot plug pin for HDMI */ 56#define HDMI_GPIO_CT_CP_HPD 60 /* HPD mode enable/disable */
57#define HDMI_GPIO_LS_OE 41 /* Level shifter for HDMI */ 57#define HDMI_GPIO_LS_OE 41 /* Level shifter for HDMI */
58#define HDMI_GPIO_HPD 63 /* Hotplug detect */
58#define DISPLAY_SEL_GPIO 59 /* LCD2/PicoDLP switch */ 59#define DISPLAY_SEL_GPIO 59 /* LCD2/PicoDLP switch */
59#define DLP_POWER_ON_GPIO 40 60#define DLP_POWER_ON_GPIO 40
60 61
@@ -632,8 +633,9 @@ static void __init omap_sfh7741prox_init(void)
632} 633}
633 634
634static struct gpio sdp4430_hdmi_gpios[] = { 635static struct gpio sdp4430_hdmi_gpios[] = {
635 { HDMI_GPIO_HPD, GPIOF_OUT_INIT_HIGH, "hdmi_gpio_hpd" }, 636 { HDMI_GPIO_CT_CP_HPD, GPIOF_OUT_INIT_HIGH, "hdmi_gpio_ct_cp_hpd" },
636 { HDMI_GPIO_LS_OE, GPIOF_OUT_INIT_HIGH, "hdmi_gpio_ls_oe" }, 637 { HDMI_GPIO_LS_OE, GPIOF_OUT_INIT_HIGH, "hdmi_gpio_ls_oe" },
638 { HDMI_GPIO_HPD, GPIOF_DIR_IN, "hdmi_gpio_hpd" },
637}; 639};
638 640
639static int sdp4430_panel_enable_hdmi(struct omap_dss_device *dssdev) 641static int sdp4430_panel_enable_hdmi(struct omap_dss_device *dssdev)
@@ -650,8 +652,7 @@ static int sdp4430_panel_enable_hdmi(struct omap_dss_device *dssdev)
650 652
651static void sdp4430_panel_disable_hdmi(struct omap_dss_device *dssdev) 653static void sdp4430_panel_disable_hdmi(struct omap_dss_device *dssdev)
652{ 654{
653 gpio_free(HDMI_GPIO_LS_OE); 655 gpio_free_array(sdp4430_hdmi_gpios, ARRAY_SIZE(sdp4430_hdmi_gpios));
654 gpio_free(HDMI_GPIO_HPD);
655} 656}
656 657
657static struct nokia_dsi_panel_data dsi1_panel = { 658static struct nokia_dsi_panel_data dsi1_panel = {
@@ -767,6 +768,10 @@ static void sdp4430_lcd_init(void)
767 pr_err("%s: Could not get lcd2_reset_gpio\n", __func__); 768 pr_err("%s: Could not get lcd2_reset_gpio\n", __func__);
768} 769}
769 770
771static struct omap_dss_hdmi_data sdp4430_hdmi_data = {
772 .hpd_gpio = HDMI_GPIO_HPD,
773};
774
770static struct omap_dss_device sdp4430_hdmi_device = { 775static struct omap_dss_device sdp4430_hdmi_device = {
771 .name = "hdmi", 776 .name = "hdmi",
772 .driver_name = "hdmi_panel", 777 .driver_name = "hdmi_panel",
@@ -774,6 +779,7 @@ static struct omap_dss_device sdp4430_hdmi_device = {
774 .platform_enable = sdp4430_panel_enable_hdmi, 779 .platform_enable = sdp4430_panel_enable_hdmi,
775 .platform_disable = sdp4430_panel_disable_hdmi, 780 .platform_disable = sdp4430_panel_disable_hdmi,
776 .channel = OMAP_DSS_CHANNEL_DIGIT, 781 .channel = OMAP_DSS_CHANNEL_DIGIT,
782 .data = &sdp4430_hdmi_data,
777}; 783};
778 784
779static struct picodlp_panel_data sdp4430_picodlp_pdata = { 785static struct picodlp_panel_data sdp4430_picodlp_pdata = {
@@ -837,7 +843,7 @@ static struct omap_dss_board_info sdp4430_dss_data = {
837 .default_device = &sdp4430_lcd_device, 843 .default_device = &sdp4430_lcd_device,
838}; 844};
839 845
840static void omap_4430sdp_display_init(void) 846static void __init omap_4430sdp_display_init(void)
841{ 847{
842 int r; 848 int r;
843 849
@@ -858,6 +864,10 @@ static void omap_4430sdp_display_init(void)
858 omap_hdmi_init(OMAP_HDMI_SDA_SCL_EXTERNAL_PULLUP); 864 omap_hdmi_init(OMAP_HDMI_SDA_SCL_EXTERNAL_PULLUP);
859 else 865 else
860 omap_hdmi_init(0); 866 omap_hdmi_init(0);
867
868 omap_mux_init_gpio(HDMI_GPIO_LS_OE, OMAP_PIN_OUTPUT);
869 omap_mux_init_gpio(HDMI_GPIO_CT_CP_HPD, OMAP_PIN_OUTPUT);
870 omap_mux_init_gpio(HDMI_GPIO_HPD, OMAP_PIN_INPUT_PULLDOWN);
861} 871}
862 872
863#ifdef CONFIG_OMAP_MUX 873#ifdef CONFIG_OMAP_MUX
@@ -870,7 +880,7 @@ static struct omap_board_mux board_mux[] __initdata = {
870#define board_mux NULL 880#define board_mux NULL
871 #endif 881 #endif
872 882
873static void omap4_sdp4430_wifi_mux_init(void) 883static void __init omap4_sdp4430_wifi_mux_init(void)
874{ 884{
875 omap_mux_init_gpio(GPIO_WIFI_IRQ, OMAP_PIN_INPUT | 885 omap_mux_init_gpio(GPIO_WIFI_IRQ, OMAP_PIN_INPUT |
876 OMAP_PIN_OFF_WAKEUPENABLE); 886 OMAP_PIN_OFF_WAKEUPENABLE);
@@ -897,12 +907,17 @@ static struct wl12xx_platform_data omap4_sdp4430_wlan_data __initdata = {
897 .board_tcxo_clock = WL12XX_TCXOCLOCK_26, 907 .board_tcxo_clock = WL12XX_TCXOCLOCK_26,
898}; 908};
899 909
900static void omap4_sdp4430_wifi_init(void) 910static void __init omap4_sdp4430_wifi_init(void)
901{ 911{
912 int ret;
913
902 omap4_sdp4430_wifi_mux_init(); 914 omap4_sdp4430_wifi_mux_init();
903 if (wl12xx_set_platform_data(&omap4_sdp4430_wlan_data)) 915 ret = wl12xx_set_platform_data(&omap4_sdp4430_wlan_data);
904 pr_err("Error setting wl12xx data\n"); 916 if (ret)
905 platform_device_register(&omap_vwlan_device); 917 pr_err("Error setting wl12xx data: %d\n", ret);
918 ret = platform_device_register(&omap_vwlan_device);
919 if (ret)
920 pr_err("Error registering wl12xx device: %d\n", ret);
906} 921}
907 922
908static void __init omap_4430sdp_init(void) 923static void __init omap_4430sdp_init(void)