[oe-commits] org.oe.dev linux-ezx 2.6.21: update to r2011:

koen commit openembedded-commits at lists.openembedded.org
Sat May 19 09:32:50 UTC 2007


linux-ezx 2.6.21: update to r2011:

r2011: call send_readurb on bp_rdy signal from BP to keep BP communication active
       add asoc pxa2xx-ssp.c driver from asoc-v0.13rc3
r2010: * pxa-kbd.patch: Fix pxakbd bug: direct keys were not passed to userspace
       * a780-kbd.patch: Cleanup keycodes definition for a780, use unique keycodes so
        to avoid the double event problem occurring when the same keycode is used more
        than once. 
r2003: core:	EZX subsystem
       ezx-phone.c file for each phone
                BP handshake code on a platform_driver (and another .patch)
       pm:      fully functional suspend/resume (except for BP)
                reboot/poweroff
       new:	a780 flip
                e680 lock switch
       bp:	Kconfig entry to disable BP handshake (the watchdog dont start if we dont try to handshake)
       other:	delete obsolete files

r2002: * Implement vibrator handling for a780 using the leds class.

r1999: * Port and readapt ezx-backlight patch. Let's use again the backlight class
         to handle lcd brightness.

r1998: * Port leds patches for A780 and E680 (we still pollute ezx.c for now)

Author: koen at openembedded.org
Branch: org.openembedded.dev
Revision: c4141972bf0803c8cbf12ad2060f15aa28335a89
ViewMTN: http://monotone.openembedded.org/revision.psp?id=c4141972bf0803c8cbf12ad2060f15aa28335a89
Files:
1
packages/linux/linux-ezx-2.6.21/a780-flip.patch
packages/linux/linux-ezx-2.6.21/a780-kbd.patch
packages/linux/linux-ezx-2.6.21/a780-leds.patch
packages/linux/linux-ezx-2.6.21/a780-mci.patch
packages/linux/linux-ezx-2.6.21/a780-vibrator.patch
packages/linux/linux-ezx-2.6.21/asoc-pxa-ssp.patch
packages/linux/linux-ezx-2.6.21/defconfig-e680
packages/linux/linux-ezx-2.6.21/e680-kbd.patch
packages/linux/linux-ezx-2.6.21/e680-leds.patch
packages/linux/linux-ezx-2.6.21/e680-locksw.patch
packages/linux/linux-ezx-2.6.21/e680-mci.patch
packages/linux/linux-ezx-2.6.21/ezx-backlight.patch
packages/linux/linux-ezx-2.6.21/ezx-bp.patch
packages/linux/linux-ezx-2.6.21/defconfig-a780
packages/linux/linux-ezx-2.6.21/ezx-core.patch
packages/linux/linux-ezx-2.6.21/ezx-emu.patch
packages/linux/linux-ezx-2.6.21/ezx-pcap.patch
packages/linux/linux-ezx-2.6.21/ezx-pm.patch
packages/linux/linux-ezx-2.6.21/mux_cli.patch
packages/linux/linux-ezx-2.6.21/pcap-ts.patch
packages/linux/linux-ezx-2.6.21/pxa-kbd.patch
packages/linux/linux-ezx_2.6.21.bb
Diffs:

#
# mt diff -r3fef9cf7de610a7331c8e29c4d7601b4e9ecefe3 -rc4141972bf0803c8cbf12ad2060f15aa28335a89
#
# 
# 
# add_file "packages/linux/linux-ezx-2.6.21/a780-flip.patch"
#  content [b7b5a0c570a6e32027112fa7fa11bff603f8e444]
# 
# add_file "packages/linux/linux-ezx-2.6.21/a780-kbd.patch"
#  content [7f318a9ed1a60a796f7d49a0f9922140ca49f054]
# 
# add_file "packages/linux/linux-ezx-2.6.21/a780-leds.patch"
#  content [8cfab98bdcadc3864f9d7d99f73a982b67518dc7]
# 
# add_file "packages/linux/linux-ezx-2.6.21/a780-mci.patch"
#  content [4d3745bf8c9712c810caa795fa387f02859b1909]
# 
# add_file "packages/linux/linux-ezx-2.6.21/a780-vibrator.patch"
#  content [712d0391f4a5f3dafc0feaca39b7c340d0695218]
# 
# add_file "packages/linux/linux-ezx-2.6.21/asoc-pxa-ssp.patch"
#  content [9db4415e11942ffb94911eea3de1ca4fc4ae35aa]
# 
# add_file "packages/linux/linux-ezx-2.6.21/defconfig-e680"
#  content [2e1d1c673f7a10ff74844a4befa5600fd47c65aa]
# 
# add_file "packages/linux/linux-ezx-2.6.21/e680-kbd.patch"
#  content [936ba491377a7c1d7ed2afc93f461a9028ff7414]
# 
# add_file "packages/linux/linux-ezx-2.6.21/e680-leds.patch"
#  content [ed7f512e720ba275b2017e625bfb51f2f2396efb]
# 
# add_file "packages/linux/linux-ezx-2.6.21/e680-locksw.patch"
#  content [7879917e2bf3721b71133c31684f7a296278e4fa]
# 
# add_file "packages/linux/linux-ezx-2.6.21/e680-mci.patch"
#  content [319278fe4c3c8af2234657a4a0caffe642055724]
# 
# add_file "packages/linux/linux-ezx-2.6.21/ezx-backlight.patch"
#  content [bd582a052ab3956a0eaf9f9c93c4eabb5e9e1890]
# 
# add_file "packages/linux/linux-ezx-2.6.21/ezx-bp.patch"
#  content [b3aad3f0eb6835c7c50620d4b420cc098117070b]
# 
# patch "packages/linux/linux-ezx-2.6.21/defconfig-a780"
#  from [70df3e67c48775275176735d14a69e2e2a0cca2c]
#    to [d88ee2c8c5a0e238ebf554d9cb8b068d5f1017d1]
# 
# patch "packages/linux/linux-ezx-2.6.21/ezx-core.patch"
#  from [d6b761dd82a50847bd497082b9601dd20b2b3d1f]
#    to [4c0576e93333cb76a8ca55bf4c095e2769d7ee8e]
# 
# patch "packages/linux/linux-ezx-2.6.21/ezx-emu.patch"
#  from [b3461a725a31f6a68c779713e0a33360971d9b8e]
#    to [aad930604477ae49c2c63a9abf235bea4f7ae60b]
# 
# patch "packages/linux/linux-ezx-2.6.21/ezx-pcap.patch"
#  from [09a019516a29d84c2533f0428ac2b7369bfd42d8]
#    to [80cd690bfbd17d16e414e4ec5d719c46ecdd127c]
# 
# patch "packages/linux/linux-ezx-2.6.21/ezx-pm.patch"
#  from [a1615bbfb9e66c87819cb0b0c4593249e25f8385]
#    to [41ff699ee46266e1b2e0ce0e40c47bebe13e3b98]
# 
# patch "packages/linux/linux-ezx-2.6.21/mux_cli.patch"
#  from [11c0d39de949aaceaa0f60f41654054a4b591a71]
#    to [ac75ec576facb8777645b0bbc4aed405621d3fc9]
# 
# patch "packages/linux/linux-ezx-2.6.21/pcap-ts.patch"
#  from [185e408ac6a558e4674efe114732535b6f9b6daa]
#    to [b37976006aa5cafa137b15fe3f36c9c803affdcc]
# 
# patch "packages/linux/linux-ezx-2.6.21/pxa-kbd.patch"
#  from [5930a7b94449efd11e7c9b72aef7d5a3edf83b69]
#    to [232d3185979e44041198bd484bbea3bd131edbc3]
# 
# patch "packages/linux/linux-ezx_2.6.21.bb"
#  from [b9764b63562521e065575110db1df56a35c04a88]
#    to [a0165eda03a84d4b929cebccbb94574bb7b38c28]
# 
============================================================
--- packages/linux/linux-ezx-2.6.21/a780-flip.patch	b7b5a0c570a6e32027112fa7fa11bff603f8e444
+++ packages/linux/linux-ezx-2.6.21/a780-flip.patch	b7b5a0c570a6e32027112fa7fa11bff603f8e444
@@ -0,0 +1,43 @@
+Index: linux-2.6.21/arch/arm/mach-pxa/ezx-a780.c
+===================================================================
+--- linux-2.6.21.orig/arch/arm/mach-pxa/ezx-a780.c	2007-05-08 13:23:57.000000000 -0300
++++ linux-2.6.21/arch/arm/mach-pxa/ezx-a780.c	2007-05-08 13:26:53.000000000 -0300
+@@ -17,6 +17,7 @@
+ #include <linux/mmc/host.h>
+ #include <linux/irq.h>
+ #include <linux/input.h>
++#include <linux/gpio_keys.h>
+ 
+ #include <asm/mach-types.h>
+ #include <asm/mach/arch.h>
+@@ -193,7 +194,30 @@
+        },
+ };
+ 
++static struct gpio_keys_button a780flip_buttons[] = {
++       [0] = {
++               .keycode        = KEY_SLEEP,
++               .gpio           = GPIO_FLIP_PIN,
++               .desc           = "A780 flip",
++       },
++};
++
++static struct gpio_keys_platform_data a780flip_platform_data = {
++       .buttons        = a780flip_buttons,
++       .nbuttons       = 1,
++};
++
++static struct platform_device a780flip_device = {
++       .name           = "gpio-keys",
++       .id             = -1,
++       .dev            = {
++               .platform_data  = &a780flip_platform_data,
++       },
++};
++
++
+ static struct platform_device *devices[] __initdata = {
++	&a780flip_device,
+ };
+ 
+ static void __init a780_init(void)
============================================================
--- packages/linux/linux-ezx-2.6.21/a780-kbd.patch	7f318a9ed1a60a796f7d49a0f9922140ca49f054
+++ packages/linux/linux-ezx-2.6.21/a780-kbd.patch	7f318a9ed1a60a796f7d49a0f9922140ca49f054
@@ -0,0 +1,90 @@
+Index: linux-2.6.21/arch/arm/mach-pxa/ezx-a780.c
+===================================================================
+--- linux-2.6.21.orig/arch/arm/mach-pxa/ezx-a780.c	2007-05-17 22:04:57.000000000 +0200
++++ linux-2.6.21/arch/arm/mach-pxa/ezx-a780.c	2007-05-17 22:05:05.000000000 +0200
+@@ -16,18 +16,21 @@
+ #include <linux/fb.h>
+ #include <linux/mmc/host.h>
+ #include <linux/irq.h>
++#include <linux/input.h>
+ 
+ #include <asm/mach-types.h>
+ #include <asm/mach/arch.h>
+ #include <asm/arch/pxa-regs.h>
+ #include <asm/arch/pxafb.h>
+ #include <asm/arch/mmc.h>
++#include <asm/arch/kbd.h>
+ 
+ #include "generic.h"
+ #include "ezx.h"
+ 
+ extern void ezx_lcd_power(int, struct fb_var_screeninfo *);
+ extern void ezx_backlight_power(int);
++extern void __init pxa_set_kbd_info(struct pxakbd_platform_data *);
+ 
+ #ifdef CONFIG_EZX_PCAP
+ extern int ezx_pcap_mmcsd_power(int);
+@@ -141,6 +144,55 @@
+ 	.pxafb_lcd_power = &ezx_lcd_power,
+ };
+ 
++static unsigned char a780_keycode[] = {
++       /* row 0 */
++       KEY_PHONE, KEY_MENU, KEY_CANCEL, KEY_PAGEUP, KEY_UP,
++       /* row 1 */
++       KEY_KP1, KEY_KP2, KEY_KP3, KEY_ENTER, KEY_KPENTER, /*center joypad */
++       /* row 2 */
++       KEY_KP4, KEY_KP5, KEY_KP6, KEY_RECORD, KEY_LEFT,
++       /* row 3 */
++       KEY_KP7, KEY_KP8, KEY_KP9, KEY_HOME, KEY_RIGHT,
++       /* row 4 */
++       KEY_KPASTERISK, KEY_KP0, KEY_KPDOT, KEY_PAGEDOWN, KEY_DOWN,
++};
++
++static unsigned char a780_direct_keycode[] = {
++       KEY_CAMERA,
++};
++
++static int a780_kbd_init(void)
++{
++       pxa_gpio_mode(93 | GPIO_ALT_FN_1_IN);   /* KP_DKIN<0>, voice_rec */
++       pxa_gpio_mode(97 | GPIO_ALT_FN_3_IN);   /* KP_MKIN<3> */
++       pxa_gpio_mode(98 | GPIO_ALT_FN_3_IN);   /* KP_MKIN<4> */
++       pxa_gpio_mode(100 | GPIO_ALT_FN_1_IN);  /* KP_MKIN<0> */
++       pxa_gpio_mode(101 | GPIO_ALT_FN_1_IN);  /* KP_MKIN<1> */
++       pxa_gpio_mode(102 | GPIO_ALT_FN_1_IN);  /* KP_MKIN<2> */
++       pxa_gpio_mode(103 | GPIO_ALT_FN_2_OUT); /* KP_MKOUT<0> */
++       pxa_gpio_mode(104 | GPIO_ALT_FN_2_OUT); /* KP_MKOUT<1> */
++       pxa_gpio_mode(105 | GPIO_ALT_FN_2_OUT); /* KP_MKOUT<2> */
++       pxa_gpio_mode(106 | GPIO_ALT_FN_2_OUT); /* KP_MKOUT<3> */
++       pxa_gpio_mode(107 | GPIO_ALT_FN_2_OUT); /* KP_MKOUT<4> */
++       PKWR = 0xec400;
++       PGSR3 |= 0xf80;
++       return 0;
++}
++
++static struct pxakbd_platform_data a780_kbd_platform_data = {
++       .init           = &a780_kbd_init,
++       .scan_interval  = HZ/40,
++       .matrix         = {
++               .keycode = a780_keycode,
++               .cols   = 5,
++               .rows   = 5,
++       },
++       .direct         = {
++               .keycode = a780_direct_keycode,
++               .num    = 1,
++       },
++};
++
+ static struct platform_device *devices[] __initdata = {
+ };
+ 
+@@ -159,6 +211,7 @@
+ 
+ 	set_pxa_fb_info(&a780_fb_info);
+ 	pxa_set_mci_info(&a780_mci_platform_data);
++	pxa_set_kbd_info(&a780_kbd_platform_data);
+ 
+         platform_add_devices(devices, ARRAY_SIZE(devices));
+ }
============================================================
--- packages/linux/linux-ezx-2.6.21/a780-leds.patch	8cfab98bdcadc3864f9d7d99f73a982b67518dc7
+++ packages/linux/linux-ezx-2.6.21/a780-leds.patch	8cfab98bdcadc3864f9d7d99f73a982b67518dc7
@@ -0,0 +1,181 @@
+
+#
+# Patch managed by http://www.mn-logistik.de/unsupported/pxa250/patcher
+#
+
+Index: linux-2.6.21/drivers/leds/Kconfig
+===================================================================
+--- linux-2.6.21.orig/drivers/leds/Kconfig	2007-05-08 04:09:08.000000000 -0300
++++ linux-2.6.21/drivers/leds/Kconfig	2007-05-08 14:09:03.000000000 -0300
+@@ -104,6 +104,13 @@
+ 	  These triggers allow kernel events to drive the LEDs and can
+ 	  be configured via sysfs. If unsure, say Y.
+ 
++config LEDS_A780
++	tristate "LED Support for the Motorola A780 GSM Phone"
++	depends LEDS_CLASS && PXA_EZX_A780
++	help
++	  This option enables support for the LEDs on the
++	  Motorola A780 GSM Phone.
++
+ config LEDS_TRIGGER_TIMER
+ 	tristate "LED Timer Trigger"
+ 	depends on LEDS_TRIGGERS
+Index: linux-2.6.21/drivers/leds/Makefile
+===================================================================
+--- linux-2.6.21.orig/drivers/leds/Makefile	2007-05-08 04:09:08.000000000 -0300
++++ linux-2.6.21/drivers/leds/Makefile	2007-05-08 14:09:03.000000000 -0300
+@@ -16,6 +16,7 @@
+ obj-$(CONFIG_LEDS_WRAP)			+= leds-wrap.o
+ obj-$(CONFIG_LEDS_H1940)		+= leds-h1940.o
+ obj-$(CONFIG_LEDS_COBALT)		+= leds-cobalt.o
++obj-$(CONFIG_LEDS_A780)		+= leds-a780.o
+ 
+ # LED Triggers
+ obj-$(CONFIG_LEDS_TRIGGER_TIMER)	+= ledtrig-timer.o
+Index: linux-2.6.21/drivers/leds/leds-a780.c
+===================================================================
+--- /dev/null	1970-01-01 00:00:00.000000000 +0000
++++ linux-2.6.21/drivers/leds/leds-a780.c	2007-05-08 14:09:03.000000000 -0300
+@@ -0,0 +1,122 @@
++/*
++ * EZX Platform LED Driver for the Motorola A780 GSM Phone
++ *
++ * Copyright 2006 Vanille-Media
++ *
++ * Author: Michael Lauer <mickey at Vanille.de>
++ *
++ * Based on keylight.c by Motorola and leds-corgi.c by Richard Purdie
++ *
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License version 2 as
++ * published by the Free Software Foundation.
++ *
++ */
++
++#include <linux/kernel.h>
++#include <linux/platform_device.h>
++#include <linux/leds.h>
++#include <asm/arch/ezx-pcap.h>
++
++static void a780led_main_set(struct led_classdev *led_cdev, enum led_brightness value)
++{
++	if ( value > 31 ) value = 31;
++	printk( KERN_DEBUG "a780led_main_set: %d\n", value );
++	ezx_pcap_bit_set(SSP_PCAP_ADJ_BIT_PERIPH_BL_CTRL0, value & 0x01);
++	ezx_pcap_bit_set(SSP_PCAP_ADJ_BIT_PERIPH_BL_CTRL1, value & 0x02);
++	ezx_pcap_bit_set(SSP_PCAP_ADJ_BIT_PERIPH_BL_CTRL2, value & 0x04);
++	ezx_pcap_bit_set(SSP_PCAP_ADJ_BIT_PERIPH_BL_CTRL3, value & 0x08);
++	ezx_pcap_bit_set(SSP_PCAP_ADJ_BIT_PERIPH_BL_CTRL4, value & 0x10);
++}
++
++static void a780led_aux_set(struct led_classdev *led_cdev, enum led_brightness value)
++{
++	if ( value > 31 ) value = 31;
++	printk( KERN_DEBUG "a780led_aux_set: %d\n", value );
++	ezx_pcap_bit_set(SSP_PCAP_ADJ_BIT_PERIPH_BL2_CTRL0, value & 0x01);
++	ezx_pcap_bit_set(SSP_PCAP_ADJ_BIT_PERIPH_BL2_CTRL1, value & 0x02);
++	ezx_pcap_bit_set(SSP_PCAP_ADJ_BIT_PERIPH_BL2_CTRL2, value & 0x04);
++	ezx_pcap_bit_set(SSP_PCAP_ADJ_BIT_PERIPH_BL2_CTRL3, value & 0x08);
++	ezx_pcap_bit_set(SSP_PCAP_ADJ_BIT_PERIPH_BL2_CTRL4, value & 0x10);
++}
++
++static struct led_classdev a780_main_led = {
++	.name			= "a780:main",
++	.default_trigger	= "none",
++	.brightness_set		= a780led_main_set,
++};
++
++static struct led_classdev a780_aux_led = {
++	.name			= "a780:aux",
++	.default_trigger	= "none",
++	.brightness_set		= a780led_aux_set,
++};
++
++#ifdef CONFIG_PM
++static int a780led_suspend(struct platform_device *dev, pm_message_t state)
++{
++	led_classdev_suspend(&a780_main_led);
++	led_classdev_suspend(&a780_aux_led);
++	return 0;
++}
++
++static int a780led_resume(struct platform_device *dev)
++{
++	led_classdev_resume(&a780_main_led);
++	led_classdev_resume(&a780_aux_led);
++	return 0;
++}
++#endif
++
++static int a780led_probe(struct platform_device *pdev)
++{
++	int ret;
++
++	ret = led_classdev_register(&pdev->dev, &a780_main_led);
++	if (ret < 0)
++		return ret;
++
++	ret = led_classdev_register(&pdev->dev, &a780_aux_led);
++	if (ret < 0)
++		led_classdev_unregister(&a780_main_led);
++
++	return ret;
++}
++
++static int a780led_remove(struct platform_device *pdev)
++{
++	led_classdev_unregister(&a780_main_led);
++	led_classdev_unregister(&a780_aux_led);
++	return 0;
++}
++
++static struct platform_driver a780led_driver = {
++	.probe		= a780led_probe,
++	.remove		= a780led_remove,
++#ifdef CONFIG_PM
++	.suspend	= a780led_suspend,
++	.resume		= a780led_resume,
++#endif
++	.driver		= {
++		.name		= "a780-led",
++	},
++};
++
++static int __init a780led_init(void)
++{
++	return platform_driver_register(&a780led_driver);
++}
++
++static void __exit a780led_exit(void)
++{
++	a780led_main_set( &a780_main_led, 0 );
++	a780led_aux_set( &a780_aux_led, 0 );
++	platform_driver_unregister(&a780led_driver);
++}
++
++module_init(a780led_init);
++module_exit(a780led_exit);
++
++MODULE_AUTHOR("Michael Lauer <mickey at Vanille.de>");
++MODULE_DESCRIPTION("Motorola A780 LED driver");
++MODULE_LICENSE("GPL");
+Index: linux-2.6.21/arch/arm/mach-pxa/ezx-a780.c
+===================================================================
+--- linux-2.6.21.orig/arch/arm/mach-pxa/ezx-a780.c	2007-05-08 14:09:13.000000000 -0300
++++ linux-2.6.21/arch/arm/mach-pxa/ezx-a780.c	2007-05-08 14:11:37.000000000 -0300
+@@ -215,9 +215,14 @@
+        },
+ };
+ 
++static struct platform_device a780led_device = {
++	.name		= "a780-led",
++	.id		= -1,
++};
+ 
+ static struct platform_device *devices[] __initdata = {
+ 	&a780flip_device,
++	&a780led_device,
+ };
+ 
+ static void __init a780_init(void)
============================================================
--- packages/linux/linux-ezx-2.6.21/a780-mci.patch	4d3745bf8c9712c810caa795fa387f02859b1909
+++ packages/linux/linux-ezx-2.6.21/a780-mci.patch	4d3745bf8c9712c810caa795fa387f02859b1909
@@ -0,0 +1,123 @@
+Index: linux-2.6.21/arch/arm/mach-pxa/ezx-a780.c
+===================================================================
+--- linux-2.6.21.orig/arch/arm/mach-pxa/ezx-a780.c	2007-05-08 03:46:17.000000000 -0300
++++ linux-2.6.21/arch/arm/mach-pxa/ezx-a780.c	2007-05-08 04:05:48.000000000 -0300
+@@ -14,11 +14,14 @@
+ #include <linux/init.h>
+ #include <linux/platform_device.h>
+ #include <linux/fb.h>
++#include <linux/mmc/host.h>
++#include <linux/irq.h>
+ 
+ #include <asm/mach-types.h>
+ #include <asm/mach/arch.h>
+ #include <asm/arch/pxa-regs.h>
+ #include <asm/arch/pxafb.h>
++#include <asm/arch/mmc.h>
+ 
+ #include "generic.h"
+ #include "ezx.h"
+@@ -26,6 +29,95 @@
+ extern void ezx_lcd_power(int, struct fb_var_screeninfo *);
+ extern void ezx_backlight_power(int);
+ 
++#ifdef CONFIG_EZX_PCAP
++extern int ezx_pcap_mmcsd_power(int);
++extern void ezx_pcap_mmcsd_voltage(u_int32_t);
++#else
++#define ezx_pcap_mmcsd_voltage(x) {}
++#define ezx_pcap_mmcsd_power(x) {}
++#endif
++
++static struct pxamci_platform_data a780_mci_platform_data;
++
++static u_int8_t mmc_voltage[] = {
++	[MMC_VDD_160] = 5,
++	[MMC_VDD_170] = 5,
++	[MMC_VDD_180] = 6,
++	[MMC_VDD_190] = 6,
++	[MMC_VDD_200] = 7,
++	[MMC_VDD_210] = 7,
++	[MMC_VDD_220] = 8,
++	[MMC_VDD_230] = 8,
++	[MMC_VDD_240] = 9,
++	[MMC_VDD_250] = 9,
++	[MMC_VDD_260] = 10,
++	[MMC_VDD_270] = 10,
++	[MMC_VDD_280] = 11,
++	[MMC_VDD_290] = 11,
++	[MMC_VDD_300] = 12,
++	[MMC_VDD_310] = 12,
++	[MMC_VDD_320] = 13,
++	[MMC_VDD_330] = 13,
++	[MMC_VDD_340] = 14,
++	[MMC_VDD_350] = 14,
++	[MMC_VDD_360] = 15,
++};
++
++static int a780_mci_init(struct device *dev,
++                       irqreturn_t (*ezx_detect_int)(int, void *),
++                       void *data)
++{
++       int err;
++
++       /* Setup GPIO for PXA27x MMC/SD controller */
++       pxa_gpio_mode(GPIO32_MMCCLK_MD);
++       pxa_gpio_mode(GPIO112_MMCCMD_MD);
++       pxa_gpio_mode(GPIO92_MMCDAT0_MD);
++       pxa_gpio_mode(GPIO109_MMCDAT1_MD);
++       pxa_gpio_mode(GPIO110_MMCDAT2_MD);
++       pxa_gpio_mode(GPIO111_MMCDAT3_MD);
++
++       ezx_pcap_mmcsd_power(1);
++
++       a780_mci_platform_data.detect_delay = msecs_to_jiffies(250);
++
++       err = request_irq(0x49, ezx_detect_int, SA_INTERRUPT,
++                       "MMC card detect", data);
++       if (err) {
++            %s
>>> DIFF TRUNCATED @ 16K






More information about the Openembedded-commits mailing list