[pkg-fso-commits] [SCM] linux-2.6-openmoko, the Linux 2.6 kernel tree from Openmoko branch, andy-tracking, updated. upstream/20090303.gitb9de904e-140-g23b564c
Andy Green
agreen at octopus.localdomain
Mon Jun 8 17:29:13 UTC 2009
The following commit has been merged in the andy-tracking branch:
commit 8abd8da00e63041abebd852772257658a0691832
Author: Matt Hsu <matt_hsu at openmoko.org>
Date: Sat Mar 7 07:38:38 2009 +0000
Add concurrent solution of supporting l1k002 and jbt6k74 (LCM ASIC device) for 3d7k.
By parsing kernel command, 3d7k can probe two different LCM driver accordingly.
The default attached LCM device is l1k002, if you wanna to use jbt6k74, you don't
need to re-compile the kernel. Just add one option om_3d7k_lcm=jbt6k74 in
boot/append-OM_3D7K in rootfs.
Signed-off-by: Matt Hsu <matt_hsu at openmoko.org>
diff --git a/arch/arm/mach-s3c6410/mach-om-3d7k.c b/arch/arm/mach-s3c6410/mach-om-3d7k.c
index 54697da..1f684fe 100644
--- a/arch/arm/mach-s3c6410/mach-om-3d7k.c
+++ b/arch/arm/mach-s3c6410/mach-om-3d7k.c
@@ -35,6 +35,7 @@
#include <linux/pcap7200.h>
#include <linux/bq27000_battery.h>
#include <linux/hdq.h>
+#include <linux/jbt6k74.h>
#include <video/platform_lcd.h>
@@ -1072,6 +1073,27 @@ static struct spi_board_info om_3d7k_spi_board_info[] = {
},
};
+static void om_3d7k_jbt6k74_probe_completed(struct device *dev)
+{
+ dev_info(dev, "device attached\n");
+}
+
+const struct jbt6k74_platform_data jbt6k74_pdata = {
+ .probe_completed = om_3d7k_jbt6k74_probe_completed,
+};
+
+static struct spi_board_info alt_om_3d7k_spi_board_info[] = {
+ {
+ .modalias = "jbt6k74",
+ .platform_data = &jbt6k74_pdata,
+ /* controller_data */
+ /* irq */
+ .max_speed_hz = 100 * 1000,
+ .bus_num = 1,
+ /* chip_select */
+ },
+};
+
static void spi_gpio_cs(struct s3c64xx_spigpio_info *spi, int csidx, int cs)
{
switch (cs) {
@@ -1101,11 +1123,16 @@ struct platform_device om_3d7k_device_spi_lcm = {
},
};
+static int attached_lcm;
+static int __init om3d7k_lcm_probe(char *s)
+{
+ if (!strcmp(s, "jbt6k74"))
+ attached_lcm = 1;
-
-
-
+ return 1;
+}
+__setup("om_3d7k_lcm=", om3d7k_lcm_probe);
extern void s3c64xx_init_io(struct map_desc *, int);
@@ -1132,8 +1159,11 @@ static void __init om_3d7k_machine_init(void)
i2c_register_board_info(0, om_3d7k_i2c_devs,
ARRAY_SIZE(om_3d7k_i2c_devs));
-
- spi_register_board_info(om_3d7k_spi_board_info,
+ if (attached_lcm)
+ spi_register_board_info(alt_om_3d7k_spi_board_info,
+ ARRAY_SIZE(alt_om_3d7k_spi_board_info));
+ else
+ spi_register_board_info(om_3d7k_spi_board_info,
ARRAY_SIZE(om_3d7k_spi_board_info));
platform_add_devices(om_3d7k_devices, ARRAY_SIZE(om_3d7k_devices));
--
linux-2.6-openmoko, the Linux 2.6 kernel tree from Openmoko
More information about the pkg-fso-commits
mailing list