Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 208642
b: refs/heads/master
c: 02a453e
h: refs/heads/master
v: v3
  • Loading branch information
Marek Vasut authored and Eric Miao committed Aug 5, 2010
1 parent 5c54957 commit ba22a53
Show file tree
Hide file tree
Showing 3 changed files with 93 additions and 4 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: a9c0629cdefd9c26746ece510fcc88357869685e
refs/heads/master: 02a453e4a5a7ca8c8801140f412d327686112e4e
84 changes: 81 additions & 3 deletions trunk/arch/arm/mach-pxa/balloon3.c
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@
#include <linux/mtd/mtd.h>
#include <linux/mtd/partitions.h>
#include <linux/types.h>
#include <linux/i2c/pcf857x.h>

#include <asm/setup.h>
#include <asm/mach-types.h>
Expand Down Expand Up @@ -375,15 +376,65 @@ static struct gpio_led_platform_data balloon3_gpio_led_info = {

static struct platform_device balloon3_leds = {
.name = "leds-gpio",
.id = -1,
.id = 0,
.dev = {
.platform_data = &balloon3_gpio_led_info,
}
};

struct gpio_led balloon3_pcf_gpio_leds[] = {
{
.name = "balloon3:green:led0",
.gpio = BALLOON3_PCF_GPIO_LED0,
.active_low = 1,
}, {
.name = "balloon3:green:led1",
.gpio = BALLOON3_PCF_GPIO_LED1,
.active_low = 1,
}, {
.name = "balloon3:orange:led2",
.gpio = BALLOON3_PCF_GPIO_LED2,
.active_low = 1,
}, {
.name = "balloon3:orange:led3",
.gpio = BALLOON3_PCF_GPIO_LED3,
.active_low = 1,
}, {
.name = "balloon3:orange:led4",
.gpio = BALLOON3_PCF_GPIO_LED4,
.active_low = 1,
}, {
.name = "balloon3:orange:led5",
.gpio = BALLOON3_PCF_GPIO_LED5,
.active_low = 1,
}, {
.name = "balloon3:red:led6",
.gpio = BALLOON3_PCF_GPIO_LED6,
.active_low = 1,
}, {
.name = "balloon3:red:led7",
.gpio = BALLOON3_PCF_GPIO_LED7,
.active_low = 1,
},
};

static struct gpio_led_platform_data balloon3_pcf_gpio_led_info = {
.leds = balloon3_pcf_gpio_leds,
.num_leds = ARRAY_SIZE(balloon3_pcf_gpio_leds),
};

static struct platform_device balloon3_pcf_leds = {
.name = "leds-gpio",
.id = 1,
.dev = {
.platform_data = &balloon3_pcf_gpio_led_info,
}
};

static void __init balloon3_leds_init(void)
{
platform_device_register(&balloon3_leds);
platform_device_register(&balloon3_pcf_leds);
}
#else
static inline void balloon3_leds_init(void) {}
Expand Down Expand Up @@ -450,6 +501,34 @@ static void __init balloon3_init_irq(void)
"enabled\n", __func__, BALLOON3_AUX_NIRQ);
}

/******************************************************************************
* GPIO expander
******************************************************************************/
#if defined(CONFIG_GPIO_PCF857X) || defined(CONFIG_GPIO_PCF857X_MODULE)
static struct pcf857x_platform_data balloon3_pcf857x_pdata = {
.gpio_base = BALLOON3_PCF_GPIO_BASE,
.n_latch = 0,
.setup = NULL,
.teardown = NULL,
.context = NULL,
};

static struct i2c_board_info __initdata balloon3_i2c_devs[] = {
{
I2C_BOARD_INFO("pcf8574a", 0x38),
.platform_data = &balloon3_pcf857x_pdata,
},
};

static void __init balloon3_i2c_init(void)
{
pxa_set_i2c_info(NULL);
i2c_register_board_info(0, ARRAY_AND_SIZE(balloon3_i2c_devs));
}
#else
static inline void balloon3_i2c_init(void) {}
#endif

/******************************************************************************
* Machine init
******************************************************************************/
Expand All @@ -463,8 +542,7 @@ static void __init balloon3_init(void)
pxa_set_btuart_info(NULL);
pxa_set_stuart_info(NULL);

pxa_set_i2c_info(NULL);

balloon3_i2c_init();
balloon3_irda_init();
balloon3_lcd_init();
balloon3_leds_init();
Expand Down
11 changes: 11 additions & 0 deletions trunk/arch/arm/mach-pxa/include/mach/balloon3.h
Original file line number Diff line number Diff line change
Expand Up @@ -69,6 +69,17 @@ enum balloon3_features {

#define BALLOON3_GPIO_S0_CD (105)

/* PCF8574A Leds */
#define BALLOON3_PCF_GPIO_BASE 160
#define BALLOON3_PCF_GPIO_LED0 (BALLOON3_PCF_GPIO_BASE + 0)
#define BALLOON3_PCF_GPIO_LED1 (BALLOON3_PCF_GPIO_BASE + 1)
#define BALLOON3_PCF_GPIO_LED2 (BALLOON3_PCF_GPIO_BASE + 2)
#define BALLOON3_PCF_GPIO_LED3 (BALLOON3_PCF_GPIO_BASE + 3)
#define BALLOON3_PCF_GPIO_LED4 (BALLOON3_PCF_GPIO_BASE + 4)
#define BALLOON3_PCF_GPIO_LED5 (BALLOON3_PCF_GPIO_BASE + 5)
#define BALLOON3_PCF_GPIO_LED6 (BALLOON3_PCF_GPIO_BASE + 6)
#define BALLOON3_PCF_GPIO_LED7 (BALLOON3_PCF_GPIO_BASE + 7)

/* FPGA Interrupt Mask/Acknowledge Register */
#define BALLOON3_INT_S0_IRQ (1 << 0) /* PCMCIA 0 IRQ */
#define BALLOON3_INT_S0_STSCHG (1 << 1) /* PCMCIA 0 status changed */
Expand Down

0 comments on commit ba22a53

Please sign in to comment.