* [PATCH] sh: clean up Migo-R header file @ 2009-08-06 15:16 Magnus Damm 2009-08-06 15:12 ` [PATCH] sh: fix romImage mach dir usage Magnus Damm 0 siblings, 1 reply; 8+ messages in thread From: Magnus Damm @ 2009-08-06 15:16 UTC (permalink / raw) To: linux-sh From: Magnus Damm <damm@igel.co.jp> This patch moves the Migo-R specific header file from mach-common/ into mach-migor/ and removes unused cruft. Signed-off-by: Magnus Damm <damm@igel.co.jp> --- arch/sh/include/mach-common/mach/migor.h | 64 ------------------------------ arch/sh/include/mach-migor/mach/migor.h | 14 ++++++ 2 files changed, 14 insertions(+), 64 deletions(-) --- 0001/arch/sh/include/mach-common/mach/migor.h +++ /dev/null 2009-08-04 09:21:32.824030158 +0900 @@ -1,64 +0,0 @@ -#ifndef __ASM_SH_MIGOR_H -#define __ASM_SH_MIGOR_H - -/* - * linux/include/asm-sh/migor.h - * - * Copyright (C) 2008 Renesas Solutions - * - * Portions Copyright (C) 2007 Nobuhiro Iwamatsu - * - * This file is subject to the terms and conditions of the GNU General Public - * License. See the file "COPYING" in the main directory of this archive - * for more details. - * - */ -#include <asm/addrspace.h> - -/* GPIO */ -#define PORT_PACR 0xa4050100 -#define PORT_PDCR 0xa4050106 -#define PORT_PECR 0xa4050108 -#define PORT_PHCR 0xa405010e -#define PORT_PJCR 0xa4050110 -#define PORT_PKCR 0xa4050112 -#define PORT_PLCR 0xa4050114 -#define PORT_PMCR 0xa4050116 -#define PORT_PRCR 0xa405011c -#define PORT_PTCR 0xa4050140 -#define PORT_PUCR 0xa4050142 -#define PORT_PVCR 0xa4050144 -#define PORT_PWCR 0xa4050146 -#define PORT_PXCR 0xa4050148 -#define PORT_PYCR 0xa405014a -#define PORT_PZCR 0xa405014c -#define PORT_PADR 0xa4050120 -#define PORT_PHDR 0xa405012e -#define PORT_PTDR 0xa4050160 -#define PORT_PWDR 0xa4050166 - -#define PORT_HIZCRA 0xa4050158 -#define PORT_HIZCRC 0xa405015c - -#define PORT_MSELCRB 0xa4050182 - -#define PORT_PSELA 0xa405014e -#define PORT_PSELB 0xa4050150 -#define PORT_PSELC 0xa4050152 -#define PORT_PSELD 0xa4050154 -#define PORT_PSELE 0xa4050156 - -#define PORT_HIZCRA 0xa4050158 -#define PORT_HIZCRB 0xa405015a -#define PORT_HIZCRC 0xa405015c - -#define BSC_CS4BCR 0xfec10010 -#define BSC_CS6ABCR 0xfec1001c -#define BSC_CS4WCR 0xfec10030 - -#include <video/sh_mobile_lcdc.h> - -int migor_lcd_qvga_setup(void *board_data, void *sys_ops_handle, - struct sh_mobile_lcdc_sys_bus_ops *sys_ops); - -#endif /* __ASM_SH_MIGOR_H */ --- /dev/null +++ work/arch/sh/include/mach-migor/mach/migor.h 2009-08-06 21:56:02.000000000 +0900 @@ -0,0 +1,14 @@ +#ifndef __ASM_SH_MIGOR_H +#define __ASM_SH_MIGOR_H + +#define PORT_MSELCRB 0xa4050182 +#define BSC_CS4BCR 0xfec10010 +#define BSC_CS6ABCR 0xfec1001c +#define BSC_CS4WCR 0xfec10030 + +#include <video/sh_mobile_lcdc.h> + +int migor_lcd_qvga_setup(void *board_data, void *sys_ops_handle, + struct sh_mobile_lcdc_sys_bus_ops *sys_ops); + +#endif /* __ASM_SH_MIGOR_H */ ^ permalink raw reply [flat|nested] 8+ messages in thread
* [PATCH] sh: fix romImage mach dir usage @ 2009-08-06 15:12 ` Magnus Damm 2009-08-06 15:03 ` [PATCH] sh: LED9, LED10 and LED11 support for Solution Engine 7724 Magnus Damm 0 siblings, 1 reply; 8+ messages in thread From: Magnus Damm @ 2009-08-06 15:12 UTC (permalink / raw) To: linux-sh From: Magnus Damm <damm@igel.co.jp> This patch moves all the romImage related header files into the mach/ directory. Signed-off-by: Magnus Damm <damm@igel.co.jp> --- arch/sh/boot/romimage/head.S | 2 arch/sh/include/mach-common/mach/romimage.h | 1 arch/sh/include/mach-common/romimage.h | 1 arch/sh/include/mach-kfr2r09/mach/partner-jet-setup.txt | 134 +++++++++++++++ arch/sh/include/mach-kfr2r09/mach/romimage.h | 75 ++++++++ arch/sh/include/mach-kfr2r09/partner-jet-setup.txt | 134 --------------- arch/sh/include/mach-kfr2r09/romimage.h | 75 -------- 7 files changed, 211 insertions(+), 211 deletions(-) --- 0001/arch/sh/boot/romimage/head.S +++ work/arch/sh/boot/romimage/head.S 2009-08-06 21:38:30.000000000 +0900 @@ -7,4 +7,4 @@ .text .global romstart romstart: -#include <romimage.h> +#include <mach/romimage.h> --- /dev/null +++ work/arch/sh/include/mach-common/mach/romimage.h 2009-08-04 15:54:33.000000000 +0900 @@ -0,0 +1 @@ +/* do nothing here by default */ --- 0001/arch/sh/include/mach-common/romimage.h +++ /dev/null 2009-08-04 09:21:32.824030158 +0900 @@ -1 +0,0 @@ -/* do nothing here by default */ --- /dev/null +++ work/arch/sh/include/mach-kfr2r09/mach/partner-jet-setup.txt 2009-08-04 15:54:33.000000000 +0900 @@ -0,0 +1,134 @@ +LIST "partner-jet-setup.txt - 20090729 Magnus Damm" +LIST "set up enough of the kfr2r09 hardware to boot the kernel" + +LIST "zImage (RAM boot)" +LIST "This script can be used to boot the kernel from RAM via JTAG:" +LIST "> < partner-jet-setup.txt" +LIST "> RD zImage, 0xa8800000" +LIST "> G=0xa8800000" + +LIST "romImage (Flash boot)" +LIST "Use the following command to burn the zImage to flash via JTAG:" +LIST "> RD romImage, 0" + +LIST "--------------------------------" + +LIST "disable watchdog" +EW 0xa4520004, 0xa507 + +LIST "select mode for cs5 + cs6" +ED 0xff800020, 0xa5a50001 +ED 0xfec10000, 0x0000001b + +LIST "setup clocks" +ED 0xa4150004, 0x00000050 +ED 0xa4150000, 0x91053508 +WAIT 1 +ED 0xa4150024, 0x00005000 + +LIST "setup pins" +EB 0xa4050120, 0x00 +EB 0xa4050122, 0x00 +EB 0xa4050124, 0x00 +EB 0xa4050126, 0x00 +EB 0xa4050128, 0xA0 +EB 0xa405012A, 0x10 +EB 0xa405012C, 0x00 +EB 0xa405012E, 0x00 +EB 0xa4050130, 0x00 +EB 0xa4050132, 0x00 +EB 0xa4050134, 0x01 +EB 0xa4050136, 0x40 +EB 0xa4050138, 0x00 +EB 0xa405013A, 0x00 +EB 0xa405013C, 0x00 +EB 0xa405013E, 0x20 +EB 0xa4050160, 0x00 +EB 0xa4050162, 0x40 +EB 0xa4050164, 0x03 +EB 0xa4050166, 0x00 +EB 0xa4050168, 0x00 +EB 0xa405016A, 0x00 +EB 0xa405016C, 0x00 + +EW 0xa405014E, 0x5660 +EW 0xa4050150, 0x0145 +EW 0xa4050152, 0x1550 +EW 0xa4050154, 0x0200 +EW 0xa4050156, 0x0040 + +EW 0xa4050158, 0x0000 +EW 0xa405015a, 0x0000 +EW 0xa405015c, 0x0000 +EW 0xa405015e, 0x0000 + +EW 0xa4050180, 0x0000 +EW 0xa4050182, 0x8002 +EW 0xa4050184, 0x0000 + +EW 0xa405018a, 0x9991 +EW 0xa405018c, 0x8011 +EW 0xa405018e, 0x9550 + +EW 0xa4050100, 0x0000 +EW 0xa4050102, 0x5540 +EW 0xa4050104, 0x0000 +EW 0xa4050106, 0x0000 +EW 0xa4050108, 0x4550 +EW 0xa405010a, 0x0130 +EW 0xa405010c, 0x0555 +EW 0xa405010e, 0x0000 +EW 0xa4050110, 0x0000 +EW 0xa4050112, 0xAAA8 +EW 0xa4050114, 0x8305 +EW 0xa4050116, 0x10F0 +EW 0xa4050118, 0x0F50 +EW 0xa405011a, 0x0000 +EW 0xa405011c, 0x0000 +EW 0xa405011e, 0x0555 +EW 0xa4050140, 0x0000 +EW 0xa4050142, 0x5141 +EW 0xa4050144, 0x5005 +EW 0xa4050146, 0xAAA9 +EW 0xa4050148, 0xFAA9 +EW 0xa405014a, 0x3000 +EW 0xa405014c, 0x0000 + +LIST "setup sdram" +ED 0xFD000108, 0x40000301 +ED 0xFD000020, 0x011B0002 +ED 0xFD000030, 0x03060E02 +ED 0xFD000034, 0x01020102 +ED 0xFD000038, 0x01090406 +ED 0xFD000008, 0x00000004 +ED 0xFD000040, 0x00000001 +ED 0xFD000040, 0x00000000 +ED 0xFD000018, 0x00000001 + +WAIT 1 + +ED 0xFD000014, 0x00000002 +ED 0xFD000060, 0x00000032 +ED 0xFD000060, 0x00020000 +ED 0xFD000014, 0x00000004 +ED 0xFD000014, 0x00000004 +ED 0xFD000010, 0x00000001 +ED 0xFD000044, 0x000004AF +ED 0xFD000048, 0x20CF0037 + +LIST "read 16 bytes from sdram" +DD 0xa8000000, 0xa8000000, 1 +DD 0xa8000004, 0xa8000004, 1 +DD 0xa8000008, 0xa8000008, 1 +DD 0xa800000c, 0xa800000c, 1 + +ED 0xFD000014, 0x00000002 +ED 0xFD000014, 0x00000004 +ED 0xFD000108, 0x40000300 +ED 0xFD000040, 0x00010000 + +LIST "write to internal ram" +ED 0xfd8007fc, 0 + +LIST "setup cache" +ED 0xff00001c, 0x0000090b --- /dev/null +++ work/arch/sh/include/mach-kfr2r09/mach/romimage.h 2009-08-04 15:54:33.000000000 +0900 @@ -0,0 +1,75 @@ +/* kfr2r09 board specific boot code: + * converts the "partner-jet-script.txt" script into assembly + * the assembly code is the first code to be executed in the romImage + */ + +/* The LIST command is used to include comments in the script */ +.macro LIST comment +.endm + +/* The ED command is used to write a 32-bit word */ +.macro ED, addr, data + mov.l 1f ,r1 + mov.l 2f ,r0 + mov.l r0, @r1 + bra 3f + nop + .align 2 +1: .long \addr +2: .long \data +3: +.endm + +/* The EW command is used to write a 16-bit word */ +.macro EW, addr, data + mov.l 1f ,r1 + mov.l 2f ,r0 + mov.w r0, @r1 + bra 3f + nop + .align 2 +1: .long \addr +2: .long \data +3: +.endm + +/* The EB command is used to write an 8-bit word */ +.macro EB, addr, data + mov.l 1f ,r1 + mov.l 2f ,r0 + mov.b r0, @r1 + bra 3f + nop + .align 2 +1: .long \addr +2: .long \data +3: +.endm + +/* The WAIT command is used to delay the execution */ +.macro WAIT, time + mov.l 2f ,r3 +1: + nop + tst r3, r3 + bf/s 1b + dt r3 + bra 3f + nop + .align 2 +2: .long \time * 100 +3: +.endm + +/* The DD command is used to read a 32-bit word */ +.macro DD, addr, addr2, nr + mov.l 1f ,r1 + mov.l @r1, r0 + bra 2f + nop + .align 2 +1: .long \addr +2: +.endm + +#include "partner-jet-setup.txt" --- 0001/arch/sh/include/mach-kfr2r09/partner-jet-setup.txt +++ /dev/null 2009-08-04 09:21:32.824030158 +0900 @@ -1,134 +0,0 @@ -LIST "partner-jet-setup.txt - 20090729 Magnus Damm" -LIST "set up enough of the kfr2r09 hardware to boot the kernel" - -LIST "zImage (RAM boot)" -LIST "This script can be used to boot the kernel from RAM via JTAG:" -LIST "> < partner-jet-setup.txt" -LIST "> RD zImage, 0xa8800000" -LIST "> G=0xa8800000" - -LIST "romImage (Flash boot)" -LIST "Use the following command to burn the zImage to flash via JTAG:" -LIST "> RD romImage, 0" - -LIST "--------------------------------" - -LIST "disable watchdog" -EW 0xa4520004, 0xa507 - -LIST "select mode for cs5 + cs6" -ED 0xff800020, 0xa5a50001 -ED 0xfec10000, 0x0000001b - -LIST "setup clocks" -ED 0xa4150004, 0x00000050 -ED 0xa4150000, 0x91053508 -WAIT 1 -ED 0xa4150024, 0x00005000 - -LIST "setup pins" -EB 0xa4050120, 0x00 -EB 0xa4050122, 0x00 -EB 0xa4050124, 0x00 -EB 0xa4050126, 0x00 -EB 0xa4050128, 0xA0 -EB 0xa405012A, 0x10 -EB 0xa405012C, 0x00 -EB 0xa405012E, 0x00 -EB 0xa4050130, 0x00 -EB 0xa4050132, 0x00 -EB 0xa4050134, 0x01 -EB 0xa4050136, 0x40 -EB 0xa4050138, 0x00 -EB 0xa405013A, 0x00 -EB 0xa405013C, 0x00 -EB 0xa405013E, 0x20 -EB 0xa4050160, 0x00 -EB 0xa4050162, 0x40 -EB 0xa4050164, 0x03 -EB 0xa4050166, 0x00 -EB 0xa4050168, 0x00 -EB 0xa405016A, 0x00 -EB 0xa405016C, 0x00 - -EW 0xa405014E, 0x5660 -EW 0xa4050150, 0x0145 -EW 0xa4050152, 0x1550 -EW 0xa4050154, 0x0200 -EW 0xa4050156, 0x0040 - -EW 0xa4050158, 0x0000 -EW 0xa405015a, 0x0000 -EW 0xa405015c, 0x0000 -EW 0xa405015e, 0x0000 - -EW 0xa4050180, 0x0000 -EW 0xa4050182, 0x8002 -EW 0xa4050184, 0x0000 - -EW 0xa405018a, 0x9991 -EW 0xa405018c, 0x8011 -EW 0xa405018e, 0x9550 - -EW 0xa4050100, 0x0000 -EW 0xa4050102, 0x5540 -EW 0xa4050104, 0x0000 -EW 0xa4050106, 0x0000 -EW 0xa4050108, 0x4550 -EW 0xa405010a, 0x0130 -EW 0xa405010c, 0x0555 -EW 0xa405010e, 0x0000 -EW 0xa4050110, 0x0000 -EW 0xa4050112, 0xAAA8 -EW 0xa4050114, 0x8305 -EW 0xa4050116, 0x10F0 -EW 0xa4050118, 0x0F50 -EW 0xa405011a, 0x0000 -EW 0xa405011c, 0x0000 -EW 0xa405011e, 0x0555 -EW 0xa4050140, 0x0000 -EW 0xa4050142, 0x5141 -EW 0xa4050144, 0x5005 -EW 0xa4050146, 0xAAA9 -EW 0xa4050148, 0xFAA9 -EW 0xa405014a, 0x3000 -EW 0xa405014c, 0x0000 - -LIST "setup sdram" -ED 0xFD000108, 0x40000301 -ED 0xFD000020, 0x011B0002 -ED 0xFD000030, 0x03060E02 -ED 0xFD000034, 0x01020102 -ED 0xFD000038, 0x01090406 -ED 0xFD000008, 0x00000004 -ED 0xFD000040, 0x00000001 -ED 0xFD000040, 0x00000000 -ED 0xFD000018, 0x00000001 - -WAIT 1 - -ED 0xFD000014, 0x00000002 -ED 0xFD000060, 0x00000032 -ED 0xFD000060, 0x00020000 -ED 0xFD000014, 0x00000004 -ED 0xFD000014, 0x00000004 -ED 0xFD000010, 0x00000001 -ED 0xFD000044, 0x000004AF -ED 0xFD000048, 0x20CF0037 - -LIST "read 16 bytes from sdram" -DD 0xa8000000, 0xa8000000, 1 -DD 0xa8000004, 0xa8000004, 1 -DD 0xa8000008, 0xa8000008, 1 -DD 0xa800000c, 0xa800000c, 1 - -ED 0xFD000014, 0x00000002 -ED 0xFD000014, 0x00000004 -ED 0xFD000108, 0x40000300 -ED 0xFD000040, 0x00010000 - -LIST "write to internal ram" -ED 0xfd8007fc, 0 - -LIST "setup cache" -ED 0xff00001c, 0x0000090b --- 0001/arch/sh/include/mach-kfr2r09/romimage.h +++ /dev/null 2009-08-04 09:21:32.824030158 +0900 @@ -1,75 +0,0 @@ -/* kfr2r09 board specific boot code: - * converts the "partner-jet-script.txt" script into assembly - * the assembly code is the first code to be executed in the romImage - */ - -/* The LIST command is used to include comments in the script */ -.macro LIST comment -.endm - -/* The ED command is used to write a 32-bit word */ -.macro ED, addr, data - mov.l 1f ,r1 - mov.l 2f ,r0 - mov.l r0, @r1 - bra 3f - nop - .align 2 -1: .long \addr -2: .long \data -3: -.endm - -/* The EW command is used to write a 16-bit word */ -.macro EW, addr, data - mov.l 1f ,r1 - mov.l 2f ,r0 - mov.w r0, @r1 - bra 3f - nop - .align 2 -1: .long \addr -2: .long \data -3: -.endm - -/* The EB command is used to write an 8-bit word */ -.macro EB, addr, data - mov.l 1f ,r1 - mov.l 2f ,r0 - mov.b r0, @r1 - bra 3f - nop - .align 2 -1: .long \addr -2: .long \data -3: -.endm - -/* The WAIT command is used to delay the execution */ -.macro WAIT, time - mov.l 2f ,r3 -1: - nop - tst r3, r3 - bf/s 1b - dt r3 - bra 3f - nop - .align 2 -2: .long \time * 100 -3: -.endm - -/* The DD command is used to read a 32-bit word */ -.macro DD, addr, addr2, nr - mov.l 1f ,r1 - mov.l @r1, r0 - bra 2f - nop - .align 2 -1: .long \addr -2: -.endm - -#include "partner-jet-setup.txt" ^ permalink raw reply [flat|nested] 8+ messages in thread
* [PATCH] sh: LED9, LED10 and LED11 support for Solution Engine 7724 @ 2009-08-06 15:03 ` Magnus Damm 2009-08-06 14:58 ` [PATCH] sh: kfr2r09 board support - NAND flash Magnus Damm 0 siblings, 1 reply; 8+ messages in thread From: Magnus Damm @ 2009-08-06 15:03 UTC (permalink / raw) To: linux-sh From: Magnus Damm <damm@igel.co.jp> This patch adds support for LED9, LED10 and LED11 on the Solution Engine 7724 board. If CONFIG_PM is enabled then these LEDs are used to show the hardware sleep mode used by the processor. Useful to debug cpuidle. Signed-off-by: Magnus Damm <damm@igel.co.jp> --- arch/sh/boards/mach-se/7724/setup.c | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) --- 0001/arch/sh/boards/mach-se/7724/setup.c +++ work/arch/sh/boards/mach-se/7724/setup.c 2009-08-05 15:22:48.000000000 +0900 @@ -429,6 +429,32 @@ static int __init devices_setup(void) /* turn on USB clocks, use external clock */ ctrl_outw((ctrl_inw(PORT_MSELCRB) & ~0xc000) | 0x8000, PORT_MSELCRB); +#ifdef CONFIG_PM + /* Let LED9 show STATUS2 */ + gpio_request(GPIO_FN_STATUS2, NULL); + + /* Lit LED10 show STATUS0 */ + gpio_request(GPIO_FN_STATUS0, NULL); + + /* Lit LED11 show PDSTATUS */ + gpio_request(GPIO_FN_PDSTATUS, NULL); +#else + /* Lit LED9 */ + gpio_request(GPIO_PTJ6, NULL); + gpio_direction_output(GPIO_PTJ6, 1); + gpio_export(GPIO_PTJ6, 0); + + /* Lit LED10 */ + gpio_request(GPIO_PTJ5, NULL); + gpio_direction_output(GPIO_PTJ5, 1); + gpio_export(GPIO_PTJ5, 0); + + /* Lit LED11 */ + gpio_request(GPIO_PTJ7, NULL); + gpio_direction_output(GPIO_PTJ7, 1); + gpio_export(GPIO_PTJ7, 0); +#endif + /* enable USB0 port */ ctrl_outw(0x0600, 0xa40501d4); ^ permalink raw reply [flat|nested] 8+ messages in thread
* [PATCH] sh: kfr2r09 board support - NAND flash @ 2009-08-06 14:58 ` Magnus Damm 2009-08-06 14:51 ` [PATCH] sh: kfr2r09 board support - LCDC panel Magnus Damm 0 siblings, 1 reply; 8+ messages in thread From: Magnus Damm @ 2009-08-06 14:58 UTC (permalink / raw) To: linux-sh; +Cc: tony, Magnus Damm, kyungmin.park, lethal, linux-mtd, akpm, dwmw2 From: Magnus Damm <damm@igel.co.jp> This patch adds support for the NAND flash chip attached to CS4 on the KFR2R09 board. The device is driven by the platform device driver "onenand-flash". Signed-off-by: Magnus Damm <damm@igel.co.jp> --- No merge/build time dependencies, but needs the following patch to start working on the actual hardware: "[PATCH] mtd: make onenand/generic.c more generic" arch/sh/boards/mach-kfr2r09/setup.c | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) --- 0003/arch/sh/boards/mach-kfr2r09/setup.c +++ work/arch/sh/boards/mach-kfr2r09/setup.c 2009-08-06 21:37:18.000000000 +0900 @@ -11,6 +11,7 @@ #include <linux/platform_device.h> #include <linux/interrupt.h> #include <linux/mtd/physmap.h> +#include <linux/mtd/onenand.h> #include <linux/delay.h> #include <linux/clk.h> #include <linux/gpio.h> @@ -62,6 +63,21 @@ static struct platform_device kfr2r09_no }, }; +static struct resource kfr2r09_nand_flash_resources[] = { + [0] = { + .name = "NAND Flash", + .start = 0x10000000, + .end = 0x1001ffff, + .flags = IORESOURCE_MEM, + } +}; + +static struct platform_device kfr2r09_nand_flash_device = { + .name = "onenand-flash", + .resource = kfr2r09_nand_flash_resources, + .num_resources = ARRAY_SIZE(kfr2r09_nand_flash_resources), +}; + static struct sh_keysc_info kfr2r09_sh_keysc_info = { .mode = SH_KEYSC_MODE_1, /* KEYOUT0->4, KEYIN0->4 */ .scan_timing = 3, @@ -161,12 +177,15 @@ static struct platform_device kfr2r09_sh static struct platform_device *kfr2r09_devices[] __initdata = { &kfr2r09_nor_flash_device, + &kfr2r09_nand_flash_device, &kfr2r09_sh_keysc_device, &kfr2r09_sh_lcdc_device, }; #define BSC_CS0BCR 0xfec10004 #define BSC_CS0WCR 0xfec10024 +#define BSC_CS4BCR 0xfec10010 +#define BSC_CS4WCR 0xfec10030 static int __init kfr2r09_devices_setup(void) { @@ -178,6 +197,10 @@ static int __init kfr2r09_devices_setup( ctrl_outl(0x36db0400, BSC_CS0BCR); ctrl_outl(0x00000500, BSC_CS0WCR); + /* setup NAND flash at CS4 */ + ctrl_outl(0x36db0400, BSC_CS4BCR); + ctrl_outl(0x00000500, BSC_CS4WCR); + /* setup KEYSC pins */ gpio_request(GPIO_FN_KEYOUT0, NULL); gpio_request(GPIO_FN_KEYOUT1, NULL); ^ permalink raw reply [flat|nested] 8+ messages in thread
* [PATCH] sh: kfr2r09 board support - LCDC panel @ 2009-08-06 14:51 ` Magnus Damm 2009-08-06 14:34 ` [PATCH] sh: 18-bit SYS panel fix for SuperH Mobile LCDC Magnus Damm 0 siblings, 1 reply; 8+ messages in thread From: Magnus Damm @ 2009-08-06 14:51 UTC (permalink / raw) To: linux-sh From: Magnus Damm <damm@igel.co.jp> This patch adds support for the WQVGA LCD display used by the KFR2R09 board. The LCD module is a TX07D34VM0AAA made by Hitachi, and this module is made up by a R61517 chip together with a 240x400 pixel display. The screen is attached to the SuperH Mobile LCDC using a 18-bit SYS bus. The register settings used by the SYS panel setup code are based on an out-of-tree driver which apart from duplicating all LCDC driver code and writing to non-existing hardware registers also never was posted for upstream merge. Signed-off-by: Magnus Damm <damm@igel.co.jp> --- arch/sh/boards/mach-kfr2r09/Makefile | 1 arch/sh/boards/mach-kfr2r09/lcd_wqvga.c | 332 +++++++++++++++++++++++++++ arch/sh/boards/mach-kfr2r09/setup.c | 94 +++++++ arch/sh/include/mach-kfr2r09/mach/kfr2r09.h | 21 + 4 files changed, 448 insertions(+) --- 0001/arch/sh/boards/mach-kfr2r09/Makefile +++ work/arch/sh/boards/mach-kfr2r09/Makefile 2009-08-06 21:33:53.000000000 +0900 @@ -1 +1,2 @@ obj-y := setup.o +obj-$(CONFIG_FB_SH_MOBILE_LCDC) += lcd_wqvga.o --- /dev/null +++ work/arch/sh/boards/mach-kfr2r09/lcd_wqvga.c 2009-08-06 21:33:53.000000000 +0900 @@ -0,0 +1,332 @@ +/* + * KFR2R09 LCD panel support + * + * Copyright (C) 2009 Magnus Damm + * + * Register settings based on the out-of-tree t33fb.c driver + * Copyright (C) 2008 Lineo Solutions, Inc. + * + * This file is subject to the terms and conditions of the GNU General Public + * License. See the file COPYING in the main directory of this archive for + * more details. + */ + +#include <linux/delay.h> +#include <linux/err.h> +#include <linux/fb.h> +#include <linux/init.h> +#include <linux/kernel.h> +#include <linux/module.h> +#include <linux/gpio.h> +#include <video/sh_mobile_lcdc.h> +#include <mach/kfr2r09.h> +#include <cpu/sh7724.h> + +/* The on-board LCD module is a Hitachi TX07D34VM0AAA. This module is made + * up of a 240x400 LCD hooked up to a R61517 driver IC. The driver IC is + * communicating with the main port of the LCDC using an 18-bit SYS interface. + * + * The device code for this LCD module is 0x01221517. + */ + +static const unsigned char data_frame_if[] = { + 0x02, /* WEMODE: 1=cont, 0=one-shot */ + 0x00, 0x00, + 0x00, /* EPF, DFM */ + 0x02, /* RIM[1] : 1 (18bpp) */ +}; + +static const unsigned char data_panel[] = { + 0x0b, + 0x63, /* 400 lines */ + 0x04, 0x00, 0x00, 0x04, 0x11, 0x00, 0x00, +}; + +static const unsigned char data_timing[] = { + 0x00, 0x00, 0x13, 0x08, 0x08, +}; + +static const unsigned char data_timing_src[] = { + 0x11, 0x01, 0x00, 0x01, +}; + +static const unsigned char data_gamma[] = { + 0x01, 0x02, 0x08, 0x23, 0x03, 0x0c, 0x00, 0x06, 0x00, 0x00, + 0x01, 0x00, 0x0c, 0x23, 0x03, 0x08, 0x02, 0x06, 0x00, 0x00, +}; + +static const unsigned char data_power[] = { + 0x07, 0xc5, 0xdc, 0x02, 0x33, 0x0a, +}; + +static unsigned long read_reg(void *sohandle, + struct sh_mobile_lcdc_sys_bus_ops *so) +{ + return so->read_data(sohandle); +} + +static void write_reg(void *sohandle, + struct sh_mobile_lcdc_sys_bus_ops *so, + int i, unsigned long v) +{ + if (i) + so->write_data(sohandle, v); /* PTH4/LCDRS High [param, 17:0] */ + else + so->write_index(sohandle, v); /* PTH4/LCDRS Low [cmd, 7:0] */ +} + +static void write_data(void *sohandle, + struct sh_mobile_lcdc_sys_bus_ops *so, + unsigned char const *data, int no_data) +{ + int i; + + for (i = 0; i < no_data; i++) + write_reg(sohandle, so, 1, data[i]); +} + +static unsigned long read_device_code(void *sohandle, + struct sh_mobile_lcdc_sys_bus_ops *so) +{ + unsigned long device_code; + + /* access protect OFF */ + write_reg(sohandle, so, 0, 0xb0); + write_reg(sohandle, so, 1, 0x00); + + /* deep standby OFF */ + write_reg(sohandle, so, 0, 0xb1); + write_reg(sohandle, so, 1, 0x00); + + /* device code command */ + write_reg(sohandle, so, 0, 0xbf); + mdelay(50); + + /* dummy read */ + read_reg(sohandle, so); + + /* read device code */ + device_code = ((read_reg(sohandle, so) & 0xff) << 24); + device_code |= ((read_reg(sohandle, so) & 0xff) << 16); + device_code |= ((read_reg(sohandle, so) & 0xff) << 8); + device_code |= (read_reg(sohandle, so) & 0xff); + + return device_code; +} + +static void write_memory_start(void *sohandle, + struct sh_mobile_lcdc_sys_bus_ops *so) +{ + write_reg(sohandle, so, 0, 0x2c); +} + +static void clear_memory(void *sohandle, + struct sh_mobile_lcdc_sys_bus_ops *so) +{ + int i; + + /* write start */ + write_memory_start(sohandle, so); + + /* paint it black */ + for (i = 0; i < (240 * 400); i++) + write_reg(sohandle, so, 1, 0x00); +} + +static void display_on(void *sohandle, + struct sh_mobile_lcdc_sys_bus_ops *so) +{ + /* access protect off */ + write_reg(sohandle, so, 0, 0xb0); + write_reg(sohandle, so, 1, 0x00); + + /* exit deep standby mode */ + write_reg(sohandle, so, 0, 0xb1); + write_reg(sohandle, so, 1, 0x00); + + /* frame memory I/F */ + write_reg(sohandle, so, 0, 0xb3); + write_data(sohandle, so, data_frame_if, ARRAY_SIZE(data_frame_if)); + + /* display mode and frame memory write mode */ + write_reg(sohandle, so, 0, 0xb4); + write_reg(sohandle, so, 1, 0x00); /* DBI, internal clock */ + + /* panel */ + write_reg(sohandle, so, 0, 0xc0); + write_data(sohandle, so, data_panel, ARRAY_SIZE(data_panel)); + + /* timing (normal) */ + write_reg(sohandle, so, 0, 0xc1); + write_data(sohandle, so, data_timing, ARRAY_SIZE(data_timing)); + + /* timing (partial) */ + write_reg(sohandle, so, 0, 0xc2); + write_data(sohandle, so, data_timing, ARRAY_SIZE(data_timing)); + + /* timing (idle) */ + write_reg(sohandle, so, 0, 0xc3); + write_data(sohandle, so, data_timing, ARRAY_SIZE(data_timing)); + + /* timing (source/VCOM/gate driving) */ + write_reg(sohandle, so, 0, 0xc4); + write_data(sohandle, so, data_timing_src, ARRAY_SIZE(data_timing_src)); + + /* gamma (red) */ + write_reg(sohandle, so, 0, 0xc8); + write_data(sohandle, so, data_gamma, ARRAY_SIZE(data_gamma)); + + /* gamma (green) */ + write_reg(sohandle, so, 0, 0xc9); + write_data(sohandle, so, data_gamma, ARRAY_SIZE(data_gamma)); + + /* gamma (blue) */ + write_reg(sohandle, so, 0, 0xca); + write_data(sohandle, so, data_gamma, ARRAY_SIZE(data_gamma)); + + /* power (common) */ + write_reg(sohandle, so, 0, 0xd0); + write_data(sohandle, so, data_power, ARRAY_SIZE(data_power)); + + /* VCOM */ + write_reg(sohandle, so, 0, 0xd1); + write_reg(sohandle, so, 1, 0x00); + write_reg(sohandle, so, 1, 0x0f); + write_reg(sohandle, so, 1, 0x02); + + /* power (normal) */ + write_reg(sohandle, so, 0, 0xd2); + write_reg(sohandle, so, 1, 0x63); + write_reg(sohandle, so, 1, 0x24); + + /* power (partial) */ + write_reg(sohandle, so, 0, 0xd3); + write_reg(sohandle, so, 1, 0x63); + write_reg(sohandle, so, 1, 0x24); + + /* power (idle) */ + write_reg(sohandle, so, 0, 0xd4); + write_reg(sohandle, so, 1, 0x63); + write_reg(sohandle, so, 1, 0x24); + + write_reg(sohandle, so, 0, 0xd8); + write_reg(sohandle, so, 1, 0x77); + write_reg(sohandle, so, 1, 0x77); + + /* TE signal */ + write_reg(sohandle, so, 0, 0x35); + write_reg(sohandle, so, 1, 0x00); + + /* TE signal line */ + write_reg(sohandle, so, 0, 0x44); + write_reg(sohandle, so, 1, 0x00); + write_reg(sohandle, so, 1, 0x00); + + /* column address */ + write_reg(sohandle, so, 0, 0x2a); + write_reg(sohandle, so, 1, 0x00); + write_reg(sohandle, so, 1, 0x00); + write_reg(sohandle, so, 1, 0x00); + write_reg(sohandle, so, 1, 0xef); + + /* page address */ + write_reg(sohandle, so, 0, 0x2b); + write_reg(sohandle, so, 1, 0x00); + write_reg(sohandle, so, 1, 0x00); + write_reg(sohandle, so, 1, 0x01); + write_reg(sohandle, so, 1, 0x8f); + + /* exit sleep mode */ + write_reg(sohandle, so, 0, 0x11); + + mdelay(120); + + /* clear vram */ + clear_memory(sohandle, so); + + /* display ON */ + write_reg(sohandle, so, 0, 0x29); + mdelay(1); + + write_memory_start(sohandle, so); +} + +int kfr2r09_lcd_setup(void *board_data, void *sohandle, + struct sh_mobile_lcdc_sys_bus_ops *so) +{ + /* power on */ + gpio_set_value(GPIO_PTF4, 0); /* PROTECT/ -> L */ + gpio_set_value(GPIO_PTE4, 0); /* LCD_RST/ -> L */ + gpio_set_value(GPIO_PTF4, 1); /* PROTECT/ -> H */ + udelay(1100); + gpio_set_value(GPIO_PTE4, 1); /* LCD_RST/ -> H */ + udelay(10); + gpio_set_value(GPIO_PTF4, 0); /* PROTECT/ -> L */ + mdelay(20); + + if (read_device_code(sohandle, so) != 0x01221517) + return -ENODEV; + + pr_info("KFR2R09 WQVGA LCD Module detected.\n"); + + display_on(sohandle, so); + return 0; +} + +#define CTRL_CKSW 0x10 +#define CTRL_C10 0x20 +#define CTRL_CPSW 0x80 +#define MAIN_MLED4 0x40 +#define MAIN_MSW 0x80 + +static int kfr2r09_lcd_backlight(int on) +{ + struct i2c_adapter *a; + struct i2c_msg msg; + unsigned char buf[2]; + int ret; + + a = i2c_get_adapter(0); + if (!a) + return -ENODEV; + + buf[0] = 0x00; + if (on) + buf[1] = CTRL_CPSW | CTRL_C10 | CTRL_CKSW; + else + buf[1] = 0; + + msg.addr = 0x75; + msg.buf = buf; + msg.len = 2; + msg.flags = 0; + ret = i2c_transfer(a, &msg, 1); + if (ret != 1) + return -ENODEV; + + buf[0] = 0x01; + if (on) + buf[1] = MAIN_MSW | MAIN_MLED4 | 0x0c; + else + buf[1] = 0; + + msg.addr = 0x75; + msg.buf = buf; + msg.len = 2; + msg.flags = 0; + ret = i2c_transfer(a, &msg, 1); + if (ret != 1) + return -ENODEV; + + return 0; +} + +void kfr2r09_lcd_on(void *board_data) +{ + kfr2r09_lcd_backlight(1); +} + +void kfr2r09_lcd_off(void *board_data) +{ + kfr2r09_lcd_backlight(0); +} --- 0001/arch/sh/boards/mach-kfr2r09/setup.c +++ work/arch/sh/boards/mach-kfr2r09/setup.c 2009-08-06 21:33:53.000000000 +0900 @@ -15,11 +15,13 @@ #include <linux/clk.h> #include <linux/gpio.h> #include <linux/input.h> +#include <video/sh_mobile_lcdc.h> #include <asm/clock.h> #include <asm/machvec.h> #include <asm/io.h> #include <asm/sh_keysc.h> #include <cpu/sh7724.h> +#include <mach/kfr2r09.h> static struct mtd_partition kfr2r09_nor_flash_partitions[] { @@ -97,9 +99,70 @@ static struct platform_device kfr2r09_sh }, }; +static struct sh_mobile_lcdc_info kfr2r09_sh_lcdc_info = { + .clock_source = LCDC_CLK_BUS, + .ch[0] = { + .chan = LCDC_CHAN_MAINLCD, + .bpp = 16, + .interface_type = SYS18, + .clock_divider = 6, + .flags = LCDC_FLAGS_DWPOL, + .lcd_cfg = { + .name = "TX07D34VM0AAA", + .xres = 240, + .yres = 400, + .left_margin = 0, + .right_margin = 16, + .hsync_len = 8, + .upper_margin = 0, + .lower_margin = 1, + .vsync_len = 1, + .sync = FB_SYNC_HOR_HIGH_ACT | FB_SYNC_VERT_HIGH_ACT, + }, + .lcd_size_cfg = { + .width = 35, + .height = 58, + }, + .board_cfg = { + .setup_sys = kfr2r09_lcd_setup, + .display_on = kfr2r09_lcd_on, + .display_off = kfr2r09_lcd_off, + }, + .sys_bus_cfg = { + .ldmt2r = 0x07010904, + .ldmt3r = 0x14012914, + /* set 1s delay to encourage fsync() */ + .deferred_io_msec = 1000, + }, + } +}; + +static struct resource kfr2r09_sh_lcdc_resources[] = { + [0] = { + .name = "LCDC", + .start = 0xfe940000, /* P4-only space */ + .end = 0xfe941fff, + .flags = IORESOURCE_MEM, + }, + [1] = { + .start = 106, + .flags = IORESOURCE_IRQ, + }, +}; + +static struct platform_device kfr2r09_sh_lcdc_device = { + .name = "sh_mobile_lcdc_fb", + .num_resources = ARRAY_SIZE(kfr2r09_sh_lcdc_resources), + .resource = kfr2r09_sh_lcdc_resources, + .dev = { + .platform_data = &kfr2r09_sh_lcdc_info, + }, +}; + static struct platform_device *kfr2r09_devices[] __initdata = { &kfr2r09_nor_flash_device, &kfr2r09_sh_keysc_device, + &kfr2r09_sh_lcdc_device, }; #define BSC_CS0BCR 0xfec10004 @@ -128,6 +191,37 @@ static int __init kfr2r09_devices_setup( gpio_request(GPIO_FN_KEYIN4, NULL); gpio_request(GPIO_FN_KEYOUT5_IN5, NULL); + /* setup LCDC pins for SYS panel */ + gpio_request(GPIO_FN_LCDD17, NULL); + gpio_request(GPIO_FN_LCDD16, NULL); + gpio_request(GPIO_FN_LCDD15, NULL); + gpio_request(GPIO_FN_LCDD14, NULL); + gpio_request(GPIO_FN_LCDD13, NULL); + gpio_request(GPIO_FN_LCDD12, NULL); + gpio_request(GPIO_FN_LCDD11, NULL); + gpio_request(GPIO_FN_LCDD10, NULL); + gpio_request(GPIO_FN_LCDD9, NULL); + gpio_request(GPIO_FN_LCDD8, NULL); + gpio_request(GPIO_FN_LCDD7, NULL); + gpio_request(GPIO_FN_LCDD6, NULL); + gpio_request(GPIO_FN_LCDD5, NULL); + gpio_request(GPIO_FN_LCDD4, NULL); + gpio_request(GPIO_FN_LCDD3, NULL); + gpio_request(GPIO_FN_LCDD2, NULL); + gpio_request(GPIO_FN_LCDD1, NULL); + gpio_request(GPIO_FN_LCDD0, NULL); + gpio_request(GPIO_FN_LCDRS, NULL); /* LCD_RS */ + gpio_request(GPIO_FN_LCDCS, NULL); /* LCD_CS/ */ + gpio_request(GPIO_FN_LCDRD, NULL); /* LCD_RD/ */ + gpio_request(GPIO_FN_LCDWR, NULL); /* LCD_WR/ */ + gpio_request(GPIO_FN_LCDVSYN, NULL); /* LCD_VSYNC */ + gpio_request(GPIO_PTE4, NULL); /* LCD_RST/ */ + gpio_direction_output(GPIO_PTE4, 1); + gpio_request(GPIO_PTF4, NULL); /* PROTECT/ */ + gpio_direction_output(GPIO_PTF4, 1); + gpio_request(GPIO_PTU0, NULL); /* LEDSTDBY/ */ + gpio_direction_output(GPIO_PTU0, 1); + return platform_add_devices(kfr2r09_devices, ARRAY_SIZE(kfr2r09_devices)); } --- /dev/null +++ work/arch/sh/include/mach-kfr2r09/mach/kfr2r09.h 2009-08-06 21:33:53.000000000 +0900 @@ -0,0 +1,21 @@ +#ifndef __ASM_SH_KFR2R09_H +#define __ASM_SH_KFR2R09_H + +#include <video/sh_mobile_lcdc.h> + +#ifdef CONFIG_FB_SH_MOBILE_LCDC +void kfr2r09_lcd_on(void *board_data); +void kfr2r09_lcd_off(void *board_data); +int kfr2r09_lcd_setup(void *board_data, void *sys_ops_handle, + struct sh_mobile_lcdc_sys_bus_ops *sys_ops); +#else +static inline void kfr2r09_lcd_on(void *board_data) {} +static inline void kfr2r09_lcd_off(void *board_data) {} +static inline int kfr2r09_lcd_setup(void *board_data, void *sys_ops_handle, + struct sh_mobile_lcdc_sys_bus_ops *sys_ops) +{ + return -ENODEV; +} +#endif + +#endif /* __ASM_SH_KFR2R09_H */ ^ permalink raw reply [flat|nested] 8+ messages in thread
* [PATCH] sh: 18-bit SYS panel fix for SuperH Mobile LCDC @ 2009-08-06 14:34 ` Magnus Damm 2009-08-06 14:28 ` [PATCH] sh: LCDC SYS bus access wait fix Magnus Damm 0 siblings, 1 reply; 8+ messages in thread From: Magnus Damm @ 2009-08-06 14:34 UTC (permalink / raw) To: linux-sh From: Magnus Damm <damm@igel.co.jp> Fix the SuperH Mobile LCDC driver to make use of the full 18-bit DRD field in the LDDRDR register. Without this patch only 16-bit register access is possible. Needed by 18-bit SYS panels such as the one used on kfr2r09. Signed-off-by: Magnus Damm <damm@igel.co.jp> --- Tested on Migo-R and kfr2r09. Applies on top of the wait bit fix. drivers/video/sh_mobile_lcdcfb.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) --- 0003/drivers/video/sh_mobile_lcdcfb.c +++ work/drivers/video/sh_mobile_lcdcfb.c 2009-08-06 21:44:44.000000000 +0900 @@ -177,7 +177,7 @@ static unsigned long lcdc_sys_read_data( udelay(1); lcdc_wait_bit(ch->lcdc, _LDSR, 2, 0); - return lcdc_read(ch->lcdc, _LDDRDR) & 0xffff; + return lcdc_read(ch->lcdc, _LDDRDR) & 0x3ffff; } struct sh_mobile_lcdc_sys_bus_ops sh_mobile_lcdc_sys_bus_ops = { ^ permalink raw reply [flat|nested] 8+ messages in thread
* [PATCH] sh: LCDC SYS bus access wait fix @ 2009-08-06 14:28 ` Magnus Damm 2009-08-13 3:03 ` Paul Mundt 0 siblings, 1 reply; 8+ messages in thread From: Magnus Damm @ 2009-08-06 14:28 UTC (permalink / raw) To: linux-sh From: Magnus Damm <damm@igel.co.jp> Update the SuperH Mobile LCDC driver to wait for SYS bus to become idle after reading or writing. This is needed by the kfr2r09 board, but also fixes potential problems on other boards making use of the LCDC in a SYS configuration. Signed-off-by: Magnus Damm <damm@igel.co.jp> --- Tested on Migo-R and kfr2r09. drivers/video/sh_mobile_lcdcfb.c | 3 +++ 1 file changed, 3 insertions(+) --- 0001/drivers/video/sh_mobile_lcdcfb.c +++ work/drivers/video/sh_mobile_lcdcfb.c 2009-08-06 21:34:30.000000000 +0900 @@ -154,6 +154,7 @@ static void lcdc_sys_write_index(void *h lcdc_write(ch->lcdc, _LDDWD0R, data | 0x10000000); lcdc_wait_bit(ch->lcdc, _LDSR, 2, 0); lcdc_write(ch->lcdc, _LDDWAR, 1 | (lcdc_chan_is_sublcd(ch) ? 2 : 0)); + lcdc_wait_bit(ch->lcdc, _LDSR, 2, 0); } static void lcdc_sys_write_data(void *handle, unsigned long data) @@ -163,6 +164,7 @@ static void lcdc_sys_write_data(void *ha lcdc_write(ch->lcdc, _LDDWD0R, data | 0x11000000); lcdc_wait_bit(ch->lcdc, _LDSR, 2, 0); lcdc_write(ch->lcdc, _LDDWAR, 1 | (lcdc_chan_is_sublcd(ch) ? 2 : 0)); + lcdc_wait_bit(ch->lcdc, _LDSR, 2, 0); } static unsigned long lcdc_sys_read_data(void *handle) @@ -173,6 +175,7 @@ static unsigned long lcdc_sys_read_data( lcdc_wait_bit(ch->lcdc, _LDSR, 2, 0); lcdc_write(ch->lcdc, _LDDRAR, 1 | (lcdc_chan_is_sublcd(ch) ? 2 : 0)); udelay(1); + lcdc_wait_bit(ch->lcdc, _LDSR, 2, 0); return lcdc_read(ch->lcdc, _LDDRDR) & 0xffff; } ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH] sh: LCDC SYS bus access wait fix 2009-08-06 14:28 ` [PATCH] sh: LCDC SYS bus access wait fix Magnus Damm @ 2009-08-13 3:03 ` Paul Mundt 0 siblings, 0 replies; 8+ messages in thread From: Paul Mundt @ 2009-08-13 3:03 UTC (permalink / raw) To: Magnus Damm; +Cc: linux-sh, tony, kyungmin.park, linux-mtd, akpm, dwmw2 On Thu, Aug 06, 2009 at 11:28:12PM +0900, Magnus Damm wrote: > Update the SuperH Mobile LCDC driver to wait for SYS bus to > become idle after reading or writing. This is needed by the > kfr2r09 board, but also fixes potential problems on other > boards making use of the LCDC in a SYS configuration. On Thu, Aug 06, 2009 at 11:34:38PM +0900, Magnus Damm wrote: > Fix the SuperH Mobile LCDC driver to make use of the full > 18-bit DRD field in the LDDRDR register. Without this patch > only 16-bit register access is possible. Needed by 18-bit > SYS panels such as the one used on kfr2r09. On Thu, Aug 06, 2009 at 11:51:30PM +0900, Magnus Damm wrote: > This patch adds support for the WQVGA LCD display used by > the KFR2R09 board. The LCD module is a TX07D34VM0AAA made > by Hitachi, and this module is made up by a R61517 chip > together with a 240x400 pixel display. The screen is > attached to the SuperH Mobile LCDC using a 18-bit SYS bus. > > The register settings used by the SYS panel setup code are > based on an out-of-tree driver which apart from duplicating > all LCDC driver code and writing to non-existing hardware > registers also never was posted for upstream merge. On Thu, Aug 06, 2009 at 11:58:43PM +0900, Magnus Damm wrote: > This patch adds support for the NAND flash chip > attached to CS4 on the KFR2R09 board. The device is > driven by the platform device driver "onenand-flash". On Fri, Aug 07, 2009 at 12:03:43AM +0900, Magnus Damm wrote: > This patch adds support for LED9, LED10 and LED11 on > the Solution Engine 7724 board. If CONFIG_PM is enabled > then these LEDs are used to show the hardware sleep > mode used by the processor. Useful to debug cpuidle. On Fri, Aug 07, 2009 at 12:12:27AM +0900, Magnus Damm wrote: > This patch moves all the romImage related header files into > the mach/ directory. On Fri, Aug 07, 2009 at 12:16:29AM +0900, Magnus Damm wrote: > This patch moves the Migo-R specific header file from > mach-common/ into mach-migor/ and removes unused cruft. All applied, thanks. ^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2009-08-13 3:03 UTC | newest] Thread overview: 8+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2009-08-06 15:16 [PATCH] sh: clean up Migo-R header file Magnus Damm 2009-08-06 15:12 ` [PATCH] sh: fix romImage mach dir usage Magnus Damm 2009-08-06 15:03 ` [PATCH] sh: LED9, LED10 and LED11 support for Solution Engine 7724 Magnus Damm 2009-08-06 14:58 ` [PATCH] sh: kfr2r09 board support - NAND flash Magnus Damm 2009-08-06 14:51 ` [PATCH] sh: kfr2r09 board support - LCDC panel Magnus Damm 2009-08-06 14:34 ` [PATCH] sh: 18-bit SYS panel fix for SuperH Mobile LCDC Magnus Damm 2009-08-06 14:28 ` [PATCH] sh: LCDC SYS bus access wait fix Magnus Damm 2009-08-13 3:03 ` Paul Mundt
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox