You've already forked linux-apfs
mirror of
https://github.com/linux-apfs/linux-apfs.git
synced 2026-05-01 15:00:59 -07:00
Merge branch 'devel' of git://git.kernel.org/pub/scm/linux/kernel/git/ycmiao/pxa-linux-2.6 into devel-stable
This commit is contained in:
+13
@@ -707,6 +707,19 @@ L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
|
||||
S: Maintained
|
||||
F: arch/arm/mach-ixp4xx/
|
||||
|
||||
ARM/INTEL RESEARCH IMOTE 2 MACHINE SUPPORT
|
||||
M: Jonathan Cameron <jic23@cam.ac.uk>
|
||||
L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
|
||||
S: Maintained
|
||||
F: arch/arm/mach-pxa/imote2.c
|
||||
|
||||
ARM/INTEL RESEARCH STARGATE 2 MACHINE SUPPORT
|
||||
M: Jonathan Cameron <jic23@cam.ac.uk>
|
||||
L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
|
||||
S: Maintained
|
||||
F: arch/arm/mach-pxa/stargate2.c
|
||||
F: drivers/pcmcia/pxa2xx_stargate2.c
|
||||
|
||||
ARM/INTEL XSC3 (MANZANO) ARM CORE
|
||||
M: Lennert Buytenhek <kernel@wantstofly.org>
|
||||
M: Dan Williams <dan.j.williams@intel.com>
|
||||
|
||||
+241
-112
File diff suppressed because it is too large
Load Diff
+669
-282
File diff suppressed because it is too large
Load Diff
@@ -13,6 +13,9 @@
|
||||
#include <linux/kernel.h>
|
||||
#include <linux/platform_device.h>
|
||||
#include <linux/smc91x.h>
|
||||
#include <linux/mtd/mtd.h>
|
||||
#include <linux/mtd/partitions.h>
|
||||
#include <linux/mtd/nand.h>
|
||||
|
||||
#include <asm/mach-types.h>
|
||||
#include <asm/mach/arch.h>
|
||||
@@ -85,12 +88,48 @@ static struct platform_device smc91x_device = {
|
||||
.resource = smc91x_resources,
|
||||
};
|
||||
|
||||
static struct mtd_partition aspenite_nand_partitions[] = {
|
||||
{
|
||||
.name = "bootloader",
|
||||
.offset = 0,
|
||||
.size = SZ_1M,
|
||||
.mask_flags = MTD_WRITEABLE,
|
||||
}, {
|
||||
.name = "reserved",
|
||||
.offset = MTDPART_OFS_APPEND,
|
||||
.size = SZ_128K,
|
||||
.mask_flags = MTD_WRITEABLE,
|
||||
}, {
|
||||
.name = "reserved",
|
||||
.offset = MTDPART_OFS_APPEND,
|
||||
.size = SZ_8M,
|
||||
.mask_flags = MTD_WRITEABLE,
|
||||
}, {
|
||||
.name = "kernel",
|
||||
.offset = MTDPART_OFS_APPEND,
|
||||
.size = (SZ_2M + SZ_1M),
|
||||
.mask_flags = 0,
|
||||
}, {
|
||||
.name = "filesystem",
|
||||
.offset = MTDPART_OFS_APPEND,
|
||||
.size = SZ_48M,
|
||||
.mask_flags = 0,
|
||||
}
|
||||
};
|
||||
|
||||
static struct pxa3xx_nand_platform_data aspenite_nand_info = {
|
||||
.enable_arbiter = 1,
|
||||
.parts = aspenite_nand_partitions,
|
||||
.nr_parts = ARRAY_SIZE(aspenite_nand_partitions),
|
||||
};
|
||||
|
||||
static void __init common_init(void)
|
||||
{
|
||||
mfp_config(ARRAY_AND_SIZE(common_pin_config));
|
||||
|
||||
/* on-chip devices */
|
||||
pxa168_add_uart(1);
|
||||
pxa168_add_nand(&aspenite_nand_info);
|
||||
|
||||
/* off-chip devices */
|
||||
platform_device_register(&smc91x_device);
|
||||
|
||||
@@ -34,6 +34,21 @@ struct clkops apbc_clk_ops = {
|
||||
.disable = apbc_clk_disable,
|
||||
};
|
||||
|
||||
static void apmu_clk_enable(struct clk *clk)
|
||||
{
|
||||
__raw_writel(clk->enable_val, clk->clk_rst);
|
||||
}
|
||||
|
||||
static void apmu_clk_disable(struct clk *clk)
|
||||
{
|
||||
__raw_writel(0, clk->clk_rst);
|
||||
}
|
||||
|
||||
struct clkops apmu_clk_ops = {
|
||||
.enable = apmu_clk_enable,
|
||||
.disable = apmu_clk_disable,
|
||||
};
|
||||
|
||||
static DEFINE_SPINLOCK(clocks_lock);
|
||||
|
||||
int clk_enable(struct clk *clk)
|
||||
|
||||
@@ -25,6 +25,7 @@ struct clk {
|
||||
};
|
||||
|
||||
extern struct clkops apbc_clk_ops;
|
||||
extern struct clkops apmu_clk_ops;
|
||||
|
||||
#define APBC_CLK(_name, _reg, _fnclksel, _rate) \
|
||||
struct clk clk_##_name = { \
|
||||
|
||||
@@ -31,7 +31,9 @@
|
||||
#define IRQ_PXA168_DDR_INT 26
|
||||
#define IRQ_PXA168_UART1 27
|
||||
#define IRQ_PXA168_UART2 28
|
||||
#define IRQ_PXA168_UART3 29
|
||||
#define IRQ_PXA168_WDT 35
|
||||
#define IRQ_PXA168_MAIN_PMU 36
|
||||
#define IRQ_PXA168_FRQ_CHANGE 38
|
||||
#define IRQ_PXA168_SDH1 39
|
||||
#define IRQ_PXA168_SDH2 40
|
||||
@@ -46,7 +48,7 @@
|
||||
#define IRQ_PXA168_USB2 51
|
||||
#define IRQ_PXA168_AC97 57
|
||||
#define IRQ_PXA168_TWSI1 58
|
||||
#define IRQ_PXA168_PMU 60
|
||||
#define IRQ_PXA168_AP_PMU 60
|
||||
#define IRQ_PXA168_SM_INT 63
|
||||
|
||||
/*
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
#include <linux/i2c.h>
|
||||
#include <mach/devices.h>
|
||||
#include <plat/i2c.h>
|
||||
#include <plat/pxa3xx_nand.h>
|
||||
|
||||
extern struct pxa_device_desc pxa168_device_uart1;
|
||||
extern struct pxa_device_desc pxa168_device_uart2;
|
||||
@@ -13,6 +14,7 @@ extern struct pxa_device_desc pxa168_device_pwm1;
|
||||
extern struct pxa_device_desc pxa168_device_pwm2;
|
||||
extern struct pxa_device_desc pxa168_device_pwm3;
|
||||
extern struct pxa_device_desc pxa168_device_pwm4;
|
||||
extern struct pxa_device_desc pxa168_device_nand;
|
||||
|
||||
static inline int pxa168_add_uart(int id)
|
||||
{
|
||||
@@ -64,4 +66,9 @@ static inline int pxa168_add_pwm(int id)
|
||||
|
||||
return pxa_register_device(d, NULL, 0);
|
||||
}
|
||||
|
||||
static inline int pxa168_add_nand(struct pxa3xx_nand_platform_data *info)
|
||||
{
|
||||
return pxa_register_device(&pxa168_device_nand, info, sizeof(*info));
|
||||
}
|
||||
#endif /* __ASM_MACH_PXA168_H */
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
#include <linux/i2c.h>
|
||||
#include <mach/devices.h>
|
||||
#include <plat/i2c.h>
|
||||
#include <plat/pxa3xx_nand.h>
|
||||
|
||||
extern struct pxa_device_desc pxa910_device_uart1;
|
||||
extern struct pxa_device_desc pxa910_device_uart2;
|
||||
@@ -13,6 +14,7 @@ extern struct pxa_device_desc pxa910_device_pwm1;
|
||||
extern struct pxa_device_desc pxa910_device_pwm2;
|
||||
extern struct pxa_device_desc pxa910_device_pwm3;
|
||||
extern struct pxa_device_desc pxa910_device_pwm4;
|
||||
extern struct pxa_device_desc pxa910_device_nand;
|
||||
|
||||
static inline int pxa910_add_uart(int id)
|
||||
{
|
||||
@@ -64,4 +66,9 @@ static inline int pxa910_add_pwm(int id)
|
||||
|
||||
return pxa_register_device(d, NULL, 0);
|
||||
}
|
||||
|
||||
static inline int pxa910_add_nand(struct pxa3xx_nand_platform_data *info)
|
||||
{
|
||||
return pxa_register_device(&pxa910_device_nand, info, sizeof(*info));
|
||||
}
|
||||
#endif /* __ASM_MACH_PXA910_H */
|
||||
|
||||
@@ -19,6 +19,7 @@
|
||||
#include <mach/addr-map.h>
|
||||
#include <mach/cputype.h>
|
||||
#include <mach/regs-apbc.h>
|
||||
#include <mach/regs-apmu.h>
|
||||
#include <mach/irqs.h>
|
||||
#include <mach/gpio.h>
|
||||
#include <mach/dma.h>
|
||||
@@ -72,6 +73,8 @@ static APBC_CLK(pwm2, PXA168_PWM2, 1, 13000000);
|
||||
static APBC_CLK(pwm3, PXA168_PWM3, 1, 13000000);
|
||||
static APBC_CLK(pwm4, PXA168_PWM4, 1, 13000000);
|
||||
|
||||
static APMU_CLK(nand, NAND, 0x01db, 208000000);
|
||||
|
||||
/* device and clock bindings */
|
||||
static struct clk_lookup pxa168_clkregs[] = {
|
||||
INIT_CLKREG(&clk_uart1, "pxa2xx-uart.0", NULL),
|
||||
@@ -82,6 +85,7 @@ static struct clk_lookup pxa168_clkregs[] = {
|
||||
INIT_CLKREG(&clk_pwm2, "pxa168-pwm.1", NULL),
|
||||
INIT_CLKREG(&clk_pwm3, "pxa168-pwm.2", NULL),
|
||||
INIT_CLKREG(&clk_pwm4, "pxa168-pwm.3", NULL),
|
||||
INIT_CLKREG(&clk_nand, "pxa3xx-nand", NULL),
|
||||
};
|
||||
|
||||
static int __init pxa168_init(void)
|
||||
@@ -127,3 +131,4 @@ PXA168_DEVICE(pwm1, "pxa168-pwm", 0, NONE, 0xd401a000, 0x10);
|
||||
PXA168_DEVICE(pwm2, "pxa168-pwm", 1, NONE, 0xd401a400, 0x10);
|
||||
PXA168_DEVICE(pwm3, "pxa168-pwm", 2, NONE, 0xd401a800, 0x10);
|
||||
PXA168_DEVICE(pwm4, "pxa168-pwm", 3, NONE, 0xd401ac00, 0x10);
|
||||
PXA168_DEVICE(nand, "pxa3xx-nand", -1, NAND, 0xd4283000, 0x80, 97, 99);
|
||||
|
||||
@@ -110,6 +110,8 @@ static APBC_CLK(pwm2, PXA910_PWM2, 1, 13000000);
|
||||
static APBC_CLK(pwm3, PXA910_PWM3, 1, 13000000);
|
||||
static APBC_CLK(pwm4, PXA910_PWM4, 1, 13000000);
|
||||
|
||||
static APMU_CLK(nand, NAND, 0x01db, 208000000);
|
||||
|
||||
/* device and clock bindings */
|
||||
static struct clk_lookup pxa910_clkregs[] = {
|
||||
INIT_CLKREG(&clk_uart1, "pxa2xx-uart.0", NULL),
|
||||
@@ -120,6 +122,7 @@ static struct clk_lookup pxa910_clkregs[] = {
|
||||
INIT_CLKREG(&clk_pwm2, "pxa910-pwm.1", NULL),
|
||||
INIT_CLKREG(&clk_pwm3, "pxa910-pwm.2", NULL),
|
||||
INIT_CLKREG(&clk_pwm4, "pxa910-pwm.3", NULL),
|
||||
INIT_CLKREG(&clk_nand, "pxa3xx-nand", NULL),
|
||||
};
|
||||
|
||||
static int __init pxa910_init(void)
|
||||
@@ -174,3 +177,4 @@ PXA910_DEVICE(pwm1, "pxa910-pwm", 0, NONE, 0xd401a000, 0x10);
|
||||
PXA910_DEVICE(pwm2, "pxa910-pwm", 1, NONE, 0xd401a400, 0x10);
|
||||
PXA910_DEVICE(pwm3, "pxa910-pwm", 2, NONE, 0xd401a800, 0x10);
|
||||
PXA910_DEVICE(pwm4, "pxa910-pwm", 3, NONE, 0xd401ac00, 0x10);
|
||||
PXA910_DEVICE(nand, "pxa3xx-nand", -1, NAND, 0xd4283000, 0x80, 97, 99);
|
||||
|
||||
@@ -11,9 +11,13 @@
|
||||
#include <linux/init.h>
|
||||
#include <linux/kernel.h>
|
||||
#include <linux/platform_device.h>
|
||||
#include <linux/mtd/mtd.h>
|
||||
#include <linux/mtd/partitions.h>
|
||||
#include <linux/mtd/onenand.h>
|
||||
|
||||
#include <asm/mach-types.h>
|
||||
#include <asm/mach/arch.h>
|
||||
#include <asm/mach/flash.h>
|
||||
#include <mach/addr-map.h>
|
||||
#include <mach/mfp-pxa910.h>
|
||||
#include <mach/pxa910.h>
|
||||
@@ -26,6 +30,86 @@ static unsigned long ttc_dkb_pin_config[] __initdata = {
|
||||
/* UART2 */
|
||||
GPIO47_UART2_RXD,
|
||||
GPIO48_UART2_TXD,
|
||||
|
||||
/* DFI */
|
||||
DF_IO0_ND_IO0,
|
||||
DF_IO1_ND_IO1,
|
||||
DF_IO2_ND_IO2,
|
||||
DF_IO3_ND_IO3,
|
||||
DF_IO4_ND_IO4,
|
||||
DF_IO5_ND_IO5,
|
||||
DF_IO6_ND_IO6,
|
||||
DF_IO7_ND_IO7,
|
||||
DF_IO8_ND_IO8,
|
||||
DF_IO9_ND_IO9,
|
||||
DF_IO10_ND_IO10,
|
||||
DF_IO11_ND_IO11,
|
||||
DF_IO12_ND_IO12,
|
||||
DF_IO13_ND_IO13,
|
||||
DF_IO14_ND_IO14,
|
||||
DF_IO15_ND_IO15,
|
||||
DF_nCS0_SM_nCS2_nCS0,
|
||||
DF_ALE_SM_WEn_ND_ALE,
|
||||
DF_CLE_SM_OEn_ND_CLE,
|
||||
DF_WEn_DF_WEn,
|
||||
DF_REn_DF_REn,
|
||||
DF_RDY0_DF_RDY0,
|
||||
};
|
||||
|
||||
static struct mtd_partition ttc_dkb_onenand_partitions[] = {
|
||||
{
|
||||
.name = "bootloader",
|
||||
.offset = 0,
|
||||
.size = SZ_1M,
|
||||
.mask_flags = MTD_WRITEABLE,
|
||||
}, {
|
||||
.name = "reserved",
|
||||
.offset = MTDPART_OFS_APPEND,
|
||||
.size = SZ_128K,
|
||||
.mask_flags = MTD_WRITEABLE,
|
||||
}, {
|
||||
.name = "reserved",
|
||||
.offset = MTDPART_OFS_APPEND,
|
||||
.size = SZ_8M,
|
||||
.mask_flags = MTD_WRITEABLE,
|
||||
}, {
|
||||
.name = "kernel",
|
||||
.offset = MTDPART_OFS_APPEND,
|
||||
.size = (SZ_2M + SZ_1M),
|
||||
.mask_flags = 0,
|
||||
}, {
|
||||
.name = "filesystem",
|
||||
.offset = MTDPART_OFS_APPEND,
|
||||
.size = SZ_48M,
|
||||
.mask_flags = 0,
|
||||
}
|
||||
};
|
||||
|
||||
static struct onenand_platform_data ttc_dkb_onenand_info = {
|
||||
.parts = ttc_dkb_onenand_partitions,
|
||||
.nr_parts = ARRAY_SIZE(ttc_dkb_onenand_partitions),
|
||||
};
|
||||
|
||||
static struct resource ttc_dkb_resource_onenand[] = {
|
||||
[0] = {
|
||||
.start = SMC_CS0_PHYS_BASE,
|
||||
.end = SMC_CS0_PHYS_BASE + SZ_1M,
|
||||
.flags = IORESOURCE_MEM,
|
||||
},
|
||||
};
|
||||
|
||||
static struct platform_device ttc_dkb_device_onenand = {
|
||||
.name = "onenand-flash",
|
||||
.id = -1,
|
||||
.resource = ttc_dkb_resource_onenand,
|
||||
.num_resources = ARRAY_SIZE(ttc_dkb_resource_onenand),
|
||||
.dev = {
|
||||
.platform_data = &ttc_dkb_onenand_info,
|
||||
},
|
||||
};
|
||||
|
||||
static struct platform_device *ttc_dkb_devices[] = {
|
||||
&ttc_dkb_device_onenand,
|
||||
};
|
||||
|
||||
static void __init ttc_dkb_init(void)
|
||||
@@ -34,6 +118,9 @@ static void __init ttc_dkb_init(void)
|
||||
|
||||
/* on-chip devices */
|
||||
pxa910_add_uart(1);
|
||||
|
||||
/* off-chip devices */
|
||||
platform_add_devices(ARRAY_AND_SIZE(ttc_dkb_devices));
|
||||
}
|
||||
|
||||
MACHINE_START(TTC_DKB, "PXA910-based TTC_DKB Development Platform")
|
||||
|
||||
+370
-328
File diff suppressed because it is too large
Load Diff
+44
-46
@@ -24,33 +24,63 @@ obj-$(CONFIG_CPU_PXA300) += pxa300.o
|
||||
obj-$(CONFIG_CPU_PXA320) += pxa320.o
|
||||
obj-$(CONFIG_CPU_PXA930) += pxa930.o
|
||||
|
||||
# Specific board support
|
||||
# NOTE: keep the order of boards in accordance to their order in Kconfig
|
||||
|
||||
# Intel/Marvell Dev Platforms
|
||||
obj-$(CONFIG_ARCH_LUBBOCK) += lubbock.o
|
||||
obj-$(CONFIG_MACH_MAINSTONE) += mainstone.o
|
||||
obj-$(CONFIG_MACH_ZYLONITE300) += zylonite.o zylonite_pxa300.o
|
||||
obj-$(CONFIG_MACH_ZYLONITE320) += zylonite.o zylonite_pxa320.o
|
||||
obj-$(CONFIG_MACH_LITTLETON) += littleton.o
|
||||
obj-$(CONFIG_MACH_TAVOREVB) += tavorevb.o
|
||||
obj-$(CONFIG_MACH_SAAR) += saar.o
|
||||
|
||||
# 3rd Party Dev Platforms
|
||||
obj-$(CONFIG_ARCH_PXA_IDP) += idp.o
|
||||
obj-$(CONFIG_ARCH_VIPER) += viper.o
|
||||
obj-$(CONFIG_MACH_BALLOON3) += balloon3.o
|
||||
obj-$(CONFIG_MACH_CSB726) += csb726.o
|
||||
obj-$(CONFIG_CSB726_CSB701) += csb701.o
|
||||
obj-$(CONFIG_MACH_ARMCORE) += cm-x2xx.o cm-x255.o cm-x270.o
|
||||
ifeq ($(CONFIG_PCI),y)
|
||||
obj-$(CONFIG_MACH_ARMCORE) += cm-x2xx-pci.o
|
||||
endif
|
||||
obj-$(CONFIG_MACH_EM_X270) += em-x270.o
|
||||
obj-$(CONFIG_MACH_CM_X300) += cm-x300.o
|
||||
obj-$(CONFIG_ARCH_GUMSTIX) += gumstix.o
|
||||
obj-$(CONFIG_GUMSTIX_AM200EPD) += am200epd.o
|
||||
obj-$(CONFIG_GUMSTIX_AM300EPD) += am300epd.o
|
||||
obj-$(CONFIG_ARCH_LUBBOCK) += lubbock.o
|
||||
obj-$(CONFIG_MACH_LOGICPD_PXA270) += lpd270.o
|
||||
obj-$(CONFIG_MACH_MAINSTONE) += mainstone.o
|
||||
obj-$(CONFIG_MACH_BALLOON3) += balloon3.o
|
||||
obj-$(CONFIG_MACH_MP900C) += mp900.o
|
||||
obj-$(CONFIG_ARCH_PXA_IDP) += idp.o
|
||||
obj-$(CONFIG_MACH_INTELMOTE2) += imote2.o
|
||||
obj-$(CONFIG_MACH_STARGATE2) += stargate2.o
|
||||
obj-$(CONFIG_MACH_XCEP) += xcep.o
|
||||
obj-$(CONFIG_MACH_TRIZEPS4) += trizeps4.o
|
||||
obj-$(CONFIG_MACH_LOGICPD_PXA270) += lpd270.o
|
||||
obj-$(CONFIG_MACH_PCM027) += pcm027.o
|
||||
obj-$(CONFIG_MACH_PCM990_BASEBOARD) += pcm990-baseboard.o
|
||||
obj-$(CONFIG_MACH_COLIBRI) += colibri-pxa270.o
|
||||
obj-$(CONFIG_MACH_COLIBRI300) += colibri-pxa3xx.o colibri-pxa300.o
|
||||
obj-$(CONFIG_MACH_COLIBRI320) += colibri-pxa3xx.o colibri-pxa320.o
|
||||
|
||||
# End-user Products
|
||||
obj-$(CONFIG_MACH_H4700) += hx4700.o
|
||||
obj-$(CONFIG_MACH_H5000) += h5000.o
|
||||
obj-$(CONFIG_MACH_HIMALAYA) += himalaya.o
|
||||
obj-$(CONFIG_MACH_MAGICIAN) += magician.o
|
||||
obj-$(CONFIG_MACH_MIOA701) += mioa701.o mioa701_bootresume.o
|
||||
obj-$(CONFIG_PXA_EZX) += ezx.o
|
||||
obj-$(CONFIG_MACH_MP900C) += mp900.o
|
||||
obj-$(CONFIG_MACH_PALMTE2) += palmte2.o
|
||||
obj-$(CONFIG_MACH_PALMTC) += palmtc.o
|
||||
obj-$(CONFIG_MACH_PALMT5) += palmt5.o
|
||||
obj-$(CONFIG_MACH_PALMTX) += palmtx.o
|
||||
obj-$(CONFIG_MACH_PALMZ72) += palmz72.o
|
||||
obj-$(CONFIG_MACH_PALMLD) += palmld.o
|
||||
obj-$(CONFIG_PALM_TREO) += palmtreo.o
|
||||
obj-$(CONFIG_PXA_SHARP_C7xx) += corgi.o sharpsl_pm.o corgi_pm.o
|
||||
obj-$(CONFIG_PXA_SHARP_Cxx00) += spitz.o sharpsl_pm.o spitz_pm.o
|
||||
obj-$(CONFIG_CORGI_SSP_DEPRECATED) += corgi_ssp.o corgi_lcd.o
|
||||
obj-$(CONFIG_MACH_POODLE) += poodle.o
|
||||
obj-$(CONFIG_MACH_PCM027) += pcm027.o
|
||||
obj-$(CONFIG_MACH_PCM990_BASEBOARD) += pcm990-baseboard.o
|
||||
obj-$(CONFIG_MACH_TOSA) += tosa.o
|
||||
obj-$(CONFIG_MACH_EM_X270) += em-x270.o
|
||||
obj-$(CONFIG_MACH_H4700) += hx4700.o
|
||||
obj-$(CONFIG_MACH_MAGICIAN) += magician.o
|
||||
obj-$(CONFIG_MACH_HIMALAYA) += himalaya.o
|
||||
obj-$(CONFIG_MACH_MIOA701) += mioa701.o mioa701_bootresume.o
|
||||
obj-$(CONFIG_ARCH_PXA_ESERIES) += eseries.o
|
||||
obj-$(CONFIG_MACH_E330) += e330.o
|
||||
obj-$(CONFIG_MACH_E350) += e350.o
|
||||
@@ -58,34 +88,6 @@ obj-$(CONFIG_MACH_E740) += e740.o
|
||||
obj-$(CONFIG_MACH_E750) += e750.o
|
||||
obj-$(CONFIG_MACH_E400) += e400.o
|
||||
obj-$(CONFIG_MACH_E800) += e800.o
|
||||
obj-$(CONFIG_MACH_PALMTE2) += palmte2.o
|
||||
obj-$(CONFIG_MACH_PALMTC) += palmtc.o
|
||||
obj-$(CONFIG_MACH_PALMT5) += palmt5.o
|
||||
obj-$(CONFIG_MACH_PALMTX) += palmtx.o
|
||||
obj-$(CONFIG_MACH_PALMLD) += palmld.o
|
||||
obj-$(CONFIG_MACH_PALMZ72) += palmz72.o
|
||||
obj-$(CONFIG_MACH_TREO680) += treo680.o
|
||||
obj-$(CONFIG_ARCH_VIPER) += viper.o
|
||||
|
||||
ifeq ($(CONFIG_MACH_ZYLONITE),y)
|
||||
obj-y += zylonite.o
|
||||
obj-$(CONFIG_CPU_PXA300) += zylonite_pxa300.o
|
||||
obj-$(CONFIG_CPU_PXA320) += zylonite_pxa320.o
|
||||
endif
|
||||
obj-$(CONFIG_MACH_LITTLETON) += littleton.o
|
||||
obj-$(CONFIG_MACH_TAVOREVB) += tavorevb.o
|
||||
obj-$(CONFIG_MACH_SAAR) += saar.o
|
||||
|
||||
obj-$(CONFIG_MACH_ARMCORE) += cm-x2xx.o cm-x255.o cm-x270.o
|
||||
obj-$(CONFIG_MACH_CM_X300) += cm-x300.o
|
||||
obj-$(CONFIG_PXA_EZX) += ezx.o
|
||||
|
||||
obj-$(CONFIG_MACH_XCEP) += xcep.o
|
||||
|
||||
obj-$(CONFIG_MACH_INTELMOTE2) += imote2.o
|
||||
obj-$(CONFIG_MACH_STARGATE2) += stargate2.o
|
||||
obj-$(CONFIG_MACH_CSB726) += csb726.o
|
||||
obj-$(CONFIG_CSB726_CSB701) += csb701.o
|
||||
|
||||
# Support for blinky lights
|
||||
led-y := leds.o
|
||||
@@ -95,8 +97,4 @@ led-$(CONFIG_ARCH_PXA_IDP) += leds-idp.o
|
||||
|
||||
obj-$(CONFIG_LEDS) += $(led-y)
|
||||
|
||||
ifeq ($(CONFIG_PCI),y)
|
||||
obj-$(CONFIG_MACH_ARMCORE) += cm-x2xx-pci.o
|
||||
endif
|
||||
|
||||
obj-$(CONFIG_TOSA_BT) += tosa-bt.o
|
||||
|
||||
@@ -306,6 +306,10 @@ static void __init balloon3_init(void)
|
||||
*/
|
||||
ARB_CNTRL = ARB_CORE_PARK | 0x234;
|
||||
|
||||
pxa_set_ffuart_info(NULL);
|
||||
pxa_set_btuart_info(NULL);
|
||||
pxa_set_stuart_info(NULL);
|
||||
|
||||
pxa_set_i2c_info(NULL);
|
||||
if (balloon3_has(BALLOON3_FEATURE_AUDIO))
|
||||
pxa_set_ac97_info(NULL);
|
||||
|
||||
@@ -453,6 +453,10 @@ static inline void cmx2xx_init_ac97(void) {}
|
||||
|
||||
static void __init cmx2xx_init(void)
|
||||
{
|
||||
pxa_set_ffuart_info(NULL);
|
||||
pxa_set_btuart_info(NULL);
|
||||
pxa_set_stuart_info(NULL);
|
||||
|
||||
cmx2xx_pm_init();
|
||||
|
||||
if (cpu_is_pxa25x())
|
||||
|
||||
+249
-11
@@ -3,9 +3,10 @@
|
||||
*
|
||||
* Support for the CompuLab CM-X300 modules
|
||||
*
|
||||
* Copyright (C) 2008 CompuLab Ltd.
|
||||
* Copyright (C) 2008,2009 CompuLab Ltd.
|
||||
*
|
||||
* Mike Rapoport <mike@compulab.co.il>
|
||||
* Igor Grinberg <grinberg@compulab.co.il>
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License version 2 as
|
||||
@@ -16,30 +17,41 @@
|
||||
#include <linux/kernel.h>
|
||||
#include <linux/interrupt.h>
|
||||
#include <linux/init.h>
|
||||
#include <linux/delay.h>
|
||||
#include <linux/platform_device.h>
|
||||
|
||||
#include <linux/gpio.h>
|
||||
#include <linux/dm9000.h>
|
||||
#include <linux/leds.h>
|
||||
#include <linux/rtc-v3020.h>
|
||||
#include <linux/pwm_backlight.h>
|
||||
|
||||
#include <linux/i2c.h>
|
||||
#include <linux/i2c/pca953x.h>
|
||||
|
||||
#include <linux/mfd/da903x.h>
|
||||
|
||||
#include <linux/spi/spi.h>
|
||||
#include <linux/spi/spi_gpio.h>
|
||||
#include <linux/spi/tdo24m.h>
|
||||
|
||||
#include <asm/mach-types.h>
|
||||
#include <asm/mach/arch.h>
|
||||
#include <asm/setup.h>
|
||||
|
||||
#include <mach/pxa300.h>
|
||||
#include <mach/pxa27x-udc.h>
|
||||
#include <mach/pxafb.h>
|
||||
#include <mach/mmc.h>
|
||||
#include <mach/ohci.h>
|
||||
#include <plat/i2c.h>
|
||||
#include <mach/pxa3xx_nand.h>
|
||||
#include <plat/pxa3xx_nand.h>
|
||||
#include <mach/audio.h>
|
||||
|
||||
#include <asm/mach/map.h>
|
||||
|
||||
#include "generic.h"
|
||||
#include "devices.h"
|
||||
|
||||
#define CM_X300_ETH_PHYS 0x08000010
|
||||
|
||||
@@ -53,7 +65,7 @@
|
||||
#define GPIO97_RTC_RD (97)
|
||||
#define GPIO98_RTC_IO (98)
|
||||
|
||||
static mfp_cfg_t cm_x300_mfp_cfg[] __initdata = {
|
||||
static mfp_cfg_t cm_x3xx_mfp_cfg[] __initdata = {
|
||||
/* LCD */
|
||||
GPIO54_LCD_LDD_0,
|
||||
GPIO55_LCD_LDD_1,
|
||||
@@ -137,7 +149,6 @@ static mfp_cfg_t cm_x300_mfp_cfg[] __initdata = {
|
||||
GPIO36_UART1_DTR,
|
||||
|
||||
/* GPIOs */
|
||||
GPIO79_GPIO, /* LED */
|
||||
GPIO82_GPIO | MFP_PULL_HIGH, /* MMC CD */
|
||||
GPIO85_GPIO, /* MMC WP */
|
||||
GPIO99_GPIO, /* Ethernet IRQ */
|
||||
@@ -151,6 +162,50 @@ static mfp_cfg_t cm_x300_mfp_cfg[] __initdata = {
|
||||
/* Standard I2C */
|
||||
GPIO21_I2C_SCL,
|
||||
GPIO22_I2C_SDA,
|
||||
|
||||
/* PWM Backlight */
|
||||
GPIO19_PWM2_OUT,
|
||||
};
|
||||
|
||||
static mfp_cfg_t cm_x3xx_rev_lt130_mfp_cfg[] __initdata = {
|
||||
/* GPIOs */
|
||||
GPIO79_GPIO, /* LED */
|
||||
GPIO77_GPIO, /* WiFi reset */
|
||||
GPIO78_GPIO, /* BT reset */
|
||||
};
|
||||
|
||||
static mfp_cfg_t cm_x3xx_rev_ge130_mfp_cfg[] __initdata = {
|
||||
/* GPIOs */
|
||||
GPIO76_GPIO, /* LED */
|
||||
GPIO71_GPIO, /* WiFi reset */
|
||||
GPIO70_GPIO, /* BT reset */
|
||||
};
|
||||
|
||||
static mfp_cfg_t cm_x310_mfp_cfg[] __initdata = {
|
||||
/* USB PORT 2 */
|
||||
ULPI_STP,
|
||||
ULPI_NXT,
|
||||
ULPI_DIR,
|
||||
GPIO30_ULPI_DATA_OUT_0,
|
||||
GPIO31_ULPI_DATA_OUT_1,
|
||||
GPIO32_ULPI_DATA_OUT_2,
|
||||
GPIO33_ULPI_DATA_OUT_3,
|
||||
GPIO34_ULPI_DATA_OUT_4,
|
||||
GPIO35_ULPI_DATA_OUT_5,
|
||||
GPIO36_ULPI_DATA_OUT_6,
|
||||
GPIO37_ULPI_DATA_OUT_7,
|
||||
GPIO38_ULPI_CLK,
|
||||
/* external PHY reset pin */
|
||||
GPIO127_GPIO,
|
||||
|
||||
/* USB PORT 3 */
|
||||
GPIO77_USB_P3_1,
|
||||
GPIO78_USB_P3_2,
|
||||
GPIO79_USB_P3_3,
|
||||
GPIO80_USB_P3_4,
|
||||
GPIO81_USB_P3_5,
|
||||
GPIO82_USB_P3_6,
|
||||
GPIO0_2_USBH_PEN,
|
||||
};
|
||||
|
||||
#if defined(CONFIG_DM9000) || defined(CONFIG_DM9000_MODULE)
|
||||
@@ -195,17 +250,18 @@ static void __init cm_x300_init_dm9000(void)
|
||||
static inline void cm_x300_init_dm9000(void) {}
|
||||
#endif
|
||||
|
||||
/* LCD */
|
||||
#if defined(CONFIG_FB_PXA) || defined(CONFIG_FB_PXA_MODULE)
|
||||
static struct pxafb_mode_info cm_x300_lcd_modes[] = {
|
||||
[0] = {
|
||||
.pixclock = 38000,
|
||||
.pixclock = 38250,
|
||||
.bpp = 16,
|
||||
.xres = 480,
|
||||
.yres = 640,
|
||||
.hsync_len = 8,
|
||||
.vsync_len = 2,
|
||||
.left_margin = 8,
|
||||
.upper_margin = 0,
|
||||
.upper_margin = 2,
|
||||
.right_margin = 24,
|
||||
.lower_margin = 4,
|
||||
.cmap_greyscale = 0,
|
||||
@@ -227,7 +283,7 @@ static struct pxafb_mode_info cm_x300_lcd_modes[] = {
|
||||
|
||||
static struct pxafb_mach_info cm_x300_lcd = {
|
||||
.modes = cm_x300_lcd_modes,
|
||||
.num_modes = 2,
|
||||
.num_modes = ARRAY_SIZE(cm_x300_lcd_modes),
|
||||
.lcd_conn = LCD_COLOR_TFT_16BPP | LCD_PCLK_EDGE_FALL,
|
||||
};
|
||||
|
||||
@@ -239,6 +295,87 @@ static void __init cm_x300_init_lcd(void)
|
||||
static inline void cm_x300_init_lcd(void) {}
|
||||
#endif
|
||||
|
||||
#if defined(CONFIG_BACKLIGHT_PWM) || defined(CONFIG_BACKLIGHT_PWM_MODULE)
|
||||
static struct platform_pwm_backlight_data cm_x300_backlight_data = {
|
||||
.pwm_id = 2,
|
||||
.max_brightness = 100,
|
||||
.dft_brightness = 100,
|
||||
.pwm_period_ns = 10000,
|
||||
};
|
||||
|
||||
static struct platform_device cm_x300_backlight_device = {
|
||||
.name = "pwm-backlight",
|
||||
.dev = {
|
||||
.parent = &pxa27x_device_pwm0.dev,
|
||||
.platform_data = &cm_x300_backlight_data,
|
||||
},
|
||||
};
|
||||
|
||||
static void cm_x300_init_bl(void)
|
||||
{
|
||||
platform_device_register(&cm_x300_backlight_device);
|
||||
}
|
||||
#else
|
||||
static inline void cm_x300_init_bl(void) {}
|
||||
#endif
|
||||
|
||||
#if defined(CONFIG_SPI_GPIO) || defined(CONFIG_SPI_GPIO_MODULE)
|
||||
#define GPIO_LCD_BASE (144)
|
||||
#define GPIO_LCD_DIN (GPIO_LCD_BASE + 8) /* aux_gpio3_0 */
|
||||
#define GPIO_LCD_DOUT (GPIO_LCD_BASE + 9) /* aux_gpio3_1 */
|
||||
#define GPIO_LCD_SCL (GPIO_LCD_BASE + 10) /* aux_gpio3_2 */
|
||||
#define GPIO_LCD_CS (GPIO_LCD_BASE + 11) /* aux_gpio3_3 */
|
||||
#define LCD_SPI_BUS_NUM (1)
|
||||
|
||||
static struct spi_gpio_platform_data cm_x300_spi_gpio_pdata = {
|
||||
.sck = GPIO_LCD_SCL,
|
||||
.mosi = GPIO_LCD_DIN,
|
||||
.miso = GPIO_LCD_DOUT,
|
||||
.num_chipselect = 1,
|
||||
};
|
||||
|
||||
static struct platform_device cm_x300_spi_gpio = {
|
||||
.name = "spi_gpio",
|
||||
.id = LCD_SPI_BUS_NUM,
|
||||
.dev = {
|
||||
.platform_data = &cm_x300_spi_gpio_pdata,
|
||||
},
|
||||
};
|
||||
|
||||
static struct tdo24m_platform_data cm_x300_tdo24m_pdata = {
|
||||
.model = TDO35S,
|
||||
};
|
||||
|
||||
static struct spi_board_info cm_x300_spi_devices[] __initdata = {
|
||||
{
|
||||
.modalias = "tdo24m",
|
||||
.max_speed_hz = 1000000,
|
||||
.bus_num = LCD_SPI_BUS_NUM,
|
||||
.chip_select = 0,
|
||||
.controller_data = (void *) GPIO_LCD_CS,
|
||||
.platform_data = &cm_x300_tdo24m_pdata,
|
||||
},
|
||||
};
|
||||
|
||||
static void __init cm_x300_init_spi(void)
|
||||
{
|
||||
spi_register_board_info(cm_x300_spi_devices,
|
||||
ARRAY_SIZE(cm_x300_spi_devices));
|
||||
platform_device_register(&cm_x300_spi_gpio);
|
||||
}
|
||||
#else
|
||||
static inline void cm_x300_init_spi(void) {}
|
||||
#endif
|
||||
|
||||
#if defined(CONFIG_SND_PXA2XX_LIB_AC97)
|
||||
static void __init cm_x300_init_ac97(void)
|
||||
{
|
||||
pxa_set_ac97_info(NULL);
|
||||
}
|
||||
#else
|
||||
static inline void cm_x300_init_ac97(void) {}
|
||||
#endif
|
||||
|
||||
#if defined(CONFIG_MTD_NAND_PXA3xx) || defined(CONFIG_MTD_NAND_PXA3xx_MODULE)
|
||||
static struct mtd_partition cm_x300_nand_partitions[] = {
|
||||
[0] = {
|
||||
@@ -333,9 +470,19 @@ static inline void cm_x300_init_mmc(void) {}
|
||||
#endif
|
||||
|
||||
#if defined(CONFIG_USB_OHCI_HCD) || defined(CONFIG_USB_OHCI_HCD_MODULE)
|
||||
static int cm_x300_ohci_init(struct device *dev)
|
||||
{
|
||||
if (cpu_is_pxa300())
|
||||
UP2OCR = UP2OCR_HXS
|
||||
| UP2OCR_HXOE | UP2OCR_DMPDE | UP2OCR_DPPDE;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static struct pxaohci_platform_data cm_x300_ohci_platform_data = {
|
||||
.port_mode = PMM_PERPORT_MODE,
|
||||
.flags = ENABLE_PORT1 | ENABLE_PORT2 | POWER_CONTROL_LOW,
|
||||
.flags = ENABLE_PORT_ALL | POWER_CONTROL_LOW,
|
||||
.init = cm_x300_ohci_init,
|
||||
};
|
||||
|
||||
static void __init cm_x300_init_ohci(void)
|
||||
@@ -351,7 +498,6 @@ static struct gpio_led cm_x300_leds[] = {
|
||||
[0] = {
|
||||
.name = "cm-x300:green",
|
||||
.default_trigger = "heartbeat",
|
||||
.gpio = 79,
|
||||
.active_low = 1,
|
||||
},
|
||||
};
|
||||
@@ -371,6 +517,11 @@ static struct platform_device cm_x300_led_device = {
|
||||
|
||||
static void __init cm_x300_init_leds(void)
|
||||
{
|
||||
if (system_rev < 130)
|
||||
cm_x300_leds[0].gpio = 79;
|
||||
else
|
||||
cm_x300_leds[0].gpio = 76;
|
||||
|
||||
platform_device_register(&cm_x300_led_device);
|
||||
}
|
||||
#else
|
||||
@@ -433,11 +584,94 @@ static void __init cm_x300_init_rtc(void)
|
||||
static inline void cm_x300_init_rtc(void) {}
|
||||
#endif
|
||||
|
||||
static void __init cm_x300_init(void)
|
||||
/* DA9030 */
|
||||
struct da903x_subdev_info cm_x300_da9030_subdevs[] = {
|
||||
{
|
||||
.name = "da903x-backlight",
|
||||
.id = DA9030_ID_WLED,
|
||||
}
|
||||
};
|
||||
|
||||
static struct da903x_platform_data cm_x300_da9030_info = {
|
||||
.num_subdevs = ARRAY_SIZE(cm_x300_da9030_subdevs),
|
||||
.subdevs = cm_x300_da9030_subdevs,
|
||||
};
|
||||
|
||||
static struct i2c_board_info cm_x300_pmic_info = {
|
||||
I2C_BOARD_INFO("da9030", 0x49),
|
||||
.irq = IRQ_GPIO(0),
|
||||
.platform_data = &cm_x300_da9030_info,
|
||||
};
|
||||
|
||||
static struct i2c_pxa_platform_data cm_x300_pwr_i2c_info = {
|
||||
.use_pio = 1,
|
||||
};
|
||||
|
||||
static void __init cm_x300_init_da9030(void)
|
||||
{
|
||||
pxa3xx_set_i2c_power_info(&cm_x300_pwr_i2c_info);
|
||||
i2c_register_board_info(1, &cm_x300_pmic_info, 1);
|
||||
}
|
||||
|
||||
static void __init cm_x300_init_wi2wi(void)
|
||||
{
|
||||
int bt_reset, wlan_en;
|
||||
int err;
|
||||
|
||||
if (system_rev < 130) {
|
||||
wlan_en = 77;
|
||||
bt_reset = 78;
|
||||
} else {
|
||||
wlan_en = 71;
|
||||
bt_reset = 70;
|
||||
}
|
||||
|
||||
/* Libertas and CSR reset */
|
||||
err = gpio_request(wlan_en, "wlan en");
|
||||
if (err) {
|
||||
pr_err("CM-X300: failed to request wlan en gpio: %d\n", err);
|
||||
} else {
|
||||
gpio_direction_output(wlan_en, 1);
|
||||
gpio_free(wlan_en);
|
||||
}
|
||||
|
||||
err = gpio_request(bt_reset, "bt reset");
|
||||
if (err) {
|
||||
pr_err("CM-X300: failed to request bt reset gpio: %d\n", err);
|
||||
} else {
|
||||
gpio_direction_output(bt_reset, 1);
|
||||
udelay(10);
|
||||
gpio_set_value(bt_reset, 0);
|
||||
udelay(10);
|
||||
gpio_set_value(bt_reset, 1);
|
||||
gpio_free(bt_reset);
|
||||
}
|
||||
}
|
||||
|
||||
/* MFP */
|
||||
static void __init cm_x300_init_mfp(void)
|
||||
{
|
||||
/* board-processor specific GPIO initialization */
|
||||
pxa3xx_mfp_config(ARRAY_AND_SIZE(cm_x300_mfp_cfg));
|
||||
pxa3xx_mfp_config(ARRAY_AND_SIZE(cm_x3xx_mfp_cfg));
|
||||
|
||||
if (system_rev < 130)
|
||||
pxa3xx_mfp_config(ARRAY_AND_SIZE(cm_x3xx_rev_lt130_mfp_cfg));
|
||||
else
|
||||
pxa3xx_mfp_config(ARRAY_AND_SIZE(cm_x3xx_rev_ge130_mfp_cfg));
|
||||
|
||||
if (cpu_is_pxa310())
|
||||
pxa3xx_mfp_config(ARRAY_AND_SIZE(cm_x310_mfp_cfg));
|
||||
}
|
||||
|
||||
static void __init cm_x300_init(void)
|
||||
{
|
||||
cm_x300_init_mfp();
|
||||
|
||||
pxa_set_ffuart_info(NULL);
|
||||
pxa_set_btuart_info(NULL);
|
||||
pxa_set_stuart_info(NULL);
|
||||
|
||||
cm_x300_init_da9030();
|
||||
cm_x300_init_dm9000();
|
||||
cm_x300_init_lcd();
|
||||
cm_x300_init_ohci();
|
||||
@@ -445,7 +679,11 @@ static void __init cm_x300_init(void)
|
||||
cm_x300_init_nand();
|
||||
cm_x300_init_leds();
|
||||
cm_x300_init_i2c();
|
||||
cm_x300_init_spi();
|
||||
cm_x300_init_rtc();
|
||||
cm_x300_init_ac97();
|
||||
cm_x300_init_wi2wi();
|
||||
cm_x300_init_bl();
|
||||
}
|
||||
|
||||
static void __init cm_x300_fixup(struct machine_desc *mdesc, struct tag *tags,
|
||||
|
||||
@@ -130,6 +130,9 @@ static struct platform_device *colibri_pxa270_devices[] __initdata = {
|
||||
static void __init colibri_pxa270_init(void)
|
||||
{
|
||||
pxa2xx_mfp_config(ARRAY_AND_SIZE(colibri_pxa270_pin_config));
|
||||
pxa_set_ffuart_info(NULL);
|
||||
pxa_set_btuart_info(NULL);
|
||||
pxa_set_stuart_info(NULL);
|
||||
platform_add_devices(ARRAY_AND_SIZE(colibri_pxa270_devices));
|
||||
}
|
||||
|
||||
|
||||
@@ -170,6 +170,10 @@ static inline void colibri_pxa310_init_ac97(void) {}
|
||||
|
||||
void __init colibri_pxa300_init(void)
|
||||
{
|
||||
pxa_set_ffuart_info(NULL);
|
||||
pxa_set_btuart_info(NULL);
|
||||
pxa_set_stuart_info(NULL);
|
||||
|
||||
colibri_pxa300_init_eth();
|
||||
colibri_pxa300_init_ohci();
|
||||
colibri_pxa3xx_init_nand();
|
||||
|
||||
@@ -199,6 +199,10 @@ static void __init colibri_pxa320_init_uart(void)
|
||||
|
||||
void __init colibri_pxa320_init(void)
|
||||
{
|
||||
pxa_set_ffuart_info(NULL);
|
||||
pxa_set_btuart_info(NULL);
|
||||
pxa_set_stuart_info(NULL);
|
||||
|
||||
colibri_pxa320_init_eth();
|
||||
colibri_pxa320_init_ohci();
|
||||
colibri_pxa3xx_init_nand();
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user