W: http://maxim.org.za/at91_26.html
S: Maintained
++ ++++ARM/BCMRING ARM ARCHITECTURE
++ ++++P: Leo Chen <leochen@broadcom.com>
++ ++++P: Scott Branden <sbranden@broadcom.com>
++ ++++L: linux-arm-kernel@lists.arm.linux.org.uk (subscribers-only)
++ ++++S: Maintained
++ ++++F: arch/arm/mach-bcmring
++ ++++
++ ++++ARM/BCMRING MTD NAND DRIVER
++ ++++P: Leo Chen <leochen@broadcom.com>
++ ++++P: Scott Branden <sbranden@broadcom.com>
++ ++++L: linux-mtd@lists.infradead.org
++ ++++S: Maintained
++ ++++F: drivers/mtd/nand/bcm_umi_nand.c
++ ++++F: drivers/mtd/nand/bcm_umi_bch.c
++ ++++F: drivers/mtd/nand/bcm_umi_hamming.c
++ ++++F: drivers/mtd/nand/nand_bcm_umi.h
++ ++++
ARM/CIRRUS LOGIC EP93XX ARM ARCHITECTURE
--- ---P: Lennert Buytenhek
--- ---M: kernel@wantstofly.org
+++ +++P: Hartley Sweeten
+++ +++M: hsweeten@visionengravers.com
+++ +++P: Ryan Mallon
+++ +++M: ryan@bluewatersys.com
L: linux-arm-kernel@lists.arm.linux.org.uk (subscribers-only)
S: Maintained
+++ +++F: arch/arm/mach-ep93xx/
+++ +++F: arch/arm/mach-ep93xx/include/mach/
ARM/CIRRUS LOGIC EDB9315A MACHINE SUPPORT
P: Lennert Buytenhek
W: http://www.shark-linux.de/shark.html
S: Maintained
+++++ +ARM/SAMSUNG ARM ARCHITECTURES
+++++ +P: Ben Dooks
+++++ +M: ben-linux@fluff.org
+++++ +L: linux-arm-kernel@lists.arm.linux.org.uk (subscribers-only)
+++++ +W: http://www.fluff.org/ben/linux/
+++++ +S: Maintained
+++++ +F: arch/arm/plat-s3c/
+++++ +F: arch/arm/plat-s3c24xx/
+++++ +
ARM/S3C2410 ARM ARCHITECTURE
P: Ben Dooks
M: ben-linux@fluff.org
L: linux-arm-kernel@lists.arm.linux.org.uk (subscribers-only)
W: http://www.fluff.org/ben/linux/
S: Maintained
+++++ +F: arch/arm/mach-s3c2410/
ARM/S3C2440 ARM ARCHITECTURE
P: Ben Dooks
L: linux-arm-kernel@lists.arm.linux.org.uk (subscribers-only)
W: http://www.fluff.org/ben/linux/
S: Maintained
+++++ +F: arch/arm/mach-s3c2440/
+++++ +
+++++ +ARM/S3C2442 ARM ARCHITECTURE
+++++ +P: Ben Dooks
+++++ +M: ben-linux@fluff.org
+++++ +L: linux-arm-kernel@lists.arm.linux.org.uk (subscribers-only)
+++++ +W: http://www.fluff.org/ben/linux/
+++++ +S: Maintained
+++++ +F: arch/arm/mach-s3c2442/
+++++ +
+++++ +ARM/S3C2443 ARM ARCHITECTURE
+++++ +P: Ben Dooks
+++++ +M: ben-linux@fluff.org
+++++ +L: linux-arm-kernel@lists.arm.linux.org.uk (subscribers-only)
+++++ +W: http://www.fluff.org/ben/linux/
+++++ +S: Maintained
+++++ +F: arch/arm/mach-s3c2443/
+++++ +
+++++ +ARM/S3C6400 ARM ARCHITECTURE
+++++ +P: Ben Dooks
+++++ +M: ben-linux@fluff.org
+++++ +L: linux-arm-kernel@lists.arm.linux.org.uk (subscribers-only)
+++++ +W: http://www.fluff.org/ben/linux/
+++++ +S: Maintained
+++++ +F: arch/arm/mach-s3c6400/
+++++ +
+++++ +ARM/S3C6410 ARM ARCHITECTURE
+++++ +P: Ben Dooks
+++++ +M: ben-linux@fluff.org
+++++ +L: linux-arm-kernel@lists.arm.linux.org.uk (subscribers-only)
+++++ +W: http://www.fluff.org/ben/linux/
+++++ +S: Maintained
+++++ +F: arch/arm/mach-s3c6410/
ARM/TECHNOLOGIC SYSTEMS TS7250 MACHINE SUPPORT
P: Lennert Buytenhek
EDAC-I82975X
P: Ranganathan Desikan
----- -M: rdesikan@jetzbroadband.com
+++++ +M: ravi@jetztechnologies.com
P: Arvind R.
----- -M: arvind@acarlab.com
+++++ +M: arvind@jetztechnologies.com
L: bluesmoke-devel@lists.sourceforge.net (moderated for non-subscribers)
W: bluesmoke.sourceforge.net
S: Maintained
IA64 (Itanium) PLATFORM
P: Tony Luck
+++++ +P: Fenghua Yu
M: tony.luck@intel.com
+++++ +M: fenghua.yu@intel.com
L: linux-ia64@vger.kernel.org
W: http://www.ia64-linux.org/
T: git git://git.kernel.org/pub/scm/linux/kernel/git/aegl/linux-2.6.git
M: dbaryshkov@gmail.com
P: Sergey Lapin
M: slapin@ossfans.org
----- -L: linux-zigbee-devel@lists.sourceforge.net
+++++ +L: linux-zigbee-devel@lists.sourceforge.net (moderated for non-subscribers)
W: http://apps.sourceforge.net/trac/linux-zigbee
T: git git://git.kernel.org/pub/scm/linux/kernel/git/lowpan/lowpan.git
S: Maintained
S: Maintained
F: drivers/net/wireless/orinoco/
----- -OSD LIBRARY
+++++ +OSD LIBRARY and FILESYSTEM
P: Boaz Harrosh
M: bharrosh@panasas.com
P: Benny Halevy
W: http://open-osd.org
T: git git://git.open-osd.org/open-osd.git
S: Maintained
+++++ +F: drivers/scsi/osd/
+++++ +F: drivers/include/scsi/osd_*
+++++ +F: fs/exofs/
P54 WIRELESS DRIVER
P: Michael Wu
STARFIRE/DURALAN NETWORK DRIVER
P: Ion Badulescu
----- -M: ionut@cs.columbia.edu
----- -S: Maintained
+++++ +M: ionut@badula.org
+++++ +S: Odd Fixes
F: drivers/net/starfire*
STARMODE RADIO IP (STRIP) PROTOCOL DRIVER
F: drivers/mmc/host/tifm_sd.c
F: include/linux/tifm.h
+++++ +TI TWL4030 SERIES SOC CODEC DRIVER
+++++ +P: Peter Ujfalusi
+++++ +M: peter.ujfalusi@nokia.com
+++++ +L: alsa-devel@alsa-project.org (moderated for non-subscribers)
+++++ +S: Maintained
+++++ +F: sound/soc/codecs/twl4030*
+++++ +
TIPC NETWORK LAYER
P: Per Liden
M: per.liden@ericsson.com
M: trivial@kernel.org
T: git git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial.git
S: Maintained
----- -F: drivers/char/tty_*
----- -F: drivers/serial/serial_core.c
----- -F: include/linux/serial_core.h
----- -F: include/linux/serial.h
----- -F: include/linux/tty.h
TTY LAYER
P: Alan Cox
M: alan@lxorguk.ukuu.org.uk
S: Maintained
T: stgit http://zeniv.linux.org.uk/~alan/ttydev/
+++++ +F: drivers/char/tty_*
+++++ +F: drivers/serial/serial_core.c
+++++ +F: include/linux/serial_core.h
+++++ +F: include/linux/serial.h
+++++ +F: include/linux/tty.h
TULIP NETWORK DRIVERS
P: Grant Grundler
P: Artem Bityutskiy
M: dedekind@infradead.org
P: Adrian Hunter
----- -M: ext-adrian.hunter@nokia.com
+++++ +M: adrian.hunter@nokia.com
L: linux-mtd@lists.infradead.org
T: git git://git.infradead.org/ubifs-2.6.git
W: http://www.linux-mtd.infradead.org/doc/ubifs.html
select ICST307
select GENERIC_TIME
select GENERIC_CLOCKEVENTS
++++++ select ARCH_WANT_OPTIONAL_GPIOLIB
help
This enables support for ARM Ltd RealView boards.
select ICST307
select GENERIC_TIME
select GENERIC_CLOCKEVENTS
++++++ select ARCH_WANT_OPTIONAL_GPIOLIB
help
This enables support for ARM Ltd Versatile board.
select CPU_ARM926T
select ARCH_REQUIRE_GPIOLIB
select GENERIC_GPIO
++++++ select HAVE_CLK
select COMMON_CLKDEV
++++++ select GENERIC_TIME
++++++ select GENERIC_CLOCKEVENTS
help
------ Support for Nuvoton (Winbond logic dept.) ARM9 processor,You
------ can login www.mcuos.com or www.nuvoton.com to know more.
++++++ Support for Nuvoton (Winbond logic dept.) ARM9 processor,
++++++ At present, the w90x900 has been renamed nuc900, regarding
++++++ the ARM series product line, you can login the following
++++++ link address to know more.
++++++
++++++ <http://www.nuvoton.com/hq/enu/ProductAndSales/ProductLines/
++++++ ConsumerElectronicsIC/ARMMicrocontroller/ARMMicrocontroller>
config ARCH_PNX4008
bool "Philips Nexperia PNX4008 Mobile"
help
Support for TI's OMAP platform (OMAP1 and OMAP2).
++ ++++config ARCH_BCMRING
++ ++++ bool "Broadcom BCMRING"
++ ++++ depends on MMU
++ ++++ select CPU_V6
++ ++++ select ARM_AMBA
++ ++++ select COMMON_CLKDEV
++ ++++ select GENERIC_TIME
++ ++++ select GENERIC_CLOCKEVENTS
++ ++++ select ARCH_WANT_OPTIONAL_GPIOLIB
++ ++++ help
++ ++++ Support for Broadcom's BCMRing platform.
++ ++++
endchoice
source "arch/arm/mach-clps711x/Kconfig"
source "arch/arm/mach-w90x900/Kconfig"
++ ++++source "arch/arm/mach-bcmring/Kconfig"
++ ++++
# Definitions to make life easier
config ARCH_ACORN
bool
If unsure, say n.
+++++ +config HIGHPTE
+++++ + bool "Allocate 2nd-level pagetables from highmem"
+++++ + depends on HIGHMEM
+++++ + depends on !OUTER_CACHE
+++++ +
source "mm/Kconfig"
config LEDS
#include <linux/platform_device.h>
#include <linux/spi/spi.h>
#include <linux/spi/at73c213.h>
+++++ +#include <linux/gpio_keys.h>
+++++ +#include <linux/input.h>
#include <linux/clk.h>
#include <mach/hardware.h>
}
};
+++++ +
+++++ +/*
+++++ + * GPIO Buttons
+++++ + */
+++++ +#if defined(CONFIG_KEYBOARD_GPIO) || defined(CONFIG_KEYBOARD_GPIO_MODULE)
+++++ +static struct gpio_keys_button ek_buttons[] = {
+++++ + {
+++++ + .gpio = AT91_PIN_PA30,
+++++ + .code = BTN_3,
+++++ + .desc = "Button 3",
+++++ + .active_low = 1,
+++++ + .wakeup = 1,
+++++ + },
+++++ + {
+++++ + .gpio = AT91_PIN_PA31,
+++++ + .code = BTN_4,
+++++ + .desc = "Button 4",
+++++ + .active_low = 1,
+++++ + .wakeup = 1,
+++++ + }
+++++ +};
+++++ +
+++++ +static struct gpio_keys_platform_data ek_button_data = {
+++++ + .buttons = ek_buttons,
+++++ + .nbuttons = ARRAY_SIZE(ek_buttons),
+++++ +};
+++++ +
+++++ +static struct platform_device ek_button_device = {
+++++ + .name = "gpio-keys",
+++++ + .id = -1,
+++++ + .num_resources = 0,
+++++ + .dev = {
+++++ + .platform_data = &ek_button_data,
+++++ + }
+++++ +};
+++++ +
+++++ +static void __init ek_add_device_buttons(void)
+++++ +{
+++++ + at91_set_gpio_input(AT91_PIN_PA30, 1); /* btn3 */
+++++ + at91_set_deglitch(AT91_PIN_PA30, 1);
+++++ + at91_set_gpio_input(AT91_PIN_PA31, 1); /* btn4 */
+++++ + at91_set_deglitch(AT91_PIN_PA31, 1);
+++++ +
+++++ + platform_device_register(&ek_button_device);
+++++ +}
+++++ +#else
+++++ +static void __init ek_add_device_buttons(void) {}
+++++ +#endif
+++++ +
+++++ +
static struct i2c_board_info __initdata ek_i2c_devices[] = {
{
I2C_BOARD_INFO("24c512", 0x50),
+ +++++ I2C_BOARD_INFO("wm8731", 0x1b),
},
};
at91_add_device_i2c(ek_i2c_devices, ARRAY_SIZE(ek_i2c_devices));
/* LEDs */
at91_gpio_leds(ek_leds, ARRAY_SIZE(ek_leds));
+++++ + /* Push Buttons */
+++++ + ek_add_device_buttons();
/* PCK0 provides MCLK to the WM8731 */
at91_set_B_periph(AT91_PIN_PC1, 0);
/* SSC (for WM8731) */
#include <linux/spi/spi.h>
#include <linux/fb.h>
#include <linux/clk.h>
+ +++++#include <linux/input.h>
+ +++++#include <linux/gpio_keys.h>
#include <video/atmel_lcdc.h>
static void at91_lcdc_power_control(int on)
{
if (on)
----- - at91_set_gpio_value(AT91_PIN_PA30, 0); /* power up */
+++++ + at91_set_gpio_value(AT91_PIN_PC1, 0); /* power up */
else
----- - at91_set_gpio_value(AT91_PIN_PA30, 1); /* power down */
+++++ + at91_set_gpio_value(AT91_PIN_PC1, 1); /* power down */
}
/* Driver datas */
static struct atmel_lcdfb_info __initdata ek_lcdc_data = {
+++++ + .lcdcon_is_backlight = true,
.default_bpp = 16,
.default_dmacon = ATMEL_LCDC_DMAEN,
.default_lcdcon2 = AT91SAM9RL_DEFAULT_LCDCON2,
.default_monspecs = &at91fb_default_monspecs,
.atmel_lcdfb_power_control = at91_lcdc_power_control,
.guard_time = 1,
+++++ + .lcd_wiring_mode = ATMEL_LCDC_WIRING_RGB,
};
#else
#endif
+ +++++/*
+ +++++ * LEDs
+ +++++ */
+ +++++static struct gpio_led ek_leds[] = {
+ +++++ { /* "bottom" led, green, userled1 to be defined */
+ +++++ .name = "ds1",
+ +++++ .gpio = AT91_PIN_PD15,
+ +++++ .active_low = 1,
+ +++++ .default_trigger = "none",
+ +++++ },
+ +++++ { /* "bottom" led, green, userled2 to be defined */
+ +++++ .name = "ds2",
+ +++++ .gpio = AT91_PIN_PD16,
+ +++++ .active_low = 1,
+ +++++ .default_trigger = "none",
+ +++++ },
+ +++++ { /* "power" led, yellow */
+ +++++ .name = "ds3",
+ +++++ .gpio = AT91_PIN_PD14,
+ +++++ .default_trigger = "heartbeat",
+ +++++ }
+ +++++};
+ +++++
+ +++++
+ +++++/*
+ +++++ * GPIO Buttons
+ +++++ */
+ +++++#if defined(CONFIG_KEYBOARD_GPIO) || defined(CONFIG_KEYBOARD_GPIO_MODULE)
+ +++++static struct gpio_keys_button ek_buttons[] = {
+ +++++ {
+ +++++ .gpio = AT91_PIN_PB0,
+ +++++ .code = BTN_2,
+ +++++ .desc = "Right Click",
+ +++++ .active_low = 1,
+ +++++ .wakeup = 1,
+ +++++ },
+ +++++ {
+ +++++ .gpio = AT91_PIN_PB1,
+ +++++ .code = BTN_1,
+ +++++ .desc = "Left Click",
+ +++++ .active_low = 1,
+ +++++ .wakeup = 1,
+ +++++ }
+ +++++};
+ +++++
+ +++++static struct gpio_keys_platform_data ek_button_data = {
+ +++++ .buttons = ek_buttons,
+ +++++ .nbuttons = ARRAY_SIZE(ek_buttons),
+ +++++};
+ +++++
+ +++++static struct platform_device ek_button_device = {
+ +++++ .name = "gpio-keys",
+ +++++ .id = -1,
+ +++++ .num_resources = 0,
+ +++++ .dev = {
+ +++++ .platform_data = &ek_button_data,
+ +++++ }
+ +++++};
+ +++++
+ +++++static void __init ek_add_device_buttons(void)
+ +++++{
+ +++++ at91_set_gpio_input(AT91_PIN_PB1, 1); /* btn1 */
+ +++++ at91_set_deglitch(AT91_PIN_PB1, 1);
+ +++++ at91_set_gpio_input(AT91_PIN_PB0, 1); /* btn2 */
+ +++++ at91_set_deglitch(AT91_PIN_PB0, 1);
+ +++++
+ +++++ platform_device_register(&ek_button_device);
+ +++++}
+ +++++#else
+ +++++static void __init ek_add_device_buttons(void) {}
+ +++++#endif
+ +++++
+ +++++
static void __init ek_board_init(void)
{
/* Serial */
at91_add_device_lcdc(&ek_lcdc_data);
/* Touch Screen Controller */
at91_add_device_tsadcc();
+ +++++ /* LEDs */
+ +++++ at91_gpio_leds(ek_leds, ARRAY_SIZE(ek_leds));
+ +++++ /* Push Buttons */
+ +++++ ek_add_device_buttons();
}
MACHINE_START(AT91SAM9RLEK, "Atmel AT91SAM9RL-EK")
int amba_device_register(struct amba_device *dev, struct resource *parent)
{
u32 pid, cid;
++++++ u32 size;
void __iomem *tmp;
int i, ret;
+++++ + device_initialize(&dev->dev);
+++++ +
+++++ + /*
+++++ + * Copy from device_add
+++++ + */
+++++ + if (dev->dev.init_name) {
+++++ + dev_set_name(&dev->dev, "%s", dev->dev.init_name);
+++++ + dev->dev.init_name = NULL;
+++++ + }
+++++ +
dev->dev.release = amba_device_release;
dev->dev.bus = &amba_bustype;
dev->dev.dma_mask = &dev->dma_mask;
if (ret)
goto err_out;
------ tmp = ioremap(dev->res.start, SZ_4K);
++++++ /*
++++++ * Dynamically calculate the size of the resource
++++++ * and use this for iomap
++++++ */
++++++ size = resource_size(&dev->res);
++++++ tmp = ioremap(dev->res.start, size);
if (!tmp) {
ret = -ENOMEM;
goto err_release;
}
++++++ /*
++++++ * Read pid and cid based on size of resource
++++++ * they are located at end of region
++++++ */
for (pid = 0, i = 0; i < 4; i++)
------ pid |= (readl(tmp + 0xfe0 + 4 * i) & 255) << (i * 8);
++++++ pid |= (readl(tmp + size - 0x20 + 4 * i) & 255) << (i * 8);
for (cid = 0, i = 0; i < 4; i++)
------ cid |= (readl(tmp + 0xff0 + 4 * i) & 255) << (i * 8);
++++++ cid |= (readl(tmp + size - 0x10 + 4 * i) & 255) << (i * 8);
iounmap(tmp);
goto err_release;
}
----- - ret = device_register(&dev->dev);
+++++ + ret = device_add(&dev->dev);
if (ret)
goto err_release;
int amba_request_regions(struct amba_device *dev, const char *name)
{
int ret = 0;
++++++ u32 size;
if (!name)
name = dev->dev.driver->name;
------ if (!request_mem_region(dev->res.start, SZ_4K, name))
++++++ size = resource_size(&dev->res);
++++++
++++++ if (!request_mem_region(dev->res.start, size, name))
ret = -EBUSY;
return ret;
*/
void amba_release_regions(struct amba_device *dev)
{
------ release_mem_region(dev->res.start, SZ_4K);
++++++ u32 size;
++++++
++++++ size = resource_size(&dev->res);
++++++ release_mem_region(dev->res.start, size);
}
EXPORT_SYMBOL(amba_driver_register);
select FB_CFB_FILLRECT
select FB_CFB_COPYAREA
select FB_CFB_IMAGEBLIT
+++++ + select STI_CONSOLE
+++++ + select VT
default y
---help---
STI refers to the HP "Standard Text Interface" which is a set of
config FB_ATMEL
tristate "AT91/AT32 LCD Controller support"
- ----- depends on FB && (ARCH_AT91SAM9261 || ARCH_AT91SAM9263 || ARCH_AT91SAM9RL || ARCH_AT91CAP9 || AVR32)
+ +++++ depends on FB && (ARCH_AT91SAM9261 || ARCH_AT91SAM9G10 || ARCH_AT91SAM9263 || ARCH_AT91SAM9RL || ARCH_AT91SAM9G45 || ARCH_AT91CAP9 || AVR32)
select FB_CFB_FILLRECT
select FB_CFB_COPYAREA
select FB_CFB_IMAGEBLIT
config FB_ATMEL_STN
bool "Use a STN display with AT91/AT32 LCD Controller"
- ----- depends on FB_ATMEL && MACH_AT91SAM9261EK
+ +++++ depends on FB_ATMEL && (MACH_AT91SAM9261EK || MACH_AT91SAM9G10EK)
default n
help
Say Y if you want to connect a STN LCD display to the AT91/AT32 LCD
{
unsigned long value;
- ----- if (!(cpu_is_at91sam9261() || cpu_is_at32ap7000()))
+ +++++ if (!(cpu_is_at91sam9261() || cpu_is_at91sam9g10()
+ +++++ || cpu_is_at32ap7000()))
return xres;
value = xres;
/**
* atmel_lcdfb_alloc_video_memory - Allocate framebuffer memory
* @sinfo: the frame buffer to allocate memory for
+++++ + *
+++++ + * This function is called only from the atmel_lcdfb_probe()
+++++ + * so no locking by fb_info->mm_lock around smem_len setting is needed.
*/
static int atmel_lcdfb_alloc_video_memory(struct atmel_lcdfb_info *sinfo)
{
info->fix = atmel_lcdfb_fix;
/* Enable LCDC Clocks */
- ----- if (cpu_is_at91sam9261() || cpu_is_at32ap7000()) {
+ +++++ if (cpu_is_at91sam9261() || cpu_is_at91sam9g10()
+ +++++ || cpu_is_at32ap7000()) {
sinfo->bus_clk = clk_get(dev, "hck1");
if (IS_ERR(sinfo->bus_clk)) {
ret = PTR_ERR(sinfo->bus_clk);