|
From: <mar...@us...> - 2007-09-21 00:12:32
|
Revision: 1332
http://hackndev.svn.sourceforge.net/hackndev/?rev=1332&view=rev
Author: marex_z71
Date: 2007-09-20 17:12:29 -0700 (Thu, 20 Sep 2007)
Log Message:
-----------
PalmLD: add general lcd border driver and migrate palmld to it
Modified Paths:
--------------
linux4palm/linux/trunk/arch/arm/mach-pxa/palmld/Kconfig
linux4palm/linux/trunk/arch/arm/mach-pxa/palmld/Makefile
linux4palm/linux/trunk/arch/arm/mach-pxa/palmld/palmld.c
linux4palm/linux/trunk/drivers/misc/Kconfig
linux4palm/linux/trunk/drivers/misc/Makefile
Added Paths:
-----------
linux4palm/linux/trunk/drivers/misc/palmlcd_border.c
linux4palm/linux/trunk/include/asm-arm/arch-pxa/palmlcd-border.h
Removed Paths:
-------------
linux4palm/linux/trunk/arch/arm/mach-pxa/palmld/palmld_border.c
Modified: linux4palm/linux/trunk/arch/arm/mach-pxa/palmld/Kconfig
===================================================================
--- linux4palm/linux/trunk/arch/arm/mach-pxa/palmld/Kconfig 2007-09-17 20:13:33 UTC (rev 1331)
+++ linux4palm/linux/trunk/arch/arm/mach-pxa/palmld/Kconfig 2007-09-21 00:12:29 UTC (rev 1332)
@@ -34,9 +34,3 @@
default y if MACH_XSCALE_PALMLD
help
Enable support for suspend/resume the PalmOne LifeDrive PDA.
-
-config PALMLD_BORDER
- tristate "Palm LifeDrive Display border switch"
- depends on MACH_XSCALE_PALMLD
- help
- Enable support for turning LCD border on/off
Modified: linux4palm/linux/trunk/arch/arm/mach-pxa/palmld/Makefile
===================================================================
--- linux4palm/linux/trunk/arch/arm/mach-pxa/palmld/Makefile 2007-09-17 20:13:33 UTC (rev 1331)
+++ linux4palm/linux/trunk/arch/arm/mach-pxa/palmld/Makefile 2007-09-21 00:12:29 UTC (rev 1332)
@@ -7,4 +7,3 @@
obj-$(CONFIG_PALMLD_IDE) += palmld_ide.o
obj-$(CONFIG_PALMLD_PM) += palmld_pm.o
obj-$(CONFIG_PALMLD_BATTERY) += palmld_battery.o
-obj-$(CONFIG_PALMLD_BORDER) += palmld_border.o
Modified: linux4palm/linux/trunk/arch/arm/mach-pxa/palmld/palmld.c
===================================================================
--- linux4palm/linux/trunk/arch/arm/mach-pxa/palmld/palmld.c 2007-09-17 20:13:33 UTC (rev 1331)
+++ linux4palm/linux/trunk/arch/arm/mach-pxa/palmld/palmld.c 2007-09-21 00:12:29 UTC (rev 1332)
@@ -34,6 +34,7 @@
#include <asm/arch/pxa27x_keyboard.h>
#include <asm/arch/pxa-pm_ll.h>
#include <asm/arch/serial.h>
+#include <asm/arch/palmlcd-border.h>
#include <sound/driver.h>
#include <sound/core.h>
@@ -215,9 +216,17 @@
/*********************************************************
* LCD Border
*********************************************************/
+static struct palmlcd_border_pdata border_machinfo = {
+ .select_gpio = GPIO_NR_PALMLD_BORDER_SELECT,
+ .switch_gpio = GPIO_NR_PALMLD_BORDER_SWITCH,
+};
+
struct platform_device palmld_border = {
- .name = "palmld-border",
- .id = -1,
+ .name = "palmlcd-border",
+ .id = 0,
+ .dev = {
+ .platform_data = &border_machinfo,
+ },
};
/*********************************************************
Deleted: linux4palm/linux/trunk/arch/arm/mach-pxa/palmld/palmld_border.c
===================================================================
--- linux4palm/linux/trunk/arch/arm/mach-pxa/palmld/palmld_border.c 2007-09-17 20:13:33 UTC (rev 1331)
+++ linux4palm/linux/trunk/arch/arm/mach-pxa/palmld/palmld_border.c 2007-09-21 00:12:29 UTC (rev 1332)
@@ -1,100 +0,0 @@
-/*
- * Palm LifeDrive LCD Border switch
- *
- * Copyright (C) 2007 Marek Vasut <mar...@gm...>
- *
- * 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/module.h>
-#include <linux/kernel.h>
-#include <linux/platform_device.h>
-#include <linux/delay.h>
-
-#include <asm/arch/hardware.h>
-#include <asm/arch/palmld-gpio.h>
-
-static ssize_t palmld_border_write(struct device *dev, struct device_attribute *attr,
- const char *buf, size_t count)
-{
- signed long state = simple_strtol(buf, NULL, 10);
-
- if ( state >= 1 )
- SET_PALMLD_GPIO(BORDER_SELECT, 1);
- else
- SET_PALMLD_GPIO(BORDER_SELECT, 0);
-
- msleep(50);
- SET_PALMLD_GPIO(BORDER_SWITCH, 1);
-
- if ((state == 1) || (state == 0)) /* default - switch border on/off */
- msleep(200);
- else { /* hidden functionality - colored border */
- if (state >= 0)
- msleep(state);
- else
- msleep(-state);
- }
-
- SET_PALMLD_GPIO(BORDER_SWITCH, 0);
-
- return count;
-}
-
-static ssize_t palmld_border_read(struct device *dev,
- struct device_attribute *attr,
- char *buf)
-{
- return strlcpy(buf, GET_PALMLD_GPIO(BORDER_SELECT) ? "1\n" : "0\n", 3);
-}
-
-static DEVICE_ATTR(border_power, 0644, palmld_border_read, palmld_border_write);
-
-static struct attribute *palmld_border_attrs[] = {
- &dev_attr_border_power.attr,
- NULL
-};
-
-static struct attribute_group palmld_border_attr_group = {
- .attrs = palmld_border_attrs,
-};
-
-static int __devinit palmld_border_probe(struct platform_device *pdev)
-{
- return sysfs_create_group(&pdev->dev.kobj, &palmld_border_attr_group);
-}
-
-static int palmld_border_remove(struct platform_device *pdev)
-{
- sysfs_remove_group(&pdev->dev.kobj, &palmld_border_attr_group);
- return 0;
-}
-
-static struct platform_driver palmld_border_driver = {
- .probe = palmld_border_probe,
- .remove = palmld_border_remove,
- .suspend = NULL,
- .resume = NULL,
- .driver = {
- .name = "palmld-border",
- }
-};
-
-static int __init palmld_border_init(void)
-{
- return platform_driver_register(&palmld_border_driver);
-}
-
-static void palmld_border_exit(void)
-{
- platform_driver_unregister(&palmld_border_driver);
-}
-
-module_init(palmld_border_init);
-module_exit(palmld_border_exit);
-
-MODULE_LICENSE("GPL");
-MODULE_AUTHOR("Marek Vasut <mar...@gm...>");
-MODULE_DESCRIPTION("Palm LifeDrive Border switch");
Modified: linux4palm/linux/trunk/drivers/misc/Kconfig
===================================================================
--- linux4palm/linux/trunk/drivers/misc/Kconfig 2007-09-17 20:13:33 UTC (rev 1331)
+++ linux4palm/linux/trunk/drivers/misc/Kconfig 2007-09-21 00:12:29 UTC (rev 1332)
@@ -48,6 +48,12 @@
help
Gpioed-ng: only for debuging and testing!
+config PALMLCD_BORDER
+ tristate "Palm LCD Display border switch"
+ depends on ARCH_PXA
+ help
+ Enable support for turning LCD border on/off
+
menu "Multimedia Capabilities Port drivers"
config MCP_UCB1x00_AUDIO
Modified: linux4palm/linux/trunk/drivers/misc/Makefile
===================================================================
--- linux4palm/linux/trunk/drivers/misc/Makefile 2007-09-17 20:13:33 UTC (rev 1331)
+++ linux4palm/linux/trunk/drivers/misc/Makefile 2007-09-21 00:12:29 UTC (rev 1332)
@@ -17,6 +17,7 @@
obj-$(CONFIG_BATTCHARGE_MONITOR) += battchargemon.o
obj-$(CONFIG_GPIOED) += gpioed.o
obj-$(CONFIG_GPIOEDNG) += gpioed-ng.o
+obj-$(CONFIG_PALMLCD_BORDER) += palmlcd_border.o
obj-$(CONFIG_MCP_UCB1x00_AUDIO) += ucb1x00-audio.o
obj-$(CONFIG_MCP_UCB1x00_SIMPAD_SWITCHES) += simpad-switches.o
Added: linux4palm/linux/trunk/drivers/misc/palmlcd_border.c
===================================================================
--- linux4palm/linux/trunk/drivers/misc/palmlcd_border.c (rev 0)
+++ linux4palm/linux/trunk/drivers/misc/palmlcd_border.c 2007-09-21 00:12:29 UTC (rev 1332)
@@ -0,0 +1,107 @@
+/*
+ * Palm LCD Border switch
+ *
+ * Copyright (C) 2007 Marek Vasut <mar...@gm...>
+ *
+ * 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/module.h>
+#include <linux/kernel.h>
+#include <linux/platform_device.h>
+#include <linux/delay.h>
+
+#include <asm/arch/palmlcd-border.h>
+#include <asm/arch/gpio.h>
+
+struct palmlcd_border_pdata *pdata;
+
+static ssize_t palmlcd_border_write(struct device *dev, struct device_attribute *attr,
+ const char *buf, size_t count)
+{
+ signed long state = simple_strtol(buf, NULL, 10);
+
+ if ( state >= 1 )
+ __gpio_set_value(pdata->select_gpio, 1);
+ else
+ __gpio_set_value(pdata->select_gpio, 0);
+
+ msleep(50);
+ __gpio_set_value(pdata->switch_gpio, 1);
+
+ if ((state == 1) || (state == 0)) /* default - switch border on/off */
+ msleep(200);
+ else { /* hidden functionality - colored border */
+ if (state >= 0)
+ msleep(state);
+ else
+ msleep(-state);
+ }
+
+ __gpio_set_value(pdata->switch_gpio, 0);
+
+ return count;
+}
+
+static ssize_t palmlcd_border_read(struct device *dev,
+ struct device_attribute *attr,
+ char *buf)
+{
+ return strlcpy(buf, __gpio_get_value(pdata->select_gpio) ? "1\n" : "0\n", 3);
+}
+
+static DEVICE_ATTR(border_power, 0644, palmlcd_border_read, palmlcd_border_write);
+
+static struct attribute *palmlcd_border_attrs[] = {
+ &dev_attr_border_power.attr,
+ NULL
+};
+
+static struct attribute_group palmlcd_border_attr_group = {
+ .attrs = palmlcd_border_attrs,
+};
+
+static int __devinit palmlcd_border_probe(struct platform_device *pdev)
+{
+ if(!pdev->dev.platform_data)
+ return -ENODEV;
+
+ pdata = pdev->dev.platform_data;
+
+ return sysfs_create_group(&pdev->dev.kobj, &palmlcd_border_attr_group);
+}
+
+static int palmlcd_border_remove(struct platform_device *pdev)
+{
+ sysfs_remove_group(&pdev->dev.kobj, &palmlcd_border_attr_group);
+ return 0;
+}
+
+static struct platform_driver palmlcd_border_driver = {
+ .probe = palmlcd_border_probe,
+ .remove = palmlcd_border_remove,
+ .suspend = NULL,
+ .resume = NULL,
+ .driver = {
+ .name = "palmlcd-border",
+ }
+};
+
+static int __init palmlcd_border_init(void)
+{
+ return platform_driver_register(&palmlcd_border_driver);
+}
+
+static void palmlcd_border_exit(void)
+{
+ platform_driver_unregister(&palmlcd_border_driver);
+}
+
+module_init(palmlcd_border_init);
+module_exit(palmlcd_border_exit);
+
+MODULE_LICENSE("GPL");
+MODULE_AUTHOR("Marek Vasut <mar...@gm...>");
+MODULE_DESCRIPTION("Palm LCD Border switch");
Added: linux4palm/linux/trunk/include/asm-arm/arch-pxa/palmlcd-border.h
===================================================================
--- linux4palm/linux/trunk/include/asm-arm/arch-pxa/palmlcd-border.h (rev 0)
+++ linux4palm/linux/trunk/include/asm-arm/arch-pxa/palmlcd-border.h 2007-09-21 00:12:29 UTC (rev 1332)
@@ -0,0 +1,8 @@
+/*
+ * Palm LCD Border info structure
+ */
+
+struct palmlcd_border_pdata {
+ unsigned char select_gpio;
+ unsigned char switch_gpio;
+};
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|