|
From: <mar...@us...> - 2007-08-18 20:13:11
|
Revision: 1244
http://hackndev.svn.sourceforge.net/hackndev/?rev=1244&view=rev
Author: marex_z71
Date: 2007-08-18 13:13:05 -0700 (Sat, 18 Aug 2007)
Log Message:
-----------
PalmTX: border switch driver
Modified Paths:
--------------
linux4palm/linux/trunk/arch/arm/mach-pxa/palmtx/Kconfig
linux4palm/linux/trunk/arch/arm/mach-pxa/palmtx/Makefile
linux4palm/linux/trunk/include/asm-arm/arch-pxa/palmtx-gpio.h
Added Paths:
-----------
linux4palm/linux/trunk/arch/arm/mach-pxa/palmtx/palmtx_border.c
Modified: linux4palm/linux/trunk/arch/arm/mach-pxa/palmtx/Kconfig
===================================================================
--- linux4palm/linux/trunk/arch/arm/mach-pxa/palmtx/Kconfig 2007-08-18 19:59:45 UTC (rev 1243)
+++ linux4palm/linux/trunk/arch/arm/mach-pxa/palmtx/Kconfig 2007-08-18 20:13:05 UTC (rev 1244)
@@ -33,3 +33,8 @@
help
This driver handles the CF/PCCARD/PCMCIA bus.
+config PALMTX_BORDER
+ tristate "Palm TX Display border switch"
+ depends on MACH_XSCALE_PALMTX
+ help
+ Enable support for turning LCD border on/off
Modified: linux4palm/linux/trunk/arch/arm/mach-pxa/palmtx/Makefile
===================================================================
--- linux4palm/linux/trunk/arch/arm/mach-pxa/palmtx/Makefile 2007-08-18 19:59:45 UTC (rev 1243)
+++ linux4palm/linux/trunk/arch/arm/mach-pxa/palmtx/Makefile 2007-08-18 20:13:05 UTC (rev 1244)
@@ -6,3 +6,4 @@
obj-$(CONFIG_PALMTX_BATTERY) += palmtx_battery.o
obj-$(CONFIG_PALMTX_PM) += palmtx_pm.o
obj-$(CONFIG_PALMTX_PCMCIA) += palmtx_pcmcia.o
+obj-$(CONFIG_PALMTX_BORDER) += palmtx_border.o
Added: linux4palm/linux/trunk/arch/arm/mach-pxa/palmtx/palmtx_border.c
===================================================================
--- linux4palm/linux/trunk/arch/arm/mach-pxa/palmtx/palmtx_border.c (rev 0)
+++ linux4palm/linux/trunk/arch/arm/mach-pxa/palmtx/palmtx_border.c 2007-08-18 20:13:05 UTC (rev 1244)
@@ -0,0 +1,100 @@
+/*
+ * Palm T|X 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/palmtx-gpio.h>
+
+static ssize_t palmtx_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_PALMTX_GPIO(BORDER_SELECT, 1);
+ else
+ SET_PALMTX_GPIO(BORDER_SELECT, 0);
+
+ msleep(50);
+ SET_PALMTX_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_PALMTX_GPIO(BORDER_SWITCH, 0);
+
+ return count;
+}
+
+static ssize_t palmtx_border_read(struct device *dev,
+ struct device_attribute *attr,
+ char *buf)
+{
+ return strlcpy(buf, GET_PALMTX_GPIO(BORDER_SELECT) ? "1\n" : "0\n", 3);
+}
+
+static DEVICE_ATTR(border_power, 0644, palmtx_border_read, palmtx_border_write);
+
+static struct attribute *palmtx_border_attrs[] = {
+ &dev_attr_border_power.attr,
+ NULL
+};
+
+static struct attribute_group palmtx_border_attr_group = {
+ .attrs = palmtx_border_attrs,
+};
+
+static int __devinit palmtx_border_probe(struct platform_device *pdev)
+{
+ return sysfs_create_group(&pdev->dev.kobj, &palmtx_border_attr_group);
+}
+
+static int palmtx_border_remove(struct platform_device *pdev)
+{
+ sysfs_remove_group(&pdev->dev.kobj, &palmtx_border_attr_group);
+ return 0;
+}
+
+static struct platform_driver palmtx_border_driver = {
+ .probe = palmtx_border_probe,
+ .remove = palmtx_border_remove,
+ .suspend = NULL,
+ .resume = NULL,
+ .driver = {
+ .name = "palmtx-border",
+ }
+};
+
+static int __init palmtx_border_init(void)
+{
+ return platform_driver_register(&palmtx_border_driver);
+}
+
+static void palmtx_border_exit(void)
+{
+ platform_driver_unregister(&palmtx_border_driver);
+}
+
+module_init(palmtx_border_init);
+module_exit(palmtx_border_exit);
+
+MODULE_LICENSE("GPL");
+MODULE_AUTHOR("Marek Vasut <mar...@gm...>");
+MODULE_DESCRIPTION("Palm T|X Border switch");
Modified: linux4palm/linux/trunk/include/asm-arm/arch-pxa/palmtx-gpio.h
===================================================================
--- linux4palm/linux/trunk/include/asm-arm/arch-pxa/palmtx-gpio.h 2007-08-18 19:59:45 UTC (rev 1243)
+++ linux4palm/linux/trunk/include/asm-arm/arch-pxa/palmtx-gpio.h 2007-08-18 20:13:05 UTC (rev 1244)
@@ -1,6 +1,4 @@
/*
- * $Id$
- *
* GPIOs and interrupts for Palm TX Handheld Computer
*
* Based on palmld-gpio.h by Alex Osborne
@@ -23,6 +21,7 @@
/*
* WORK IN PROGRESS
*/
+#include <asm/arch/pxa-regs.h>
#ifndef _INCLUDE_PALMTX_GPIO_H_
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|