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. |