Loading arch/arm/mach-pxa/Kconfig +1 −1 Original line number Diff line number Diff line Loading @@ -184,7 +184,7 @@ config MACH_COLIBRI select PXA27x config MACH_ZYLONITE bool "PXA3xx Development Platform" bool "PXA3xx Development Platform (aka Zylonite)" select PXA3xx select HAVE_PWM Loading arch/arm/mach-pxa/clock.h +24 −0 Original line number Diff line number Diff line Loading @@ -61,4 +61,28 @@ extern const struct clkops clk_cken_ops; void clk_cken_enable(struct clk *clk); void clk_cken_disable(struct clk *clk); #ifdef CONFIG_PXA3xx #define PXA3xx_CKEN(_name, _cken, _rate, _delay, _dev) \ { \ .name = _name, \ .dev = _dev, \ .ops = &clk_pxa3xx_cken_ops, \ .rate = _rate, \ .cken = CKEN_##_cken, \ .delay = _delay, \ } #define PXA3xx_CK(_name, _cken, _ops, _dev) \ { \ .name = _name, \ .dev = _dev, \ .ops = _ops, \ .cken = CKEN_##_cken, \ } extern const struct clkops clk_pxa3xx_cken_ops; extern void clk_pxa3xx_cken_enable(struct clk *); extern void clk_pxa3xx_cken_disable(struct clk *); #endif void clks_register(struct clk *clks, size_t num); arch/arm/mach-pxa/devices.c +43 −0 Original line number Diff line number Diff line Loading @@ -16,6 +16,7 @@ #include <asm/arch/pxa2xx_spi.h> #include <asm/arch/camera.h> #include <asm/arch/audio.h> #include <asm/arch/pxa3xx_nand.h> #include "devices.h" #include "generic.h" Loading Loading @@ -831,6 +832,48 @@ void __init pxa3xx_set_mci3_info(struct pxamci_platform_data *info) pxa_register_device(&pxa3xx_device_mci3, info); } static struct resource pxa3xx_resources_nand[] = { [0] = { .start = 0x43100000, .end = 0x43100053, .flags = IORESOURCE_MEM, }, [1] = { .start = IRQ_NAND, .end = IRQ_NAND, .flags = IORESOURCE_IRQ, }, [2] = { /* DRCMR for Data DMA */ .start = 97, .end = 97, .flags = IORESOURCE_DMA, }, [3] = { /* DRCMR for Command DMA */ .start = 99, .end = 99, .flags = IORESOURCE_DMA, }, }; static u64 pxa3xx_nand_dma_mask = DMA_BIT_MASK(32); struct platform_device pxa3xx_device_nand = { .name = "pxa3xx-nand", .id = -1, .dev = { .dma_mask = &pxa3xx_nand_dma_mask, .coherent_dma_mask = DMA_BIT_MASK(32), }, .num_resources = ARRAY_SIZE(pxa3xx_resources_nand), .resource = pxa3xx_resources_nand, }; void __init pxa3xx_set_nand_info(struct pxa3xx_nand_platform_data *info) { pxa_register_device(&pxa3xx_device_nand, info); } #endif /* CONFIG_PXA3xx */ /* pxa2xx-spi platform-device ID equals respective SSP platform-device ID + 1. Loading arch/arm/mach-pxa/devices.h +2 −0 Original line number Diff line number Diff line Loading @@ -31,4 +31,6 @@ extern struct platform_device pxa25x_device_pwm1; extern struct platform_device pxa27x_device_pwm0; extern struct platform_device pxa27x_device_pwm1; extern struct platform_device pxa3xx_device_nand; void __init pxa_register_device(struct platform_device *dev, void *data); arch/arm/mach-pxa/littleton.c +57 −4 Original line number Diff line number Diff line Loading @@ -38,6 +38,7 @@ #include <asm/arch/pxafb.h> #include <asm/arch/ssp.h> #include <asm/arch/pxa27x_keypad.h> #include <asm/arch/pxa3xx_nand.h> #include <asm/arch/littleton.h> #include "generic.h" Loading Loading @@ -101,7 +102,7 @@ static struct resource smc91x_resources[] = { [1] = { .start = IRQ_GPIO(mfp_to_gpio(MFP_PIN_GPIO90)), .end = IRQ_GPIO(mfp_to_gpio(MFP_PIN_GPIO90)), .flags = IORESOURCE_IRQ | IRQF_TRIGGER_FALLING, .flags = IORESOURCE_IRQ | IORESOURCE_IRQ_LOWEDGE, } }; Loading @@ -112,7 +113,7 @@ static struct platform_device smc91x_device = { .resource = smc91x_resources, }; #if defined(CONFIG_FB_PXA) || defined(CONFIG_FB_PXA_MODULES) #if defined(CONFIG_FB_PXA) || defined(CONFIG_FB_PXA_MODULE) /* use bit 30, 31 as the indicator of command parameter number */ #define CMD0(x) ((0x00000000) | ((x) << 9)) #define CMD1(x, x1) ((0x40000000) | ((x) << 9) | 0x100 | (x1)) Loading Loading @@ -311,9 +312,9 @@ static void littleton_init_lcd(void) } #else static inline void littleton_init_lcd(void) {}; #endif /* CONFIG_FB_PXA || CONFIG_FB_PXA_MODULES */ #endif /* CONFIG_FB_PXA || CONFIG_FB_PXA_MODULE */ #if defined(CONFIG_KEYBOARD_PXA27x) || defined(CONFIG_KEYBOARD_PXA27x_MODULES) #if defined(CONFIG_KEYBOARD_PXA27x) || defined(CONFIG_KEYBOARD_PXA27x_MODULE) static unsigned int littleton_matrix_key_map[] = { /* KEY(row, col, key_code) */ KEY(1, 3, KEY_0), KEY(0, 0, KEY_1), KEY(1, 0, KEY_2), KEY(2, 0, KEY_3), Loading Loading @@ -361,6 +362,57 @@ static void __init littleton_init_keypad(void) static inline void littleton_init_keypad(void) {} #endif #if defined(CONFIG_MTD_NAND_PXA3xx) || defined(CONFIG_MTD_NAND_PXA3xx_MODULE) static struct mtd_partition littleton_nand_partitions[] = { [0] = { .name = "Bootloader", .offset = 0, .size = 0x060000, .mask_flags = MTD_WRITEABLE, /* force read-only */ }, [1] = { .name = "Kernel", .offset = 0x060000, .size = 0x200000, .mask_flags = MTD_WRITEABLE, /* force read-only */ }, [2] = { .name = "Filesystem", .offset = 0x0260000, .size = 0x3000000, /* 48M - rootfs */ }, [3] = { .name = "MassStorage", .offset = 0x3260000, .size = 0x3d40000, }, [4] = { .name = "BBT", .offset = 0x6FA0000, .size = 0x80000, .mask_flags = MTD_WRITEABLE, /* force read-only */ }, /* NOTE: we reserve some blocks at the end of the NAND flash for * bad block management, and the max number of relocation blocks * differs on different platforms. Please take care with it when * defining the partition table. */ }; static struct pxa3xx_nand_platform_data littleton_nand_info = { .enable_arbiter = 1, .parts = littleton_nand_partitions, .nr_parts = ARRAY_SIZE(littleton_nand_partitions), }; static void __init littleton_init_nand(void) { pxa3xx_set_nand_info(&littleton_nand_info); } #else static inline void littleton_init_nand(void) {} #endif /* CONFIG_MTD_NAND_PXA3xx || CONFIG_MTD_NAND_PXA3xx_MODULE */ static void __init littleton_init(void) { /* initialize MFP configurations */ Loading @@ -374,6 +426,7 @@ static void __init littleton_init(void) littleton_init_lcd(); littleton_init_keypad(); littleton_init_nand(); } MACHINE_START(LITTLETON, "Marvell Form Factor Development Platform (aka Littleton)") Loading Loading
arch/arm/mach-pxa/Kconfig +1 −1 Original line number Diff line number Diff line Loading @@ -184,7 +184,7 @@ config MACH_COLIBRI select PXA27x config MACH_ZYLONITE bool "PXA3xx Development Platform" bool "PXA3xx Development Platform (aka Zylonite)" select PXA3xx select HAVE_PWM Loading
arch/arm/mach-pxa/clock.h +24 −0 Original line number Diff line number Diff line Loading @@ -61,4 +61,28 @@ extern const struct clkops clk_cken_ops; void clk_cken_enable(struct clk *clk); void clk_cken_disable(struct clk *clk); #ifdef CONFIG_PXA3xx #define PXA3xx_CKEN(_name, _cken, _rate, _delay, _dev) \ { \ .name = _name, \ .dev = _dev, \ .ops = &clk_pxa3xx_cken_ops, \ .rate = _rate, \ .cken = CKEN_##_cken, \ .delay = _delay, \ } #define PXA3xx_CK(_name, _cken, _ops, _dev) \ { \ .name = _name, \ .dev = _dev, \ .ops = _ops, \ .cken = CKEN_##_cken, \ } extern const struct clkops clk_pxa3xx_cken_ops; extern void clk_pxa3xx_cken_enable(struct clk *); extern void clk_pxa3xx_cken_disable(struct clk *); #endif void clks_register(struct clk *clks, size_t num);
arch/arm/mach-pxa/devices.c +43 −0 Original line number Diff line number Diff line Loading @@ -16,6 +16,7 @@ #include <asm/arch/pxa2xx_spi.h> #include <asm/arch/camera.h> #include <asm/arch/audio.h> #include <asm/arch/pxa3xx_nand.h> #include "devices.h" #include "generic.h" Loading Loading @@ -831,6 +832,48 @@ void __init pxa3xx_set_mci3_info(struct pxamci_platform_data *info) pxa_register_device(&pxa3xx_device_mci3, info); } static struct resource pxa3xx_resources_nand[] = { [0] = { .start = 0x43100000, .end = 0x43100053, .flags = IORESOURCE_MEM, }, [1] = { .start = IRQ_NAND, .end = IRQ_NAND, .flags = IORESOURCE_IRQ, }, [2] = { /* DRCMR for Data DMA */ .start = 97, .end = 97, .flags = IORESOURCE_DMA, }, [3] = { /* DRCMR for Command DMA */ .start = 99, .end = 99, .flags = IORESOURCE_DMA, }, }; static u64 pxa3xx_nand_dma_mask = DMA_BIT_MASK(32); struct platform_device pxa3xx_device_nand = { .name = "pxa3xx-nand", .id = -1, .dev = { .dma_mask = &pxa3xx_nand_dma_mask, .coherent_dma_mask = DMA_BIT_MASK(32), }, .num_resources = ARRAY_SIZE(pxa3xx_resources_nand), .resource = pxa3xx_resources_nand, }; void __init pxa3xx_set_nand_info(struct pxa3xx_nand_platform_data *info) { pxa_register_device(&pxa3xx_device_nand, info); } #endif /* CONFIG_PXA3xx */ /* pxa2xx-spi platform-device ID equals respective SSP platform-device ID + 1. Loading
arch/arm/mach-pxa/devices.h +2 −0 Original line number Diff line number Diff line Loading @@ -31,4 +31,6 @@ extern struct platform_device pxa25x_device_pwm1; extern struct platform_device pxa27x_device_pwm0; extern struct platform_device pxa27x_device_pwm1; extern struct platform_device pxa3xx_device_nand; void __init pxa_register_device(struct platform_device *dev, void *data);
arch/arm/mach-pxa/littleton.c +57 −4 Original line number Diff line number Diff line Loading @@ -38,6 +38,7 @@ #include <asm/arch/pxafb.h> #include <asm/arch/ssp.h> #include <asm/arch/pxa27x_keypad.h> #include <asm/arch/pxa3xx_nand.h> #include <asm/arch/littleton.h> #include "generic.h" Loading Loading @@ -101,7 +102,7 @@ static struct resource smc91x_resources[] = { [1] = { .start = IRQ_GPIO(mfp_to_gpio(MFP_PIN_GPIO90)), .end = IRQ_GPIO(mfp_to_gpio(MFP_PIN_GPIO90)), .flags = IORESOURCE_IRQ | IRQF_TRIGGER_FALLING, .flags = IORESOURCE_IRQ | IORESOURCE_IRQ_LOWEDGE, } }; Loading @@ -112,7 +113,7 @@ static struct platform_device smc91x_device = { .resource = smc91x_resources, }; #if defined(CONFIG_FB_PXA) || defined(CONFIG_FB_PXA_MODULES) #if defined(CONFIG_FB_PXA) || defined(CONFIG_FB_PXA_MODULE) /* use bit 30, 31 as the indicator of command parameter number */ #define CMD0(x) ((0x00000000) | ((x) << 9)) #define CMD1(x, x1) ((0x40000000) | ((x) << 9) | 0x100 | (x1)) Loading Loading @@ -311,9 +312,9 @@ static void littleton_init_lcd(void) } #else static inline void littleton_init_lcd(void) {}; #endif /* CONFIG_FB_PXA || CONFIG_FB_PXA_MODULES */ #endif /* CONFIG_FB_PXA || CONFIG_FB_PXA_MODULE */ #if defined(CONFIG_KEYBOARD_PXA27x) || defined(CONFIG_KEYBOARD_PXA27x_MODULES) #if defined(CONFIG_KEYBOARD_PXA27x) || defined(CONFIG_KEYBOARD_PXA27x_MODULE) static unsigned int littleton_matrix_key_map[] = { /* KEY(row, col, key_code) */ KEY(1, 3, KEY_0), KEY(0, 0, KEY_1), KEY(1, 0, KEY_2), KEY(2, 0, KEY_3), Loading Loading @@ -361,6 +362,57 @@ static void __init littleton_init_keypad(void) static inline void littleton_init_keypad(void) {} #endif #if defined(CONFIG_MTD_NAND_PXA3xx) || defined(CONFIG_MTD_NAND_PXA3xx_MODULE) static struct mtd_partition littleton_nand_partitions[] = { [0] = { .name = "Bootloader", .offset = 0, .size = 0x060000, .mask_flags = MTD_WRITEABLE, /* force read-only */ }, [1] = { .name = "Kernel", .offset = 0x060000, .size = 0x200000, .mask_flags = MTD_WRITEABLE, /* force read-only */ }, [2] = { .name = "Filesystem", .offset = 0x0260000, .size = 0x3000000, /* 48M - rootfs */ }, [3] = { .name = "MassStorage", .offset = 0x3260000, .size = 0x3d40000, }, [4] = { .name = "BBT", .offset = 0x6FA0000, .size = 0x80000, .mask_flags = MTD_WRITEABLE, /* force read-only */ }, /* NOTE: we reserve some blocks at the end of the NAND flash for * bad block management, and the max number of relocation blocks * differs on different platforms. Please take care with it when * defining the partition table. */ }; static struct pxa3xx_nand_platform_data littleton_nand_info = { .enable_arbiter = 1, .parts = littleton_nand_partitions, .nr_parts = ARRAY_SIZE(littleton_nand_partitions), }; static void __init littleton_init_nand(void) { pxa3xx_set_nand_info(&littleton_nand_info); } #else static inline void littleton_init_nand(void) {} #endif /* CONFIG_MTD_NAND_PXA3xx || CONFIG_MTD_NAND_PXA3xx_MODULE */ static void __init littleton_init(void) { /* initialize MFP configurations */ Loading @@ -374,6 +426,7 @@ static void __init littleton_init(void) littleton_init_lcd(); littleton_init_keypad(); littleton_init_nand(); } MACHINE_START(LITTLETON, "Marvell Form Factor Development Platform (aka Littleton)") Loading