[oe] [meta-handheld][PATCH] linux-yocto: collie: add platform data for IrDA

Paul Eggleton paul.eggleton at linux.intel.com
Mon Nov 11 13:08:06 UTC 2013


On Saturday 09 November 2013 19:02:07 Andrea Adami wrote:
> Signed-off-by: Dmitry Eremin-Solenikov <dbaryshkov at gmail.com>
> Signed-off-by: Andrea Adami <andrea.adami at gmail.com>
> ---
>  .../linux/linux-yocto-3.10/collie/collie.scc       |  1 +
>  .../patches/patches-sa1100/collie-irda.patch       | 88
> ++++++++++++++++++++++ 2 files changed, 89 insertions(+)
>  create mode 100644
> recipes-kernel/linux/linux-yocto-3.10/patches/patches-sa1100/collie-irda.pa
> tch
> 
> diff --git a/recipes-kernel/linux/linux-yocto-3.10/collie/collie.scc
> b/recipes-kernel/linux/linux-yocto-3.10/collie/collie.scc index
> 3b9b55a..f66b7be 100644
> --- a/recipes-kernel/linux/linux-yocto-3.10/collie/collie.scc
> +++ b/recipes-kernel/linux/linux-yocto-3.10/collie/collie.scc
> @@ -11,3 +11,4 @@ patch ../patches/patches-mtd/collie-eraseinfo.patch
>  patch ../patches/patches-mtd/collie-force-cfi.patch
>  patch ../patches/patches-mtd/collie-mtd-resize.patch
>  patch ../patches/patches-mtd/collie-force-unlock.patch
> +patch ../patches/patches-sa1100/collie-irda.patch
> diff --git
> a/recipes-kernel/linux/linux-yocto-3.10/patches/patches-sa1100/collie-irda.
> patch
> b/recipes-kernel/linux/linux-yocto-3.10/patches/patches-sa1100/collie-irda.
> patch new file mode 100644
> index 0000000..46ad808
> --- /dev/null
> +++
> b/recipes-kernel/linux/linux-yocto-3.10/patches/patches-sa1100/collie-irda.
> patch @@ -0,0 +1,88 @@
> +From c6fb61edf283f255c3763a57366bb89bb36ad79c Mon Sep 17 00:00:00 2001
> +From: Dmitry Eremin-Solenikov <dbaryshkov at gmail.com>
> +Date: Fri, 8 Nov 2013 17:57:32 +0400
> +Subject: [PATCH] collie: add support for IrDA transceiver
> +
> +Collie has onboard IrDA transceiver controlled via active-low gpio. Add
> +corresponding platform data.
> +
> +Signed-off-by: Dmitry Eremin-Solenikov <dbaryshkov at gmail.com>
> +---
> + arch/arm/mach-sa1100/collie.c              | 33
> ++++++++++++++++++++++++++++++ + arch/arm/mach-sa1100/include/mach/collie.h
> |  2 +-
> + 2 files changed, 34 insertions(+), 1 deletion(-)
> +
> +diff --git a/arch/arm/mach-sa1100/collie.c b/arch/arm/mach-sa1100/collie.c
> +index 2349dee..1b9473d 100644
> +--- a/arch/arm/mach-sa1100/collie.c
> ++++ b/arch/arm/mach-sa1100/collie.c
> +@@ -41,6 +41,7 @@
> + #include <asm/mach/arch.h>
> + #include <asm/mach/flash.h>
> + #include <asm/mach/map.h>
> ++#include <asm/mach/irda.h>
> +
> + #include <asm/hardware/scoop.h>
> + #include <asm/mach/sharpsl_param.h>
> +@@ -94,6 +95,37 @@ static struct mcp_plat_data collie_mcp_data = {
> + 	.codec_pdata	= &collie_ucb1x00_data,
> + };
> +
> ++int collie_ir_startup(struct device *dev)
> ++{
> ++	int rc = gpio_request(COLLIE_GPIO_IR_ON, "IrDA");
> ++	if (rc)
> ++		return rc;
> ++	rc = gpio_direction_output(COLLIE_GPIO_IR_ON, 1);
> ++
> ++	if (!rc)
> ++		return 0;
> ++
> ++	gpio_free(COLLIE_GPIO_IR_ON);
> ++	return rc;
> ++}
> ++
> ++void collie_ir_shutdown(struct device *dev)
> ++{
> ++	gpio_free(COLLIE_GPIO_IR_ON);
> ++}
> ++
> ++static int collie_ir_set_power(struct device *dev, unsigned int state)
> ++{
> ++	gpio_set_value(COLLIE_GPIO_IR_ON, !state);
> ++	return 0;
> ++}
> ++
> ++static struct irda_platform_data collie_ir_data = {
> ++	.startup = collie_ir_startup,
> ++	.shutdown = collie_ir_shutdown,
> ++	.set_power = collie_ir_set_power,
> ++};
> ++
> + /*
> +  * Collie AC IN
> +  */
> +@@ -323,6 +355,7 @@ static void __init collie_init(void)
> + 	sa11x0_register_mtd(&collie_flash_data, collie_flash_resources,
> + 			    ARRAY_SIZE(collie_flash_resources));
> + 	sa11x0_register_mcp(&collie_mcp_data);
> ++	sa11x0_register_irda(&collie_ir_data);
> +
> + 	sharpsl_save_param();
> + }
> +diff --git a/arch/arm/mach-sa1100/include/mach/collie.h
> b/arch/arm/mach-sa1100/include/mach/collie.h +index f33679d..0ef22f9 100644
> +--- a/arch/arm/mach-sa1100/include/mach/collie.h
> ++++ b/arch/arm/mach-sa1100/include/mach/collie.h
> +@@ -78,7 +78,7 @@ extern void locomolcd_power(int on);
> + #define COLLIE_TC35143_GPIO_VERSION0    UCB_IO_0
> + #define COLLIE_TC35143_GPIO_TBL_CHK     UCB_IO_1
> + #define COLLIE_TC35143_GPIO_VPEN_ON     UCB_IO_2
> +-#define COLLIE_TC35143_GPIO_IR_ON       UCB_IO_3
> ++#define COLLIE_GPIO_IR_ON		(COLLIE_TC35143_GPIO_BASE + 3)
> + #define COLLIE_TC35143_GPIO_AMP_ON      UCB_IO_4
> + #define COLLIE_TC35143_GPIO_VERSION1    UCB_IO_5
> + #define COLLIE_TC35143_GPIO_FS8KLPF     UCB_IO_5
> +--
> +1.8.4.rc3
> +

These two now merged to meta-handheld master, thanks.

Cheers,
Paul

-- 

Paul Eggleton
Intel Open Source Technology Centre



More information about the Openembedded-devel mailing list