ARM: Patchset for CLPS711X
Subsystems (5)
v3 cover ARM: Patchset for CLPS711X
Here is a v3 patchset for a CLPS711X-target.
The main direction of this patchset - approaching the platform to the possibility of using configurations with multiple platforms in a single kernel. Added support of the majority of the necessary kernel symbol. Also part of the driver code used only for the platform was moved to the board code and converted to the use of standard drivers.
Alexander Shiyan (18):
ARM: clps711x: Using platform_driver for ethernet device
ARM: clps711x: p720t: Using "leds-gpio" driver for LED control
ARM: clps711x: Transform clps711x-framebuffer to platform driver and
use it
ARM: clps711x: p720t: Unneeded inclusion of head-sa1100.S removed
ARM: clps711x: Always select AUTO_ZRELADDR for a platform
ARM: clps711x: cdb89712: Special driver for handling memory is
removed
ARM: clps711x: Implement usage "SPARSE_IRQ" kernel option for a
platform
ARM: clps711x: Implement usage "MULTI_IRQ_HANDLER" kernel option for
a platform
ARM: clps711x: Add FIQ interrupt handling
ARM: clps711x: Unused empty "ACK" calls for IRQ-chips removed
ARM: clps711x: autcpu12: Special driver for handling NAND memory is
removed
ARM: clps711x: Moving power management of framebuffer driver to the
board
ARM: clps711x: p720t: Special driver for handling NAND memory is
removed
ARM: clps711x: Moving backlight controls of framebuffer driver to the
board
ARM: clps711x: edb7211: Add support for NOR-Flash
ARM: clps711x: Rename board files to match functionality
ARM: clps711x: Update defconfig due latest changes and new kernel
symbols
MAINTAINERS: Add ARM CLPS711X entry
MAINTAINERS | 6 +
arch/arm/Kconfig | 3 +
arch/arm/boot/compressed/Makefile | 5 -
arch/arm/configs/clps711x_defconfig | 30 ++-
arch/arm/mach-clps711x/Kconfig | 2 -
arch/arm/mach-clps711x/Makefile | 12 +-
arch/arm/mach-clps711x/Makefile.boot | 1 -
arch/arm/mach-clps711x/autcpu12.c | 83 ------
arch/arm/mach-clps711x/board-autcpu12.c | 179 +++++++++++++
arch/arm/mach-clps711x/board-cdb89712.c | 147 +++++++++++
.../mach-clps711x/{clep7312.c => board-clep7312.c} | 4 +-
arch/arm/mach-clps711x/board-edb7211.c | 180 +++++++++++++
.../mach-clps711x/{fortunet.c => board-fortunet.c} | 2 +
arch/arm/mach-clps711x/board-p720t.c | 232 ++++++++++++++++
arch/arm/mach-clps711x/cdb89712.c | 63 -----
arch/arm/mach-clps711x/common.c | 92 ++++++--
arch/arm/mach-clps711x/common.h | 7 +-
arch/arm/mach-clps711x/edb7211.c | 88 ------
arch/arm/mach-clps711x/include/mach/autcpu12.h | 13 -
arch/arm/mach-clps711x/include/mach/clps711x.h | 24 ++
arch/arm/mach-clps711x/include/mach/entry-macro.S | 51 ----
arch/arm/mach-clps711x/include/mach/hardware.h | 25 +--
arch/arm/mach-clps711x/include/mach/irqs.h | 46 ----
arch/arm/mach-clps711x/p720t.c | 173 ------------
drivers/mtd/maps/Kconfig | 7 -
drivers/mtd/maps/Makefile | 1 -
drivers/mtd/maps/cdb89712.c | 278 --------------------
drivers/mtd/nand/Kconfig | 13 -
drivers/mtd/nand/Makefile | 2 -
drivers/mtd/nand/autcpu12.c | 237 -----------------
drivers/mtd/nand/spia.c | 176 -------------
drivers/video/clps711xfb.c | 156 ++----------
32 files changed, 907 insertions(+), 1431 deletions(-)
delete mode 100644 arch/arm/mach-clps711x/autcpu12.c
create mode 100644 arch/arm/mach-clps711x/board-autcpu12.c
create mode 100644 arch/arm/mach-clps711x/board-cdb89712.c
rename arch/arm/mach-clps711x/{clep7312.c => board-clep7312.c} (95%)
create mode 100644 arch/arm/mach-clps711x/board-edb7211.c
rename arch/arm/mach-clps711x/{fortunet.c => board-fortunet.c} (96%)
create mode 100644 arch/arm/mach-clps711x/board-p720t.c
delete mode 100644 arch/arm/mach-clps711x/cdb89712.c
delete mode 100644 arch/arm/mach-clps711x/edb7211.c
delete mode 100644 arch/arm/mach-clps711x/include/mach/entry-macro.S
delete mode 100644 arch/arm/mach-clps711x/include/mach/irqs.h
delete mode 100644 arch/arm/mach-clps711x/p720t.c
delete mode 100644 drivers/mtd/maps/cdb89712.c
delete mode 100644 drivers/mtd/nand/autcpu12.c
delete mode 100644 drivers/mtd/nand/spia.cSignature · 1 line
1.7.8.6
PATCH v3 1/18 ARM: clps711x: Using platform_driver for ethernet device
This patch removes static mappings for ethernet devices. Now we will use platform_driver for ethernet devices.
--- arch/arm/mach-clps711x/Kconfig | 2 - arch/arm/mach-clps711x/autcpu12.c | 27 +++++++++------------- arch/arm/mach-clps711x/cdb89712.c | 28 +++++++++++------------ arch/arm/mach-clps711x/edb7211.c | 26 ++++++++++++++++------ arch/arm/mach-clps711x/include/mach/autcpu12.h | 3 -- arch/arm/mach-clps711x/include/mach/hardware.h | 11 --------- 6 files changed, 43 insertions(+), 54 deletions(-)
arch/arm/mach-clps711x/Kconfig +0 -2
@@ -10,7 +10,6 @@ config ARCH_AUTCPU12 config ARCH_CDB89712 bool "CDB89712" - select ISA help This is an evaluation board from Cirrus for the CS89712 processor. The board includes 2 serial ports, Ethernet, IRDA, and expansion
@@ -25,7 +24,6 @@ config ARCH_EDB7211 bool "EDB7211" select ARCH_SELECT_MEMORY_MODEL select ARCH_SPARSEMEM_ENABLE - select ISA help Say Y here if you intend to run this kernel on a Cirrus Logic EDB-7211 evaluation board.
arch/arm/mach-clps711x/autcpu12.c +11 -16
@@ -24,6 +24,7 @@#include <linux/mm.h> #include <linux/io.h> #include <linux/ioport.h> +#include <linux/interrupt.h> #include <linux/platform_device.h> #include <mach/hardware.h>
@@ -39,21 +40,13 @@#include "common.h" -static struct map_desc autcpu12_io_desc[]__initdata = { -/* Memory-mapped extra io and CS8900A Ethernet chip */ - { - .virtual =IO_ADDRESS (AUTCPU12_PHYS_CS8900A ), - .pfn =__phys_to_pfn (AUTCPU12_PHYS_CS8900A ), - .length =SZ_1M , - .type =MT_DEVICE - } -}; +#define AUTCPU12_CS8900_BASE (CS2_PHYS_BASE + 0x300) +#define AUTCPU12_CS8900_IRQ (IRQ_EINT3) -void __init autcpu12_map_io (void ) -{ -clps711x_map_io (); -iotable_init (autcpu12_io_desc,ARRAY_SIZE (autcpu12_io_desc)); -} +static struct resource autcpu12_cs8900_resource[]__initdata = { +DEFINE_RES_MEM (AUTCPU12_CS8900_BASE ,SZ_1K ), +DEFINE_RES_IRQ (AUTCPU12_CS8900_IRQ ), +};static struct resource autcpu12_nvram_resource[]__initdata = {DEFINE_RES_MEM_NAMED (AUTCPU12_PHYS_NVRAM ,SZ_128K ,"SRAM" ),
@@ -68,16 +61,18 @@ static struct platform_device autcpu12_nvram_pdev __initdata = {static void __init autcpu12_init (void ) { +platform_device_register_simple ("cs89x0" ,0 , autcpu12_cs8900_resource, +ARRAY_SIZE (autcpu12_cs8900_resource));platform_device_register (&autcpu12_nvram_pdev); }MACHINE_START (AUTCPU12 ,"autronix autcpu12" )/* Maintainer: Thomas Gleixner */ .atag_offset = 0x20000, - .init_machine = autcpu12_init, - .map_io = autcpu12_map_io, + .map_io = clps711x_map_io, .init_irq = clps711x_init_irq, .timer = &clps711x_timer, + .init_machine = autcpu12_init, .restart = clps711x_restart,MACHINE_END
arch/arm/mach-clps711x/cdb89712.c +13 -15
@@ -23,6 +23,8 @@#include <linux/string.h> #include <linux/mm.h> #include <linux/io.h> +#include <linux/interrupt.h> +#include <linux/platform_device.h> #include <mach/hardware.h> #include <asm/pgtable.h>
@@ -34,30 +36,26 @@#include "common.h" -/* -* Map the CS89712 Ethernet port. That should be moved to the -* ethernet driver, perhaps. -*/ -static struct map_desc cdb89712_io_desc[]__initdata = { - { - .virtual =IO_ADDRESS (ETHER_PHYS_BASE ), - .pfn =__phys_to_pfn (ETHER_PHYS_BASE ), - .length =ETHER_SIZE , - .type =MT_DEVICE - } +#define CDB89712_CS8900_BASE (CS2_PHYS_BASE + 0x300) +#define CDB89712_CS8900_IRQ (IRQ_EINT3) + +static struct resource cdb89712_cs8900_resource[]__initdata = { +DEFINE_RES_MEM (CDB89712_CS8900_BASE ,SZ_1K ), +DEFINE_RES_IRQ (CDB89712_CS8900_IRQ ), }; -static void __init cdb89712_map_io (void ) +static void __init cdb89712_init (void ) { -clps711x_map_io (); -iotable_init (cdb89712_io_desc,ARRAY_SIZE (cdb89712_io_desc)); +platform_device_register_simple ("cs89x0" ,0 , cdb89712_cs8900_resource, +ARRAY_SIZE (cdb89712_cs8900_resource)); }MACHINE_START (CDB89712 ,"Cirrus-CDB89712" )/* Maintainer: Ray Lehtiniemi */ .atag_offset = 0x100, - .map_io = cdb89712_map_io, + .map_io = clps711x_map_io, .init_irq = clps711x_init_irq, .timer = &clps711x_timer, + .init_machine = cdb89712_init, .restart = clps711x_restart,MACHINE_END
arch/arm/mach-clps711x/edb7211.c +19 -7
@@ -10,6 +10,8 @@#include <linux/init.h> #include <linux/memblock.h> #include <linux/types.h> +#include <linux/interrupt.h> +#include <linux/platform_device.h> #include <asm/setup.h> #include <asm/mach/map.h>
@@ -20,7 +22,15 @@#include "common.h" -#define VIDEORAM_SIZE SZ_128K +#define VIDEORAM_SIZE SZ_128K + +#define EDB7211_CS8900_BASE (CS2_PHYS_BASE + 0x300) +#define EDB7211_CS8900_IRQ (IRQ_EINT3) + +static struct resource edb7211_cs8900_resource[]__initdata = { +DEFINE_RES_MEM (EDB7211_CS8900_BASE ,SZ_1K ), +DEFINE_RES_IRQ (EDB7211_CS8900_IRQ ), +};static struct map_desc edb7211_io_desc[]__initdata = { {/* Memory-mapped extra keyboard row */
@@ -28,11 +38,6 @@ static struct map_desc edb7211_io_desc[] __initdata = { .pfn = __phys_to_pfn(EP7211_PHYS_EXTKBD), .length = SZ_1M, .type = MT_DEVICE, - }, { /* CS8900A Ethernet chip */ - .virtual = IO_ADDRESS(EP7211_PHYS_CS8900A), - .pfn = __phys_to_pfn(EP7211_PHYS_CS8900A), - .length = SZ_1M, - .type = MT_DEVICE, }, { /* Flash bank 0 */ .virtual = IO_ADDRESS(EP7211_PHYS_FLASH1), .pfn = __phys_to_pfn(EP7211_PHYS_FLASH1),
@@ -76,13 +81,20 @@ fixup_edb7211(struct tag *tags, char **cmdline, struct meminfo *mi) mi->nr_banks =2 ; } +static void __init edb7211_init (void ) +{ +platform_device_register_simple ("cs89x0" ,0 , edb7211_cs8900_resource, +ARRAY_SIZE (edb7211_cs8900_resource)); +} +MACHINE_START (EDB7211 ,"CL-EDB7211 (EP7211 eval board)" )/* Maintainer: Jon McClintock */ .atag_offset = VIDEORAM_SIZE + 0x100, .fixup = fixup_edb7211, - .map_io = edb7211_map_io, .reserve = edb7211_reserve, + .map_io = edb7211_map_io, .init_irq = clps711x_init_irq, .timer = &clps711x_timer, + .init_machine = edb7211_init, .restart = clps711x_restart,MACHINE_END
arch/arm/mach-clps711x/include/mach/autcpu12.h +0 -3
@@ -20,9 +20,6 @@#ifndef __ASM_ARCH_AUTCPU12_H#define __ASM_ARCH_AUTCPU12_H -/* The CS8900A ethernet chip has its I/O registers wired to chip select 2 */ -#define AUTCPU12_PHYS_CS8900A CS2_PHYS_BASE -/* * The flash bank is wired to chip select 0 */
arch/arm/mach-clps711x/include/mach/hardware.h +0 -11
@@ -64,22 +64,11 @@#define CS7_PHYS_BASE (0x00000000)#endif -#if defined (CONFIG_ARCH_CDB89712 ) - -#define ETHER_PHYS_BASE CS2_PHYS_BASE -#define ETHER_SIZE 0x1000 - -#endif - -#if defined (CONFIG_ARCH_EDB7211 )/* The extra 8 lines of the keyboard matrix are wired to chip select 3 */ #define EP7211_PHYS_EXTKBD CS3_PHYS_BASE -/* The CS8900A ethernet chip has its I/O registers wired to chip select 2 */ -#define EP7211_PHYS_CS8900A CS2_PHYS_BASE -/* The two flash banks are wired to chip selects 0 and 1 */ #define EP7211_PHYS_FLASH1 CS0_PHYS_BASE#define EP7211_PHYS_FLASH2 CS1_PHYS_BASE
Signature · 1 line
1.7.8.6
PATCH v3 2/18 ARM: clps711x: p720t: Using "leds-gpio" driver for LED control
In reply to Alexander ShiyanInstead of manually create LED class device, we will use "leds-gpio" driver for LED control.
--- arch/arm/mach-clps711x/common.h | 3 ++ arch/arm/mach-clps711x/p720t.c | 74 ++++++++++---------------------------- 2 files changed, 23 insertions(+), 54 deletions(-)
arch/arm/mach-clps711x/common.h +3 -0
@@ -4,6 +4,9 @@* Common bits. */ +#define CLPS711X_NR_GPIO (4 * 8 + 3) +#define CLPS711X_GPIO (prt, bit) ((prt) * 8 + (bit)) +struct sys_timer ;extern void clps711x_map_io (void );
arch/arm/mach-clps711x/p720t.c +20 -54
103 lines not on this page · raw message
Signature · 1 line
1.7.8.6
PATCH v3 3/18 ARM: clps711x: Transform clps711x-framebuffer to platform driver and use it
In reply to Alexander Shiyanclps711x-framebuffer driver needs to be updated and this is a first step to make driver better. With this patch we are convert clps711x-framebuffer to platform device and load this driver from board code.
--- arch/arm/mach-clps711x/autcpu12.c | 1 + arch/arm/mach-clps711x/edb7211.c | 1 + arch/arm/mach-clps711x/p720t.c | 6 ++++++ drivers/video/clps711xfb.c | 21 +++++++++++++++------ 4 files changed, 23 insertions(+), 6 deletions(-)
arch/arm/mach-clps711x/autcpu12.c +1 -0
@@ -61,6 +61,7 @@ static struct platform_device autcpu12_nvram_pdev __initdata = {static void __init autcpu12_init (void ) { +platform_device_register_simple ("video-clps711x" ,0 ,NULL ,0 );platform_device_register_simple ("cs89x0" ,0 , autcpu12_cs8900_resource,ARRAY_SIZE (autcpu12_cs8900_resource));platform_device_register (&autcpu12_nvram_pdev);
arch/arm/mach-clps711x/edb7211.c +1 -0
@@ -83,6 +83,7 @@ fixup_edb7211(struct tag *tags, char **cmdline, struct meminfo *mi)static void __init edb7211_init (void ) { +platform_device_register_simple ("video-clps711x" ,0 ,NULL ,0 );platform_device_register_simple ("cs89x0" ,0 , edb7211_cs8900_resource,ARRAY_SIZE (edb7211_cs8900_resource)); }
arch/arm/mach-clps711x/p720t.c +6 -0
@@ -119,6 +119,11 @@ static struct gpio_led_platform_data p720t_gpio_led_pdata __initdata = { .num_leds = ARRAY_SIZE(p720t_gpio_leds), }; +static void __init p720t_init (void ) +{ +platform_device_register_simple ("video-clps711x" ,0 ,NULL ,0 ); +} +static void __init p720t_init_late (void ) { platform_device_register_data(&platform_bus, "leds-gpio", 0,
@@ -134,6 +139,7 @@ MACHINE_START(P720T, "ARM-Prospector720T") .init_early = p720t_init_early, .init_irq = clps711x_init_irq, .timer = &clps711x_timer, + .init_machine = p720t_init, .init_late = p720t_init_late, .restart = clps711x_restart,MACHINE_END
drivers/video/clps711xfb.c +15 -6
@@ -270,7 +270,7 @@ static const struct file_operations backlight_proc_fops = { .write = backlight_proc_write, }; -static void __init clps711x_guess_lcd_params (struct fb_info *info) +static void __devinit clps711x_guess_lcd_params (struct fb_info *info) {unsigned int lcdcon, syscon, size;unsigned long phys_base =PAGE_OFFSET ;
@@ -358,7 +358,7 @@ static void __init clps711x_guess_lcd_params(struct fb_info *info) info->fix.type =FB_TYPE_PACKED_PIXELS ; } -int __init clps711xfb_init (void ) +static int __devinit clps711x_fb_probe (struct platform_device *pdev) {int err = -ENOMEM ;
@@ -410,7 +410,7 @@ int __init clps711xfb_init(void) out:return err; } -static void __exit clps711xfb_exit(void) +static int __devexit clps711x_fb_remove(struct platform_device *pdev) {unregister_framebuffer (cfb);kfree (cfb);
@@ -422,11 +422,20 @@ static void __exit clps711xfb_exit(void)PLD_LCDEN =0 ;PLD_PWR &= ~(PLD_S4_ON |PLD_S3_ON |PLD_S2_ON |PLD_S1_ON ); } + +return 0 ; } -module_init (clps711xfb_init); -module_exit (clps711xfb_exit); +static struct platform_driver clps711x_fb_driver = { + .driver = { + .name ="video-clps711x" , + .owner =THIS_MODULE , + }, + .probe = clps711x_fb_probe, + .remove =__devexit_p (clps711x_fb_remove), +}; +module_platform_driver (clps711x_fb_driver);MODULE_AUTHOR ("Russell King <[email protected]>" ); -MODULE_DESCRIPTION ("CLPS711x framebuffer driver" ); +MODULE_DESCRIPTION ("CLPS711X framebuffer driver" );MODULE_LICENSE ("GPL" );
Signature · 1 line
1.7.8.6
PATCH v3 4/18 ARM: clps711x: p720t: Unneeded inclusion of head-sa1100.S removed
In reply to Alexander Shiyan--- arch/arm/boot/compressed/Makefile | 5 ----- 1 files changed, 0 insertions(+), 5 deletions(-)
arch/arm/boot/compressed/Makefile +0 -5
@@ -45,11 +45,6 @@ ifeq ($(CONFIG_ARCH_SHARK),y) OBJS += head-shark.o ofw-shark.o endif -ifeq ($(CONFIG_ARCH_P720T),y) -# Borrow this code from SA1100 -OBJS += head-sa1100.o -endif - ifeq ($(CONFIG_ARCH_SA1100),y) OBJS += head-sa1100.o endif
Signature · 1 line
1.7.8.6
PATCH v3 5/18 ARM: clps711x: Always select AUTO_ZRELADDR for a platform
In reply to Alexander Shiyan--- arch/arm/Kconfig | 1 + arch/arm/mach-clps711x/Makefile.boot | 1 - 2 files changed, 1 insertions(+), 1 deletions(-)
arch/arm/Kconfig +1 -0
@@ -372,6 +372,7 @@ config ARCH_CNS3XXX config ARCH_CLPS711X bool "Cirrus Logic CLPS711x/EP721x/EP731x-based" select ARCH_REQUIRE_GPIOLIB + select AUTO_ZRELADDR select CLKDEV_LOOKUP select COMMON_CLK select CPU_ARM720T
arch/arm/mach-clps711x/Makefile.boot +0 -1
@@ -1,5 +1,4 @@ # The standard locations for stuff on CLPS711x type processors - zreladdr-y += 0xc0028000 params_phys-y := 0xc0000100 # Should probably have some agreement on these... initrd_phys-$(CONFIG_ARCH_P720T) := 0xc0400000
Signature · 1 line
1.7.8.6
PATCH v3 6/18 ARM: clps711x: cdb89712: Special driver for handling memory is removed
In reply to Alexander ShiyanThis patch provide migration to using "physmap-flash" and "mtd-ram" drivers instead of using special driver for handling memory.
--- arch/arm/mach-clps711x/cdb89712.c | 84 +++++++ arch/arm/mach-clps711x/include/mach/hardware.h | 3 + drivers/mtd/maps/Kconfig | 7 - drivers/mtd/maps/Makefile | 1 - drivers/mtd/maps/cdb89712.c | 278 ------------------------ 5 files changed, 87 insertions(+), 286 deletions(-) delete mode 100644 drivers/mtd/maps/cdb89712.c
arch/arm/mach-clps711x/cdb89712.c +84 -0
@@ -26,6 +26,10 @@#include <linux/interrupt.h> #include <linux/platform_device.h> +#include <linux/mtd/physmap.h> +#include <linux/mtd/plat-ram.h> +#include <linux/mtd/partitions.h> +#include <mach/hardware.h> #include <asm/pgtable.h> #include <asm/page.h>
@@ -44,8 +48,88 @@ static struct resource cdb89712_cs8900_resource[] __initdata = { DEFINE_RES_IRQ(CDB89712_CS8900_IRQ), }; +static struct mtd_partition cdb89712_flash_partitions[]__initdata = { + { + .name ="Flash" , + .offset =0 , + .size =MTDPART_SIZ_FULL , + }, +}; + +static struct physmap_flash_data cdb89712_flash_pdata__initdata = { + .width =4 , + .probe_type ="map_rom" , + .parts = cdb89712_flash_partitions, + .nr_parts =ARRAY_SIZE (cdb89712_flash_partitions), +}; + +static struct resource cdb89712_flash_resources[]__initdata = { +DEFINE_RES_MEM (CS0_PHYS_BASE ,SZ_8M ), +}; + +static struct platform_device cdb89712_flash_pdev__initdata = { + .name ="physmap-flash" , + .id =0 , + .resource = cdb89712_flash_resources, + .num_resources =ARRAY_SIZE (cdb89712_flash_resources), + .dev = { + .platform_data = &cdb89712_flash_pdata, + }, +}; + +static struct mtd_partition cdb89712_bootrom_partitions[]__initdata = { + { + .name ="BootROM" , + .offset =0 , + .size =MTDPART_SIZ_FULL , + }, +}; + +static struct physmap_flash_data cdb89712_bootrom_pdata__initdata = { + .width =4 , + .probe_type ="map_rom" , + .parts = cdb89712_bootrom_partitions, + .nr_parts =ARRAY_SIZE (cdb89712_bootrom_partitions), +}; + +static struct resource cdb89712_bootrom_resources[]__initdata = { +DEFINE_RES_NAMED (CS7_PHYS_BASE ,SZ_128 ,"BOOTROM" ,IORESOURCE_MEM | +IORESOURCE_CACHEABLE |IORESOURCE_READONLY ), +}; + +static struct platform_device cdb89712_bootrom_pdev__initdata = { + .name ="physmap-flash" , + .id =1 , + .resource = cdb89712_bootrom_resources, + .num_resources =ARRAY_SIZE (cdb89712_bootrom_resources), + .dev = { + .platform_data = &cdb89712_bootrom_pdata, + }, +}; + +static struct platdata_mtd_ram cdb89712_sram_pdata__initdata = { + .bankwidth =4 , +}; + +static struct resource cdb89712_sram_resources[]__initdata = { +DEFINE_RES_MEM (CLPS711X_SRAM_BASE ,CLPS711X_SRAM_SIZE ), +}; + +static struct platform_device cdb89712_sram_pdev__initdata = { + .name ="mtd-ram" , + .id =0 , + .resource = cdb89712_sram_resources, + .num_resources =ARRAY_SIZE (cdb89712_sram_resources), + .dev = { + .platform_data = &cdb89712_sram_pdata, + }, +}; +static void __init cdb89712_init (void ) { +platform_device_register (&cdb89712_flash_pdev); +platform_device_register (&cdb89712_bootrom_pdev); +platform_device_register (&cdb89712_sram_pdev);platform_device_register_simple ("cs89x0" ,0 , cdb89712_cs8900_resource,ARRAY_SIZE (cdb89712_cs8900_resource)); }
arch/arm/mach-clps711x/include/mach/hardware.h +3 -0
@@ -64,6 +64,9 @@#define CS7_PHYS_BASE (0x00000000)#endif +#define CLPS711X_SRAM_BASE CS6_PHYS_BASE +#define CLPS711X_SRAM_SIZE (48 * 1024) +#if defined (CONFIG_ARCH_EDB7211 )/* The extra 8 lines of the keyboard matrix are wired to chip select 3 */
drivers/mtd/maps/Kconfig +0 -7
@@ -324,13 +324,6 @@ config MTD_SOLUTIONENGINE This enables access to the flash chips on the Hitachi SolutionEngine and similar boards. Say 'Y' if you are building a kernel for such a board. -config MTD_CDB89712 - tristate "Cirrus CDB89712 evaluation board mappings" - depends on MTD_CFI && ARCH_CDB89712 - help - This enables access to the flash or ROM chips on the CDB89712 board. - If you have such a board, say 'Y'. - config MTD_SA1100 tristate "CFI Flash device mapped on StrongARM SA11x0" depends on MTD_CFI && ARCH_SA1100
drivers/mtd/maps/Makefile +0 -1
@@ -7,7 +7,6 @@ obj-$(CONFIG_MTD) += map_funcs.o endif # Chip mappings -obj-$(CONFIG_MTD_CDB89712) += cdb89712.o obj-$(CONFIG_MTD_CFI_FLAGADM) += cfi_flagadm.o obj-$(CONFIG_MTD_DC21285) += dc21285.o obj-$(CONFIG_MTD_DILNETPC) += dilnetpc.o
drivers/mtd/maps/cdb89712.c deleted +0 -278
278 lines not on this page · raw message
Signature · 1 line
1.7.8.6
PATCH v3 6/18 ARM: clps711x: cdb89712: Special driver for handling memory is removed
Hello,
I just stumbled over commit 86449336dd3c6e0edf97b971db2daa88917c1d7e (contained in v3.8-rc1) which is the result of this patch submission. So it's too late for a review comment, so if you care about my concerns you need to follow up with a new patch.
Quoted 104 lines · Alexander Shiyan
This patch provide migration to using "physmap-flash" and "mtd-ram" drivers instead of using special driver for handling memory.
Signed-off-by Alexander Shiyan <[email protected]>--- arch/arm/mach-clps711x/cdb89712.c | 84 +++++++ arch/arm/mach-clps711x/include/mach/hardware.h | 3 + drivers/mtd/maps/Kconfig | 7 - drivers/mtd/maps/Makefile | 1 - drivers/mtd/maps/cdb89712.c | 278 ------------------------ 5 files changed, 87 insertions(+), 286 deletions(-) delete mode 100644 drivers/mtd/maps/cdb89712.carch/arm/mach-clps711x/cdb89712.c +76
-0@@ -26,6 +26,10 @@#include <linux/interrupt.h> #include <linux/platform_device.h> +#include <linux/mtd/physmap.h> +#include <linux/mtd/plat-ram.h> +#include <linux/mtd/partitions.h> +#include <mach/hardware.h> #include <asm/pgtable.h> #include <asm/page.h> @@ -44,8 +48,88 @@ static struct resource cdb89712_cs8900_resource[] __initdata = { DEFINE_RES_IRQ(CDB89712_CS8900_IRQ), }; +static struct mtd_partition cdb89712_flash_partitions[]__initdata = { + { + .name ="Flash" , + .offset =0 , + .size =MTDPART_SIZ_FULL , + }, +}; + +static struct physmap_flash_data cdb89712_flash_pdata__initdata = { + .width =4 , + .probe_type ="map_rom" , + .parts = cdb89712_flash_partitions, + .nr_parts =ARRAY_SIZE (cdb89712_flash_partitions), +}; + +static struct resource cdb89712_flash_resources[]__initdata = { +DEFINE_RES_MEM (CS0_PHYS_BASE ,SZ_8M ), +}; + +static struct platform_device cdb89712_flash_pdev__initdata = { + .name ="physmap-flash" , + .id =0 , + .resource = cdb89712_flash_resources, + .num_resources =ARRAY_SIZE (cdb89712_flash_resources), + .dev = { + .platform_data = &cdb89712_flash_pdata, + }, +}; + +static struct mtd_partition cdb89712_bootrom_partitions[]__initdata = { + { + .name ="BootROM" , + .offset =0 , + .size =MTDPART_SIZ_FULL , + }, +}; + +static struct physmap_flash_data cdb89712_bootrom_pdata__initdata = { + .width =4 , + .probe_type ="map_rom" , + .parts = cdb89712_bootrom_partitions, + .nr_parts =ARRAY_SIZE (cdb89712_bootrom_partitions), +}; + +static struct resource cdb89712_bootrom_resources[]__initdata = { +DEFINE_RES_NAMED (CS7_PHYS_BASE ,SZ_128 ,"BOOTROM" ,IORESOURCE_MEM | +IORESOURCE_CACHEABLE |IORESOURCE_READONLY ), +}; + +static struct platform_device cdb89712_bootrom_pdev__initdata = { + .name ="physmap-flash" , + .id =1 , + .resource = cdb89712_bootrom_resources, + .num_resources =ARRAY_SIZE (cdb89712_bootrom_resources), + .dev = { + .platform_data = &cdb89712_bootrom_pdata, + }, +}; + +static struct platdata_mtd_ram cdb89712_sram_pdata__initdata = { + .bankwidth =4 , +}; + +static struct resource cdb89712_sram_resources[]__initdata = { +DEFINE_RES_MEM (CLPS711X_SRAM_BASE ,CLPS711X_SRAM_SIZE ), +}; + +static struct platform_device cdb89712_sram_pdev__initdata = { + .name ="mtd-ram" , + .id =0 , + .resource = cdb89712_sram_resources, + .num_resources =ARRAY_SIZE (cdb89712_sram_resources),
arch/arm/mach-clps711x/cdb89712.c static struct resource cdb89712_cs8900_resource[] __initdata = { · line 132
Quoted 10 lines
arch/arm/mach-clps711x/cdb89712.c +8
-0+ .dev = { + .platform_data = &cdb89712_sram_pdata, + }, +}; +static void __init cdb89712_init (void ) { +platform_device_register (&cdb89712_flash_pdev); +platform_device_register (&cdb89712_bootrom_pdev); +platform_device_register (&cdb89712_sram_pdev);
This is broken, all these structs are located in .init.data which is discarded after the machine is fully booted. Also platformdata must not live in init data. Consider using platform_device_register_full which allows more data to be init data.
Best regards
Uwe
Signature · 2 lines
Pengutronix e.K. | Uwe Kleine-K?nig | Industrial Linux Solutions | http://www.pengutronix.de/ |
PATCH v3 6/18 ARM: clps711x: cdb89712: Special driver for handling memory is removed
On Thu, 10 Jan 2013 15:09:21 +0100
Uwe Kleine-K?nig <[email protected]> wrote:
...
Quoted 9 lines
arch/arm/mach-clps711x/cdb89712.c static struct resource cdb89712_cs8900_resource[] __initdata = { · line 132
Quoted 5 lines
static void
__initcdb89712_init(void)
{arch/arm/mach-clps711x/cdb89712.c +3
-0+platform_device_register (&cdb89712_flash_pdev); +platform_device_register (&cdb89712_bootrom_pdev); +platform_device_register (&cdb89712_sram_pdev);This is broken, all these structs are located in .init.data which is discarded after the machine is fully booted. Also platformdata must not live in init data. Consider using
platform_device_register_fullwhich allows more data to be init data.
I agree. Error is invisible when not using loadable modules, but will become apparent when using these.
I will make the necessary changes. Thank you.
Signature · 1 line
Alexander Shiyan <[email protected]>
PATCH v3 6/18 ARM: clps711x: cdb89712: Special driver for handling memory is removed
Hello Alexander,
Quoted 14 lines · Alexander Shiyan
On Thu, 10 Jan 2013 15:09:21 +0100
Uwe Kleine-K?nig <[email protected]> wrote:...
Quoted 9 lines
arch/arm/mach-clps711x/cdb89712.c static struct resource cdb89712_cs8900_resource[] __initdata = { · line 132
Quoted 5 lines
static void
__initcdb89712_init(void)
{arch/arm/mach-clps711x/cdb89712.c +3
-0+platform_device_register (&cdb89712_flash_pdev); +platform_device_register (&cdb89712_bootrom_pdev); +platform_device_register (&cdb89712_sram_pdev);This is broken, all these structs are located in .init.data which is discarded after the machine is fully booted. Also platformdata must not live in init data. Consider using
platform_device_register_fullwhich allows more data to be init data.
Quoted 2 lines
I agree. Error is invisible when not using loadable modules, but will become apparent when using these.
This is not true. It can trigger a problem for sure when you rebind the driver via sysfs. And in general you cannot assume that a driver doesn't need platform_data or it's struct platform_device during operation. Take for example physmap_flash_shutdown (defined in drivers/mtd/maps/physmap.c). Maybe even $(find /sys) triggers a problem.
Best regards
Uwe
Signature · 2 lines
Pengutronix e.K. | Uwe Kleine-K?nig | Industrial Linux Solutions | http://www.pengutronix.de/ |
PATCH v3 7/18 ARM: clps711x: Implement usage "SPARSE_IRQ" kernel option for a platform
In reply to Alexander Shiyan--- arch/arm/Kconfig | 1 + arch/arm/mach-clps711x/autcpu12.c | 1 + arch/arm/mach-clps711x/cdb89712.c | 1 + arch/arm/mach-clps711x/clep7312.c | 1 + arch/arm/mach-clps711x/common.h | 1 + arch/arm/mach-clps711x/edb7211.c | 1 + arch/arm/mach-clps711x/fortunet.c | 1 + arch/arm/mach-clps711x/include/mach/clps711x.h | 21 +++++++++++ arch/arm/mach-clps711x/include/mach/irqs.h | 46 ------------------------ arch/arm/mach-clps711x/p720t.c | 1 + 10 files changed, 29 insertions(+), 46 deletions(-) delete mode 100644 arch/arm/mach-clps711x/include/mach/irqs.h
arch/arm/Kconfig +1 -0
@@ -378,6 +378,7 @@ config ARCH_CLPS711X select CPU_ARM720T select GENERIC_CLOCKEVENTS select NEED_MACH_MEMORY_H + select SPARSE_IRQ help Support for Cirrus Logic 711x/721x/731x based boards.
arch/arm/mach-clps711x/autcpu12.c +1 -0
@@ -70,6 +70,7 @@ static void __init autcpu12_init(void)MACHINE_START (AUTCPU12 ,"autronix autcpu12" )/* Maintainer: Thomas Gleixner */ .atag_offset = 0x20000, + .nr_irqs = CLPS711X_NR_IRQS, .map_io = clps711x_map_io, .init_irq = clps711x_init_irq, .timer = &clps711x_timer,
arch/arm/mach-clps711x/cdb89712.c +1 -0
@@ -137,6 +137,7 @@ static void __init cdb89712_init(void)MACHINE_START (CDB89712 ,"Cirrus-CDB89712" )/* Maintainer: Ray Lehtiniemi */ .atag_offset = 0x100, + .nr_irqs = CLPS711X_NR_IRQS, .map_io = clps711x_map_io, .init_irq = clps711x_init_irq, .timer = &clps711x_timer,
arch/arm/mach-clps711x/clep7312.c +1 -0
@@ -37,6 +37,7 @@ fixup_clep7312(struct tag *tags, char **cmdline, struct meminfo *mi)MACHINE_START (CLEP7212 ,"Cirrus Logic 7212/7312" )/* Maintainer: Nobody */ .atag_offset = 0x0100, + .nr_irqs = CLPS711X_NR_IRQS, .fixup = fixup_clep7312, .map_io = clps711x_map_io, .init_irq = clps711x_init_irq,
arch/arm/mach-clps711x/common.h +1 -0
@@ -4,6 +4,7 @@* Common bits. */ +#define CLPS711X_NR_IRQS (30)#define CLPS711X_NR_GPIO (4 * 8 + 3)#define CLPS711X_GPIO (prt, bit) ((prt) * 8 + (bit))
arch/arm/mach-clps711x/edb7211.c +1 -0
@@ -91,6 +91,7 @@ static void __init edb7211_init(void)MACHINE_START (EDB7211 ,"CL-EDB7211 (EP7211 eval board)" )/* Maintainer: Jon McClintock */ .atag_offset = VIDEORAM_SIZE + 0x100, + .nr_irqs = CLPS711X_NR_IRQS, .fixup = fixup_edb7211, .reserve = edb7211_reserve, .map_io = edb7211_map_io,
arch/arm/mach-clps711x/fortunet.c +1 -0
@@ -74,6 +74,7 @@ fortunet_fixup(struct tag *tags, char **cmdline, struct meminfo *mi)MACHINE_START (FORTUNET ,"ARM-FortuNet" )/* Maintainer: FortuNet Inc. */ + .nr_irqs = CLPS711X_NR_IRQS, .fixup = fortunet_fixup, .map_io = clps711x_map_io, .init_irq = clps711x_init_irq,
arch/arm/mach-clps711x/include/mach/clps711x.h +21 -0
@@ -277,4 +277,25 @@#define MEMCFG_WAITSTATE_2_0 (14 << 2)#define MEMCFG_WAITSTATE_1_0 (15 << 2) +/* INTSR1 Interrupts */ +#define IRQ_CSINT (4) +#define IRQ_EINT1 (5) +#define IRQ_EINT2 (6) +#define IRQ_EINT3 (7) +#define IRQ_TC1OI (8) +#define IRQ_TC2OI (9) +#define IRQ_RTCMI (10) +#define IRQ_TINT (11) +#define IRQ_UTXINT1 (12) +#define IRQ_URXINT1 (13) +#define IRQ_UMSINT (14) +#define IRQ_SSEOTI (15) + +/* INTSR2 Interrupts */ +#define IRQ_KBDINT (16 + 0) +#define IRQ_SS2RX (16 + 1) +#define IRQ_SS2TX (16 + 2) +#define IRQ_UTXINT2 (16 + 12) +#define IRQ_URXINT2 (16 + 13) +#endif /* __MACH_CLPS711X_H */
arch/arm/mach-clps711x/include/mach/irqs.h deleted +0 -46
46 lines not on this page · raw message
arch/arm/mach-clps711x/p720t.c +1 -0
@@ -134,6 +134,7 @@ static void __init p720t_init_late(void)MACHINE_START (P720T ,"ARM-Prospector720T" )/* Maintainer: ARM Ltd/Deep Blue Solutions Ltd */ .atag_offset = 0x100, + .nr_irqs = CLPS711X_NR_IRQS, .fixup = fixup_p720t, .map_io = p720t_map_io, .init_early = p720t_init_early,
Signature · 1 line
1.7.8.6
PATCH v3 8/18 ARM: clps711x: Implement usage "MULTI_IRQ_HANDLER" kernel option for a platform
In reply to Alexander Shiyan--- arch/arm/Kconfig | 1 + arch/arm/mach-clps711x/autcpu12.c | 1 + arch/arm/mach-clps711x/cdb89712.c | 1 + arch/arm/mach-clps711x/clep7312.c | 3 +- arch/arm/mach-clps711x/common.c | 45 +++++++++++++++++-- arch/arm/mach-clps711x/common.h | 3 +- arch/arm/mach-clps711x/edb7211.c | 1 + arch/arm/mach-clps711x/fortunet.c | 1 + arch/arm/mach-clps711x/include/mach/entry-macro.S | 51 --------------------- arch/arm/mach-clps711x/p720t.c | 1 + 10 files changed, 50 insertions(+), 58 deletions(-) delete mode 100644 arch/arm/mach-clps711x/include/mach/entry-macro.S
arch/arm/Kconfig +1 -0
@@ -377,6 +377,7 @@ config ARCH_CLPS711X select COMMON_CLK select CPU_ARM720T select GENERIC_CLOCKEVENTS + select MULTI_IRQ_HANDLER select NEED_MACH_MEMORY_H select SPARSE_IRQ help
arch/arm/mach-clps711x/autcpu12.c +1 -0
@@ -75,6 +75,7 @@ MACHINE_START(AUTCPU12, "autronix autcpu12") .init_irq = clps711x_init_irq, .timer = &clps711x_timer, .init_machine = autcpu12_init, + .handle_irq = clps711x_handle_irq, .restart = clps711x_restart,MACHINE_END
arch/arm/mach-clps711x/cdb89712.c +1 -0
@@ -142,5 +142,6 @@ MACHINE_START(CDB89712, "Cirrus-CDB89712") .init_irq = clps711x_init_irq, .timer = &clps711x_timer, .init_machine = cdb89712_init, + .handle_irq = clps711x_handle_irq, .restart = clps711x_restart,MACHINE_END
arch/arm/mach-clps711x/clep7312.c +1 -2
@@ -33,7 +33,6 @@ fixup_clep7312(struct tag *tags, char **cmdline, struct meminfo *mi) mi->bank[0 ].size =0x01000000 ; } -MACHINE_START (CLEP7212 ,"Cirrus Logic 7212/7312" )/* Maintainer: Nobody */ .atag_offset = 0x0100,
@@ -42,6 +41,6 @@ MACHINE_START(CLEP7212, "Cirrus Logic 7212/7312") .map_io = clps711x_map_io, .init_irq = clps711x_init_irq, .timer = &clps711x_timer, + .handle_irq = clps711x_handle_irq, .restart = clps711x_restart,MACHINE_END -
arch/arm/mach-clps711x/common.c +41 -4
66 lines not on this page · raw message
arch/arm/mach-clps711x/common.h +2 -1
@@ -12,5 +12,6 @@ struct sys_timer;extern void clps711x_map_io (void );extern void clps711x_init_irq (void ); -extern struct sys_timer clps711x_timer; +extern void clps711x_handle_irq (struct pt_regs *regs);extern void clps711x_restart (char mode,const char *cmd); +extern struct sys_timer clps711x_timer;
arch/arm/mach-clps711x/edb7211.c +1 -0
@@ -98,5 +98,6 @@ MACHINE_START(EDB7211, "CL-EDB7211 (EP7211 eval board)") .init_irq = clps711x_init_irq, .timer = &clps711x_timer, .init_machine = edb7211_init, + .handle_irq = clps711x_handle_irq, .restart = clps711x_restart,MACHINE_END
arch/arm/mach-clps711x/fortunet.c +1 -0
@@ -79,5 +79,6 @@ MACHINE_START(FORTUNET, "ARM-FortuNet") .map_io = clps711x_map_io, .init_irq = clps711x_init_irq, .timer = &clps711x_timer, + .handle_irq = clps711x_handle_irq, .restart = clps711x_restart,MACHINE_END
arch/arm/mach-clps711x/include/mach/entry-macro.S deleted +0 -51
51 lines not on this page · raw message
arch/arm/mach-clps711x/p720t.c +1 -0
@@ -142,5 +142,6 @@ MACHINE_START(P720T, "ARM-Prospector720T") .timer = &clps711x_timer, .init_machine = p720t_init, .init_late = p720t_init_late, + .handle_irq = clps711x_handle_irq, .restart = clps711x_restart,MACHINE_END
Signature · 1 line
1.7.8.6
PATCH v3 9/18 ARM: clps711x: Add FIQ interrupt handling
In reply to Alexander ShiyanCLPS711X-target CPU can have a several FIQ interrupts. With this patch we adds handling for a one which will be used for ALSA PCM later. Since FIQ have a separate handler we only add "mask" and "unmask" calls which will used for enable/disable_irq functions.
--- arch/arm/mach-clps711x/common.c | 37 ++++++++++++++++++++++- arch/arm/mach-clps711x/common.h | 2 +- arch/arm/mach-clps711x/include/mach/clps711x.h | 3 ++ 3 files changed, 39 insertions(+), 3 deletions(-)
arch/arm/mach-clps711x/common.c +35 -2
@@ -30,6 +30,7 @@#include <linux/clk-provider.h> #include <asm/exception.h> +#include <asm/mach/irq.h> #include <asm/mach/map.h> #include <asm/mach/time.h> #include <asm/system_misc.h>
@@ -91,7 +92,7 @@ static void int1_unmask(struct irq_data *d) }static struct irq_chip int1_chip = { - .name ="Interrupt Vector 1 " , + .name ="Interrupt Vector 1" , .irq_ack = int1_ack, .irq_eoi = int1_eoi, .irq_mask = int1_mask,
@@ -128,13 +129,37 @@ static void int2_unmask(struct irq_data *d) }static struct irq_chip int2_chip = { - .name ="Interrupt Vector 2 " , + .name ="Interrupt Vector 2" , .irq_ack = int2_ack, .irq_eoi = int2_eoi, .irq_mask = int2_mask, .irq_unmask = int2_unmask, }; +static void int3_mask (struct irq_data *d) +{ +u32 intmr3; + + intmr3 =clps_readl (INTMR3 ); + intmr3 &= ~(1 << (d->irq -32 )); +clps_writel (intmr3,INTMR3 ); +} + +static void int3_unmask (struct irq_data *d) +{ +u32 intmr3; + + intmr3 =clps_readl (INTMR3 ); + intmr3 |=1 << (d->irq -32 ); +clps_writel (intmr3,INTMR3 ); +} + +static struct irq_chip int3_chip = { + .name ="Interrupt Vector 3" , + .irq_mask = int3_mask, + .irq_unmask = int3_unmask, +}; + static struct { int nr; struct irq_chip *chip;
@@ -188,6 +213,14 @@ void __init clps711x_init_irq(void)set_irq_flags (clps711x_irqdescs[i].nr,IRQF_VALID |IRQF_PROBE ); } + +if (IS_ENABLED (CONFIG_FIQ )) { +init_FIQ (0 ); +irq_set_chip_and_handler (IRQ_DAIINT , &int3_chip, + handle_bad_irq); +set_irq_flags (IRQ_DAIINT , +IRQF_VALID |IRQF_PROBE |IRQF_NOAUTOEN ); + } }inline u32 fls16 (u32 x)
arch/arm/mach-clps711x/common.h +1 -1
@@ -4,7 +4,7 @@* Common bits. */ -#define CLPS711X_NR_IRQS (30) +#define CLPS711X_NR_IRQS (33)#define CLPS711X_NR_GPIO (4 * 8 + 3)#define CLPS711X_GPIO (prt, bit) ((prt) * 8 + (bit))
arch/arm/mach-clps711x/include/mach/clps711x.h +3 -0
@@ -298,4 +298,7 @@#define IRQ_UTXINT2 (16 + 12)#define IRQ_URXINT2 (16 + 13) +/* INTSR3 Interrupts */ +#define IRQ_DAIINT (32 + 0) +#endif /* __MACH_CLPS711X_H */
Signature · 1 line
1.7.8.6
PATCH v3 10/18 ARM: clps711x: Unused empty "ACK" calls for IRQ-chips removed
In reply to Alexander Shiyan--- arch/arm/mach-clps711x/common.c | 10 ---------- 1 files changed, 0 insertions(+), 10 deletions(-)
arch/arm/mach-clps711x/common.c +0 -10
@@ -66,10 +66,6 @@ static void int1_mask(struct irq_data *d)clps_writel (intmr1,INTMR1 ); } -static void int1_ack (struct irq_data *d) -{ -} -static void int1_eoi (struct irq_data *d) {switch (d->irq) {
@@ -93,7 +89,6 @@ static void int1_unmask(struct irq_data *d)static struct irq_chip int1_chip = { .name ="Interrupt Vector 1" , - .irq_ack = int1_ack, .irq_eoi = int1_eoi, .irq_mask = int1_mask, .irq_unmask = int1_unmask,
@@ -108,10 +103,6 @@ static void int2_mask(struct irq_data *d)clps_writel (intmr2,INTMR2 ); } -static void int2_ack (struct irq_data *d) -{ -} -static void int2_eoi (struct irq_data *d) {switch (d->irq) {
@@ -130,7 +121,6 @@ static void int2_unmask(struct irq_data *d)static struct irq_chip int2_chip = { .name ="Interrupt Vector 2" , - .irq_ack = int2_ack, .irq_eoi = int2_eoi, .irq_mask = int2_mask, .irq_unmask = int2_unmask,
Signature · 1 line
1.7.8.6
PATCH v3 11/18 ARM: clps711x: autcpu12: Special driver for handling NAND memory is removed
In reply to Alexander ShiyanThis patch provide migration to using "gpio-nand" and "basic-mmio-gpio" drivers instead of using special driver for handling NAND memory.
--- arch/arm/mach-clps711x/autcpu12.c | 98 ++++++++++ arch/arm/mach-clps711x/include/mach/autcpu12.h | 10 - drivers/mtd/nand/Kconfig | 7 - drivers/mtd/nand/Makefile | 1 - drivers/mtd/nand/autcpu12.c | 237 ------------------------ 5 files changed, 98 insertions(+), 255 deletions(-) delete mode 100644 drivers/mtd/nand/autcpu12.c
arch/arm/mach-clps711x/autcpu12.c +98 -0
@@ -23,9 +23,13 @@#include <linux/string.h> #include <linux/mm.h> #include <linux/io.h> +#include <linux/gpio.h> #include <linux/ioport.h> #include <linux/interrupt.h> +#include <linux/mtd/partitions.h> +#include <linux/mtd/nand-gpio.h> #include <linux/platform_device.h> +#include <linux/basic_mmio_gpio.h> #include <mach/hardware.h> #include <asm/sizes.h>
@@ -43,6 +47,15 @@#define AUTCPU12_CS8900_BASE (CS2_PHYS_BASE + 0x300)#define AUTCPU12_CS8900_IRQ (IRQ_EINT3) +#define AUTCPU12_SMC_BASE (CS1_PHYS_BASE + 0x06000000) +#define AUTCPU12_SMC_SEL_BASE (AUTCPU12_SMC_BASE + 0x10) + +#define AUTCPU12_MMGPIO_BASE (CLPS711X_NR_GPIO) +#define AUTCPU12_SMC_NCE (AUTCPU12_MMGPIO_BASE + 0)/* Bit 0 */ +#define AUTCPU12_SMC_RDY CLPS711X_GPIO(1, 2) +#define AUTCPU12_SMC_ALE CLPS711X_GPIO(1, 3) +#define AUTCPU12_SMC_CLE CLPS711X_GPIO(1, 3) +static struct resource autcpu12_cs8900_resource[]__initdata = {DEFINE_RES_MEM (AUTCPU12_CS8900_BASE ,SZ_1K ),DEFINE_RES_IRQ (AUTCPU12_CS8900_IRQ ),
@@ -59,14 +72,98 @@ static struct platform_device autcpu12_nvram_pdev __initdata = { .num_resources = ARRAY_SIZE(autcpu12_nvram_resource), }; +static struct resource autcpu12_nand_resource[]__initdata = { +DEFINE_RES_MEM (AUTCPU12_SMC_BASE ,SZ_16 ), +}; + +static struct mtd_partition autcpu12_nand_parts[]__initdata = { + { + .name ="Flash partition 1" , + .offset =0 , + .size =SZ_8M , + }, + { + .name ="Flash partition 2" , + .offset =MTDPART_OFS_APPEND , + .size =MTDPART_SIZ_FULL , + }, +}; + +static void __init autcpu12_adjust_parts (struct gpio_nand_platdata *pdata, +size_t sz) +{ +switch (sz) { +case SZ_16M : +case SZ_32M : +break ; +case SZ_64M : +case SZ_128M : + pdata->parts[0 ].size =SZ_16M ; +break ; +default : +pr_warn ("Unsupported SmartMedia device size %u\n" , sz); +break ; + } +} + +static struct gpio_nand_platdata autcpu12_nand_pdata__initdata = { + .gpio_rdy =AUTCPU12_SMC_RDY , + .gpio_nce =AUTCPU12_SMC_NCE , + .gpio_ale =AUTCPU12_SMC_ALE , + .gpio_cle =AUTCPU12_SMC_CLE , + .gpio_nwp =-1 , + .chip_delay =20 , + .parts = autcpu12_nand_parts, + .num_parts =ARRAY_SIZE (autcpu12_nand_parts), + .adjust_parts = autcpu12_adjust_parts, +}; + +static struct platform_device autcpu12_nand_pdev__initdata = { + .name ="gpio-nand" , + .id =-1 , + .resource = autcpu12_nand_resource, + .num_resources =ARRAY_SIZE (autcpu12_nand_resource), + .dev = { + .platform_data = &autcpu12_nand_pdata, + }, +}; + +static struct resource autcpu12_mmgpio_resource[]__initdata = { +DEFINE_RES_MEM_NAMED (AUTCPU12_SMC_SEL_BASE ,SZ_1 ,"dat" ), +}; + +static struct bgpio_pdata autcpu12_mmgpio_pdata__initdata = { + .base =AUTCPU12_MMGPIO_BASE , + .ngpio =8 , +}; + +static struct platform_device autcpu12_mmgpio_pdev__initdata = { + .name ="basic-mmio-gpio" , + .id =-1 , + .resource = autcpu12_mmgpio_resource, + .num_resources =ARRAY_SIZE (autcpu12_mmgpio_resource), + .dev = { + .platform_data = &autcpu12_mmgpio_pdata, + }, +}; +static void __init autcpu12_init (void ) {platform_device_register_simple ("video-clps711x" ,0 ,NULL ,0 );platform_device_register_simple ("cs89x0" ,0 , autcpu12_cs8900_resource,ARRAY_SIZE (autcpu12_cs8900_resource)); +platform_device_register (&autcpu12_mmgpio_pdev);platform_device_register (&autcpu12_nvram_pdev); } +static void __init autcpu12_init_late (void ) +{ +if (IS_ENABLED (MTD_NAND_GPIO ) &&IS_ENABLED (GPIO_GENERIC_PLATFORM )) { +/* We are need both drivers to handle NAND */ +platform_device_register (&autcpu12_nand_pdev); + } +} +MACHINE_START (AUTCPU12 ,"autronix autcpu12" )/* Maintainer: Thomas Gleixner */ .atag_offset = 0x20000,
@@ -75,6 +172,7 @@ MACHINE_START(AUTCPU12, "autronix autcpu12") .init_irq = clps711x_init_irq, .timer = &clps711x_timer, .init_machine = autcpu12_init, + .init_late = autcpu12_init_late, .handle_irq = clps711x_handle_irq, .restart = clps711x_restart,MACHINE_END
arch/arm/mach-clps711x/include/mach/autcpu12.h +0 -10
@@ -40,8 +40,6 @@#define AUTCPU12_PHYS_CSAUX1 CS1_PHYS_BASE +0x04000000/* physical */ -#define AUTCPU12_PHYS_SMC CS1_PHYS_BASE +0x06000000/* physical */ -#define AUTCPU12_PHYS_CAN CS1_PHYS_BASE +0x08000000/* physical */ #define AUTCPU12_PHYS_TOUCH CS1_PHYS_BASE +0x0A000000/* physical */
@@ -50,14 +48,6 @@#define AUTCPU12_PHYS_LPT CS1_PHYS_BASE +0x0E000000/* physical */ -/* -* defines for smartmedia card access -*/ -#define AUTCPU12_SMC_RDY (1<<2) -#define AUTCPU12_SMC_ALE (1<<3) -#define AUTCPU12_SMC_CLE (1<<4) -#define AUTCPU12_SMC_PORT_OFFSET PBDR -#define AUTCPU12_SMC_SELECT_OFFSET 0x10/* * defines for lcd contrast */
drivers/mtd/nand/Kconfig +0 -7
@@ -49,13 +49,6 @@ config MTD_NAND_MUSEUM_IDS NAND chips (page size 256 byte, erase size 4-8KiB). The IDs of these chips were reused by later, larger chips. -config MTD_NAND_AUTCPU12 - tristate "SmartMediaCard on autronix autcpu12 board" - depends on ARCH_AUTCPU12 - help - This enables the driver for the autronix autcpu12 board to - access the SmartMediaCard. - config MTD_NAND_DENALI tristate "Support Denali NAND controller" help
drivers/mtd/nand/Makefile +0 -1
@@ -11,7 +11,6 @@ obj-$(CONFIG_MTD_SM_COMMON) += sm_common.o obj-$(CONFIG_MTD_NAND_CAFE) += cafe_nand.o obj-$(CONFIG_MTD_NAND_SPIA) += spia.o obj-$(CONFIG_MTD_NAND_AMS_DELTA) += ams-delta.o -obj-$(CONFIG_MTD_NAND_AUTCPU12) += autcpu12.o obj-$(CONFIG_MTD_NAND_DENALI) += denali.o obj-$(CONFIG_MTD_NAND_DENALI_PCI) += denali_pci.o obj-$(CONFIG_MTD_NAND_DENALI_DT) += denali_dt.o
drivers/mtd/nand/autcpu12.c deleted +0 -237
237 lines not on this page · raw message
Signature · 1 line
1.7.8.6
PATCH v3 12/18 ARM: clps711x: Moving power management of framebuffer driver to the board
In reply to Alexander ShiyanThis patch moves the power management for clps711x-framebuffer driver to the board code. To control we use "platform-lcd" driver.
--- arch/arm/mach-clps711x/edb7211.c | 34 ++++++++++++++++++ arch/arm/mach-clps711x/include/mach/hardware.h | 2 - arch/arm/mach-clps711x/p720t.c | 20 +++++++++++ drivers/video/clps711xfb.c | 44 +++-------------------- 4 files changed, 60 insertions(+), 40 deletions(-)
arch/arm/mach-clps711x/edb7211.c +34 -0
@@ -8,6 +8,8 @@*/ #include <linux/init.h> +#include <linux/gpio.h> +#include <linux/delay.h> #include <linux/memblock.h> #include <linux/types.h> #include <linux/interrupt.h>
@@ -18,12 +20,17 @@#include <asm/mach/arch.h> #include <asm/mach-types.h> +#include <video/platform_lcd.h> +#include <mach/hardware.h> #include "common.h" #define VIDEORAM_SIZE SZ_128K +#define EDB7211_LCD_DC_DC_EN CLPS711X_GPIO(3, 1) +#define EDB7211_LCDEN CLPS711X_GPIO(3, 2) +#define EDB7211_CS8900_BASE (CS2_PHYS_BASE + 0x300)#define EDB7211_CS8900_IRQ (IRQ_EINT3)
@@ -32,6 +39,28 @@ static struct resource edb7211_cs8900_resource[] __initdata = { DEFINE_RES_IRQ(EDB7211_CS8900_IRQ), }; +static void edb7211_lcd_power_set (struct plat_lcd_data *pd,unsigned int power) +{ +if (power) { +gpio_set_value (EDB7211_LCDEN ,1 ); +udelay (100 ); +gpio_set_value (EDB7211_LCD_DC_DC_EN ,1 ); + }else { +gpio_set_value (EDB7211_LCD_DC_DC_EN ,0 ); +udelay (100 ); +gpio_set_value (EDB7211_LCDEN ,0 ); + } +} + +static struct plat_lcd_data edb7211_lcd_power_pdata = { + .set_power = edb7211_lcd_power_set, +}; + +static struct gpio edb7211_gpios[]__initconst = { + {EDB7211_LCD_DC_DC_EN ,GPIOF_OUT_INIT_LOW ,"LCD DC-DC" }, + {EDB7211_LCDEN ,GPIOF_OUT_INIT_LOW ,"LCD POWER" }, +}; +static struct map_desc edb7211_io_desc[]__initdata = { {/* Memory-mapped extra keyboard row */ .virtual =IO_ADDRESS (EP7211_PHYS_EXTKBD ),
@@ -83,6 +112,11 @@ fixup_edb7211(struct tag *tags, char **cmdline, struct meminfo *mi)static void __init edb7211_init (void ) { +gpio_request_array (edb7211_gpios,ARRAY_SIZE (edb7211_gpios)); + +platform_device_register_data (&platform_bus,"platform-lcd" ,0 , + &edb7211_lcd_power_pdata, +sizeof (edb7211_lcd_power_pdata));platform_device_register_simple ("video-clps711x" ,0 ,NULL ,0 );platform_device_register_simple ("cs89x0" ,0 , edb7211_cs8900_resource,ARRAY_SIZE (edb7211_cs8900_resource));
arch/arm/mach-clps711x/include/mach/hardware.h +0 -2
@@ -82,8 +82,6 @@* Relevant bits in port D, which controls power to the various parts of * the LCD on the EDB7211. */ -#define EDB_PD1_LCD_DC_DC_EN (1<<1) -#define EDB_PD2_LCDEN (1<<2)#define EDB_PD3_LCDBL (1<<3)#endif
arch/arm/mach-clps711x/p720t.c +20 -0
@@ -37,10 +37,27 @@#include <asm/mach/map.h> #include <mach/syspld.h> +#include <video/platform_lcd.h> +#include "common.h" #define GPIO_USERLED CLPS711X_GPIO(3, 0) +static void p720t_lcd_power_set (struct plat_lcd_data *pd,unsigned int power) +{ +if (power) { +PLD_LCDEN =PLD_LCDEN_EN ; +PLD_PWR |=PLD_S4_ON |PLD_S2_ON |PLD_S1_ON ; + }else { +PLD_PWR &= ~(PLD_S4_ON |PLD_S2_ON |PLD_S1_ON ); +PLD_LCDEN =0 ; + } +} + +static struct plat_lcd_data p720t_lcd_power_pdata = { + .set_power = p720t_lcd_power_set, +}; +/* * Map the P720T system PLD. It occupies two address spaces: * 0x10000000 and 0x10400000. We map both regions as one.
@@ -121,6 +138,9 @@ static struct gpio_led_platform_data p720t_gpio_led_pdata __initdata = {static void __init p720t_init (void ) { +platform_device_register_data (&platform_bus,"platform-lcd" ,0 , + &p720t_lcd_power_pdata, +sizeof (p720t_lcd_power_pdata));platform_device_register_simple ("video-clps711x" ,0 ,NULL ,0 ); }
drivers/video/clps711xfb.c +6 -38
72 lines not on this page · raw message
Signature · 1 line
1.7.8.6
PATCH v3 13/18 ARM: clps711x: p720t: Special driver for handling NAND memory is removed
In reply to Alexander ShiyanThis patch provide migration to using "gpio-nand" driver instead of using special driver for handling NAND memory.
--- arch/arm/mach-clps711x/include/mach/hardware.h | 3 + arch/arm/mach-clps711x/p720t.c | 50 +++++++- drivers/mtd/nand/Kconfig | 6 - drivers/mtd/nand/Makefile | 1 - drivers/mtd/nand/spia.c | 176 ------------------------ 5 files changed, 51 insertions(+), 185 deletions(-) delete mode 100644 drivers/mtd/nand/spia.c
arch/arm/mach-clps711x/include/mach/hardware.h +3 -0
@@ -67,6 +67,9 @@#define CLPS711X_SRAM_BASE CS6_PHYS_BASE#define CLPS711X_SRAM_SIZE (48 * 1024) +#define CLPS711X_SDRAM0_BASE (0xc0000000) +#define CLPS711X_SDRAM1_BASE (0xd0000000) +#if defined (CONFIG_ARCH_EDB7211 )/* The extra 8 lines of the keyboard matrix are wired to chip select 3 */
arch/arm/mach-clps711x/p720t.c +48 -2
74 lines not on this page · raw message
drivers/mtd/nand/Kconfig +0 -6
@@ -93,12 +93,6 @@ config MTD_NAND_GPIO help This enables a GPIO based NAND flash driver. -config MTD_NAND_SPIA - tristate "NAND Flash device on SPIA board" - depends on ARCH_P720T - help - If you had to ask, you don't have one. Say 'N'. - config MTD_NAND_AMS_DELTA tristate "NAND Flash device on Amstrad E3" depends on MACH_AMS_DELTA
drivers/mtd/nand/Makefile +0 -1
@@ -9,7 +9,6 @@ obj-$(CONFIG_MTD_NAND_IDS) += nand_ids.o obj-$(CONFIG_MTD_SM_COMMON) += sm_common.o obj-$(CONFIG_MTD_NAND_CAFE) += cafe_nand.o -obj-$(CONFIG_MTD_NAND_SPIA) += spia.o obj-$(CONFIG_MTD_NAND_AMS_DELTA) += ams-delta.o obj-$(CONFIG_MTD_NAND_DENALI) += denali.o obj-$(CONFIG_MTD_NAND_DENALI_PCI) += denali_pci.o
drivers/mtd/nand/spia.c deleted +0 -176
176 lines not on this page · raw message
Signature · 1 line
1.7.8.6
PATCH v3 14/18 ARM: clps711x: Moving backlight controls of framebuffer driver to the board
In reply to Alexander ShiyanThis patch moves the backlight controls for clps711x-framebuffer driver to the board code. To control we use "generic-bl" driver.
--- arch/arm/mach-clps711x/edb7211.c | 18 ++++ arch/arm/mach-clps711x/include/mach/hardware.h | 6 -- arch/arm/mach-clps711x/p720t.c | 21 +++++- drivers/video/clps711xfb.c | 107 ++---------------------- 4 files changed, 44 insertions(+), 108 deletions(-)
arch/arm/mach-clps711x/edb7211.c +18 -0
@@ -13,6 +13,7 @@#include <linux/memblock.h> #include <linux/types.h> #include <linux/interrupt.h> +#include <linux/backlight.h> #include <linux/platform_device.h> #include <asm/setup.h>
@@ -30,6 +31,7 @@#define EDB7211_LCD_DC_DC_EN CLPS711X_GPIO(3, 1)#define EDB7211_LCDEN CLPS711X_GPIO(3, 2) +#define EDB7211_LCDBL CLPS711X_GPIO(3, 3)#define EDB7211_CS8900_BASE (CS2_PHYS_BASE + 0x300)#define EDB7211_CS8900_IRQ (IRQ_EINT3)
@@ -56,9 +58,22 @@ static struct plat_lcd_data edb7211_lcd_power_pdata = { .set_power = edb7211_lcd_power_set, }; +static void edb7211_lcd_backlight_set_intensity (int intensity) +{ +gpio_set_value (EDB7211_LCDBL , intensity); +} + +static struct generic_bl_info edb7211_lcd_backlight_pdata = { + .name ="lcd-backlight.0" , + .default_intensity =0x01 , + .max_intensity =0x01 , + .set_bl_intensity = edb7211_lcd_backlight_set_intensity, +}; +static struct gpio edb7211_gpios[]__initconst = { {EDB7211_LCD_DC_DC_EN ,GPIOF_OUT_INIT_LOW ,"LCD DC-DC" }, {EDB7211_LCDEN ,GPIOF_OUT_INIT_LOW ,"LCD POWER" }, + {EDB7211_LCDBL ,GPIOF_OUT_INIT_LOW ,"LCD BACKLIGHT" }, };static struct map_desc edb7211_io_desc[]__initdata = {
@@ -117,6 +132,9 @@ static void __init edb7211_init(void)platform_device_register_data (&platform_bus,"platform-lcd" ,0 , &edb7211_lcd_power_pdata,sizeof (edb7211_lcd_power_pdata)); +platform_device_register_data (&platform_bus,"generic-bl" ,0 , + &edb7211_lcd_backlight_pdata, +sizeof (edb7211_lcd_backlight_pdata));platform_device_register_simple ("video-clps711x" ,0 ,NULL ,0 );platform_device_register_simple ("cs89x0" ,0 , edb7211_cs8900_resource,ARRAY_SIZE (edb7211_cs8900_resource));
arch/arm/mach-clps711x/include/mach/hardware.h +0 -6
@@ -81,10 +81,4 @@#endif /* CONFIG_ARCH_EDB7211 */ -/* -* Relevant bits in port D, which controls power to the various parts of -* the LCD on the EDB7211. -*/ -#define EDB_PD3_LCDBL (1<<3) -#endif
arch/arm/mach-clps711x/p720t.c +20 -1
@@ -25,6 +25,8 @@#include <linux/io.h> #include <linux/slab.h> #include <linux/leds.h> +#include <linux/sizes.h> +#include <linux/backlight.h> #include <linux/platform_device.h> #include <linux/mtd/partitions.h> #include <linux/mtd/nand-gpio.h>
@@ -33,7 +35,6 @@#include <asm/pgtable.h> #include <asm/page.h> #include <asm/setup.h> -#include <asm/sizes.h> #include <asm/mach-types.h> #include <asm/mach/arch.h> #include <asm/mach/map.h>
@@ -103,6 +104,21 @@ static struct plat_lcd_data p720t_lcd_power_pdata = { .set_power = p720t_lcd_power_set, }; +static void p720t_lcd_backlight_set_intensity (int intensity) +{ +if (intensity) +PLD_PWR |=PLD_S3_ON ; +else +PLD_PWR =0 ; +} + +static struct generic_bl_info p720t_lcd_backlight_pdata = { + .name ="lcd-backlight.0" , + .default_intensity =0x01 , + .max_intensity =0x01 , + .set_bl_intensity = p720t_lcd_backlight_set_intensity, +}; +/* * Map the P720T system PLD. It occupies two address spaces: * 0x10000000 and 0x10400000. We map both regions as one.
@@ -187,6 +203,9 @@ static void __init p720t_init(void)platform_device_register_data (&platform_bus,"platform-lcd" ,0 , &p720t_lcd_power_pdata,sizeof (p720t_lcd_power_pdata)); +platform_device_register_data (&platform_bus,"generic-bl" ,0 , + &p720t_lcd_backlight_pdata, +sizeof (p720t_lcd_backlight_pdata));platform_device_register_simple ("video-clps711x" ,0 ,NULL ,0 ); }
drivers/video/clps711xfb.c +6 -101
146 lines not on this page · raw message
Signature · 1 line
1.7.8.6
PATCH v3 14/18 ARM: clps711x: Moving backlight controls of framebuffer driver to the board
Hi,
Quoted 16 lines · Alexander Shiyan
drivers/video/clps711xfb.c +0
-12@@ -162,25 +158,12 @@ clps7111fb_set_par(struct fb_info *info)static int clps7111fb_blank (int blank,struct fb_info *info) { -if (blank) { -if (machine_is_edb7211 ()) { -/* Turn off the LCD backlight. */ -clps_writeb (clps_readb (PDDR ) & ~EDB_PD3_LCDBL ,PDDR ); - -/* Disable LCD controller. */ -clps_writel (clps_readl (SYSCON1 ) & ~SYSCON1_LCDEN , -SYSCON1 ); - } - }else { -if (machine_is_edb7211 ()) { -/* Enable LCD controller. */
drivers/video/clps711xfb.c clps7111fb_set_par(struct fb_info *info) · line 163
Quoted 10 lines
drivers/video/clps711xfb.c +3
-7-clps_writel (clps_readl (SYSCON1 ) |SYSCON1_LCDEN , -SYSCON1 ); - -/* Turn on the LCD backlight. */ -clps_writeb (clps_readb (PDDR ) |EDB_PD3_LCDBL ,PDDR ); - } - } +/* Enable/Disable LCD controller. */ +if (blank) +clps_writel (clps_readl (SYSCON1 ) & ~SYSCON1_LCDEN ,SYSCON1 );
I fixed up spaces-before-tabs on the line above when I applied the patch.
-Olof
PATCH v3 15/18 ARM: clps711x: edb7211: Add support for NOR-Flash
In reply to Alexander Shiyan--- arch/arm/mach-clps711x/edb7211.c | 45 ++++++++++++++++++----- arch/arm/mach-clps711x/include/mach/hardware.h | 4 -- 2 files changed, 35 insertions(+), 14 deletions(-)
arch/arm/mach-clps711x/edb7211.c +35 -10
@@ -16,6 +16,9 @@#include <linux/backlight.h> #include <linux/platform_device.h> +#include <linux/mtd/physmap.h> +#include <linux/mtd/partitions.h> +#include <asm/setup.h> #include <asm/mach/map.h> #include <asm/mach/arch.h>
@@ -33,6 +36,8 @@#define EDB7211_LCDEN CLPS711X_GPIO(3, 2)#define EDB7211_LCDBL CLPS711X_GPIO(3, 3) +#define EDB7211_FLASH0_BASE (CS0_PHYS_BASE) +#define EDB7211_FLASH1_BASE (CS1_PHYS_BASE)#define EDB7211_CS8900_BASE (CS2_PHYS_BASE + 0x300)#define EDB7211_CS8900_IRQ (IRQ_EINT3)
@@ -41,6 +46,35 @@ static struct resource edb7211_cs8900_resource[] __initdata = { DEFINE_RES_IRQ(EDB7211_CS8900_IRQ), }; +static struct mtd_partition edb7211_flash_partitions[]__initdata = { + { + .name ="Flash" , + .offset =0 , + .size =MTDPART_SIZ_FULL , + }, +}; + +static struct physmap_flash_data edb7211_flash_pdata__initdata = { + .width =4 , + .parts = edb7211_flash_partitions, + .nr_parts =ARRAY_SIZE (edb7211_flash_partitions), +}; + +static struct resource edb7211_flash_resources[]__initdata = { +DEFINE_RES_MEM (EDB7211_FLASH0_BASE ,SZ_8M ), +DEFINE_RES_MEM (EDB7211_FLASH1_BASE ,SZ_8M ), +}; + +static struct platform_device edb7211_flash_pdev__initdata = { + .name ="physmap-flash" , + .id =0 , + .resource = edb7211_flash_resources, + .num_resources =ARRAY_SIZE (edb7211_flash_resources), + .dev = { + .platform_data = &edb7211_flash_pdata, + }, +}; +static void edb7211_lcd_power_set (struct plat_lcd_data *pd,unsigned int power) {if (power) {
@@ -82,16 +116,6 @@ static struct map_desc edb7211_io_desc[] __initdata = { .pfn = __phys_to_pfn(EP7211_PHYS_EXTKBD), .length = SZ_1M, .type = MT_DEVICE, - }, { /* Flash bank 0 */ - .virtual = IO_ADDRESS(EP7211_PHYS_FLASH1), - .pfn = __phys_to_pfn(EP7211_PHYS_FLASH1), - .length = SZ_8M, - .type = MT_DEVICE, - }, { /* Flash bank 1 */ - .virtual = IO_ADDRESS(EP7211_PHYS_FLASH2), - .pfn = __phys_to_pfn(EP7211_PHYS_FLASH2), - .length = SZ_8M, - .type = MT_DEVICE, }, };
@@ -129,6 +153,7 @@ static void __init edb7211_init(void) {gpio_request_array (edb7211_gpios,ARRAY_SIZE (edb7211_gpios)); +platform_device_register (&edb7211_flash_pdev);platform_device_register_data (&platform_bus,"platform-lcd" ,0 , &edb7211_lcd_power_pdata,sizeof (edb7211_lcd_power_pdata));
arch/arm/mach-clps711x/include/mach/hardware.h +0 -4
@@ -75,10 +75,6 @@/* The extra 8 lines of the keyboard matrix are wired to chip select 3 */ #define EP7211_PHYS_EXTKBD CS3_PHYS_BASE -/* The two flash banks are wired to chip selects 0 and 1 */ -#define EP7211_PHYS_FLASH1 CS0_PHYS_BASE -#define EP7211_PHYS_FLASH2 CS1_PHYS_BASE -#endif /* CONFIG_ARCH_EDB7211 */ #endif
Signature · 1 line
1.7.8.6
PATCH v3 16/18 ARM: clps711x: Rename board files to match functionality
In reply to Alexander Shiyan---
arch/arm/mach-clps711x/Makefile | 12 ++++++------
.../mach-clps711x/{autcpu12.c => board-autcpu12.c} | 0
.../mach-clps711x/{cdb89712.c => board-cdb89712.c} | 0
.../mach-clps711x/{clep7312.c => board-clep7312.c} | 0
.../mach-clps711x/{edb7211.c => board-edb7211.c} | 0
.../mach-clps711x/{fortunet.c => board-fortunet.c} | 0
arch/arm/mach-clps711x/{p720t.c => board-p720t.c} | 0
7 files changed, 6 insertions(+), 6 deletions(-)
rename arch/arm/mach-clps711x/{autcpu12.c => board-autcpu12.c} (100%)
rename arch/arm/mach-clps711x/{cdb89712.c => board-cdb89712.c} (100%)
rename arch/arm/mach-clps711x/{clep7312.c => board-clep7312.c} (100%)
rename arch/arm/mach-clps711x/{edb7211.c => board-edb7211.c} (100%)
rename arch/arm/mach-clps711x/{fortunet.c => board-fortunet.c} (100%)
rename arch/arm/mach-clps711x/{p720t.c => board-p720t.c} (100%)arch/arm/mach-clps711x/Makefile +6 -6
@@ -9,9 +9,9 @@ obj-m := obj-n := obj- := -obj-$(CONFIG_ARCH_AUTCPU12) += autcpu12.o -obj-$(CONFIG_ARCH_CDB89712) += cdb89712.o -obj-$(CONFIG_ARCH_CLEP7312) += clep7312.o -obj-$(CONFIG_ARCH_EDB7211) += edb7211.o -obj-$(CONFIG_ARCH_FORTUNET) += fortunet.o -obj-$(CONFIG_ARCH_P720T) += p720t.o +obj-$(CONFIG_ARCH_AUTCPU12) += board-autcpu12.o +obj-$(CONFIG_ARCH_CDB89712) += board-cdb89712.o +obj-$(CONFIG_ARCH_CLEP7312) += board-clep7312.o +obj-$(CONFIG_ARCH_EDB7211) += board-edb7211.o +obj-$(CONFIG_ARCH_FORTUNET) += board-fortunet.o +obj-$(CONFIG_ARCH_P720T) += board-p720t.o
arch/arm/mach-clps711x/board-autcpu12.c renamed from arch/arm/mach-clps711x/autcpu12.c +0 -0
arch/arm/mach-clps711x/board-cdb89712.c renamed from arch/arm/mach-clps711x/cdb89712.c +0 -0
arch/arm/mach-clps711x/board-clep7312.c renamed from arch/arm/mach-clps711x/clep7312.c +0 -0
arch/arm/mach-clps711x/board-edb7211.c renamed from arch/arm/mach-clps711x/edb7211.c +0 -0
arch/arm/mach-clps711x/board-fortunet.c renamed from arch/arm/mach-clps711x/fortunet.c +0 -0
arch/arm/mach-clps711x/board-p720t.c renamed from arch/arm/mach-clps711x/p720t.c +0 -0
Signature · 1 line
1.7.8.6
PATCH v3 17/18 ARM: clps711x: Update defconfig due latest changes and new kernel symbols
In reply to Alexander Shiyan--- arch/arm/configs/clps711x_defconfig | 30 +++++++++++++++++++++--------- 1 files changed, 21 insertions(+), 9 deletions(-)
arch/arm/configs/clps711x_defconfig +21 -9
@@ -1,10 +1,14 @@ -CONFIG_EXPERIMENTAL=y +CONFIG_KERNEL_LZMA=y CONFIG_SYSVIPC=y CONFIG_LOG_BUF_SHIFT=14 CONFIG_BLK_DEV_INITRD=y +CONFIG_RD_LZMA=y CONFIG_EMBEDDED=y +CONFIG_SLOB=y +CONFIG_JUMP_LABEL=y +# CONFIG_LBDAF is not set CONFIG_PARTITION_ADVANCED=y -# CONFIG_MSDOS_PARTITION is not set +# CONFIG_IOSCHED_CFQ is not set CONFIG_ARCH_CLPS711X=y CONFIG_ARCH_AUTCPU12=y CONFIG_ARCH_CDB89712=y
@@ -12,8 +16,10 @@ CONFIG_ARCH_CLEP7312=y CONFIG_ARCH_EDB7211=y CONFIG_ARCH_P720T=y CONFIG_ARCH_FORTUNET=y +CONFIG_AEABI=y CONFIG_ZBOOT_ROM_TEXT=0x0 CONFIG_ZBOOT_ROM_BSS=0x0 +# CONFIG_COREDUMP is not set CONFIG_NET=y CONFIG_PACKET=y CONFIG_UNIX=y
@@ -22,6 +28,7 @@ CONFIG_INET=y CONFIG_IRDA=y CONFIG_IRTTY_SIR=y CONFIG_EP7211_DONGLE=y +# CONFIG_WIRELESS is not set CONFIG_MTD=y CONFIG_MTD_CMDLINE_PARTS=y CONFIG_MTD_CHAR=y
@@ -31,24 +38,21 @@ CONFIG_MTD_JEDECPROBE=y CONFIG_MTD_CFI_INTELEXT=y CONFIG_MTD_CFI_AMDSTD=y CONFIG_MTD_CFI_STAA=y -CONFIG_MTD_CDB89712=y CONFIG_MTD_AUTCPU12=y CONFIG_MTD_PLATRAM=y -CONFIG_BLK_DEV_RAM=y +CONFIG_MTD_NAND=y +CONFIG_MTD_NAND_GPIO=y CONFIG_NETDEVICES=y -# CONFIG_NET_VENDOR_3COM is not set -# CONFIG_NET_VENDOR_AMD is not set +# CONFIG_NET_CADENCE is not set # CONFIG_NET_VENDOR_BROADCOM is not set # CONFIG_NET_VENDOR_CHELSIO is not set CONFIG_CS89x0=y +CONFIG_CS89x0_PLATFORM=y # CONFIG_NET_VENDOR_FARADAY is not set -# CONFIG_NET_VENDOR_FUJITSU is not set -# CONFIG_NET_VENDOR_HP is not set # CONFIG_NET_VENDOR_INTEL is not set # CONFIG_NET_VENDOR_MARVELL is not set # CONFIG_NET_VENDOR_MICREL is not set # CONFIG_NET_VENDOR_NATSEMI is not set -# CONFIG_NET_VENDOR_RACAL is not set # CONFIG_NET_VENDOR_SEEQ is not set # CONFIG_NET_VENDOR_SMSC is not set # CONFIG_NET_VENDOR_STMICRO is not set
@@ -59,14 +63,22 @@ CONFIG_CS89x0=y # CONFIG_VT is not set CONFIG_SERIAL_CLPS711X_CONSOLE=y # CONFIG_HW_RANDOM is not set +CONFIG_SPI=y +CONFIG_GPIO_GENERIC_PLATFORM=y # CONFIG_HWMON is not set CONFIG_FB=y CONFIG_FB_CLPS711X=y +CONFIG_BACKLIGHT_LCD_SUPPORT=y +CONFIG_LCD_PLATFORM=y # CONFIG_USB_SUPPORT is not set CONFIG_NEW_LEDS=y CONFIG_LEDS_CLASS=y +CONFIG_LEDS_GPIO=y +CONFIG_LEDS_TRIGGERS=y +CONFIG_LEDS_TRIGGER_HEARTBEAT=y # CONFIG_IOMMU_SUPPORT is not set CONFIG_EXT2_FS=y +CONFIG_CRAMFS=y CONFIG_MINIX_FS=y # CONFIG_NETWORK_FILESYSTEMS is not set # CONFIG_FTRACE is not set
Signature · 1 line
1.7.8.6
PATCH v3 18/18 MAINTAINERS: Add ARM CLPS711X entry
In reply to Alexander Shiyan--- MAINTAINERS | 6 ++++++ 1 files changed, 6 insertions(+), 0 deletions(-)
MAINTAINERS +6 -0
@@ -707,6 +707,12 @@ S: Maintained F: arch/arm/mach-cns3xxx/ T: git git://git.infradead.org/users/cbou/linux-cns3xxx.git +ARM/CIRRUS LOGIC CLPS711X ARM ARCHITECTURE +M: Alexander Shiyan <[email protected]> +L: linux-arm-kernel at lists.infradead.org (moderated for non-subscribers) +S: Odd Fixes +F: arch/arm/mach-clps711x/ + ARM/CIRRUS LOGIC EP93XX ARM ARCHITECTURE M: Hartley Sweeten <[email protected]> M: Ryan Mallon <[email protected]>
Signature · 1 line
1.7.8.6
v3 cover ARM: Patchset for CLPS711X
In reply to Alexander ShiyanQuoted 7 lines · Alexander Shiyan
Here is a v3 patchset for a CLPS711X-target.
The main direction of this patchset - approaching the platform to the possibility of using configurations with multiple platforms in a single kernel. Added support of the majority of the necessary kernel symbol. Also part of the driver code used only for the platform was moved to the board code and converted to the use of standard drivers.
(+Linus Walleij)
Thanks for sending the new version, as discussed on IRC. It's important to mention here that the series depends on patches that Linus applied into the gpio tree. Olof, if you merge these before I get to it, please apply them on top of an appropriate branch from the GPIO tree. Linus, is 2cad6a8a4c an appropriate commit to base on? I think that is the olders one that can be used as a base here.
Arnd
v3 cover ARM: Patchset for CLPS711X
2012/11/17 Arnd Bergmann <[email protected]>:
Quoted 1 line
(+Linus Walleij)
The private mail address, sorry missed it, hehe :-)
Quoted 6 lines
Thanks for sending the new version, as discussed on IRC. It's important to mention here that the series depends on patches that Linus applied into the gpio tree. Olof, if you merge these before I get to it, please apply them on top of an appropriate branch from the GPIO tree. Linus, is
2cad6a8a4can appropriate commit to base on? I think that is the olders one that can be used as a base here.
That should work. The devel branch is locked down now, I might add stuff on top but no rebasing...
Yours,
Linus Walleij
v3 cover ARM: Patchset for CLPS711X
In reply to Arnd BergmannQuoted 9 lines · Arnd Bergmann
Quoted 7 lines · Alexander Shiyan
Here is a v3 patchset for a CLPS711X-target.
The main direction of this patchset - approaching the platform to the possibility of using configurations with multiple platforms in a single kernel. Added support of the majority of the necessary kernel symbol. Also part of the driver code used only for the platform was moved to the board code and converted to the use of standard drivers.
Quoted 8 lines
(+Linus Walleij)
Thanks for sending the new version, as discussed on IRC. It's important to mention here that the series depends on patches that Linus applied into the gpio tree. Olof, if you merge these before I get to it, please apply them on top of an appropriate branch from the GPIO tree. Linus, is
2cad6a8a4can appropriate commit to base on? I think that is the olders one that can be used as a base here.
Thanks, I've applied this on top of the pinctrl commit mentioned (based on Linus' reply), as well as the previous clps711x branch, since that seems to be what the series was based on. It sits in clpx711x/soc2 as a separate branch, but I'll pull it into next/soc with the other one.
Most patches applied 100% fine, just a couple of minor context fuzz. Separate comment on one patch where I fixued up whitespace when I applied.
-Olof
v3 cover ARM: Patchset for CLPS711X
2012/11/21 Olof Johansson <[email protected]>:
Quoted 2 lines
Thanks, I've applied this on top of the pinctrl commit mentioned (based on Linus' reply),
Thanks that should work fine, I was worried that the HEAD of my devel branch would be used, but this is far down the stack and should work just fine.
Yours,
Linus Walleij
v3 cover ARM: Patchset for CLPS711X
In reply to Olof JohanssonQuoted 19 lines · Olof Johansson
Quoted 9 lines · Arnd Bergmann
Quoted 7 lines · Alexander Shiyan
Here is a v3 patchset for a CLPS711X-target.
The main direction of this patchset - approaching the platform to the possibility of using configurations with multiple platforms in a single kernel. Added support of the majority of the necessary kernel symbol. Also part of the driver code used only for the platform was moved to the board code and converted to the use of standard drivers.Quoted 8 lines
(+Linus Walleij)
Thanks for sending the new version, as discussed on IRC. It's important to mention here that the series depends on patches that Linus applied into the gpio tree. Olof, if you merge these before I get to it, please apply them on top of an appropriate branch from the GPIO tree. Linus, is
2cad6a8a4can appropriate commit to base on? I think that is the olders one that can be used as a base here.
Quoted 4 lines
Thanks, I've applied this on top of the pinctrl commit mentioned (based on Linus' reply), as well as the previous clps711x branch, since that seems to be what the series was based on. It sits in clpx711x/soc2 as a separate branch, but I'll pull it into next/soc with the other one.
Something really odd is going on.
The 2cad6a8a4c commit is not in any pinctrl branch at the moment. So I'll drop this branch until we get this sorted out.
-Olof
v3 cover ARM: Patchset for CLPS711X
Quoted 4 lines · Olof Johansson
Something really odd is going on.
The
2cad6a8a4ccommit is not in any pinctrl branch at the moment. So I'll drop this branch until we get this sorted out.
Sorry, replying to myself way too much tonight. The confusion was caused by me looking at the pinctrl tree instead of the gpio tree.
I'll re-integrate this branch again tomorrow, after I double-check things once more. :)
-Olof