Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 138173
b: refs/heads/master
c: d75b1dc
h: refs/heads/master
i:
  138171: 56afbbc
v: v3
  • Loading branch information
Sascha Hauer authored and Mauro Carvalho Chehab committed Mar 30, 2009
1 parent b75ba94 commit 818fb11
Show file tree
Hide file tree
Showing 2 changed files with 46 additions and 10 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: 28f59339f72d191e24e0f97f156a481dd5c3db65
refs/heads/master: d75b1dcc84a5c8bf3e660dd1ba3ae6cd5e6d0929
54 changes: 45 additions & 9 deletions trunk/arch/arm/mach-pxa/pcm990-baseboard.c
Original file line number Diff line number Diff line change
Expand Up @@ -380,14 +380,50 @@ static struct pca953x_platform_data pca9536_data = {
.gpio_base = NR_BUILTIN_GPIO + 1,
};

static struct soc_camera_link iclink[] = {
{
.bus_id = 0, /* Must match with the camera ID above */
.gpio = NR_BUILTIN_GPIO + 1,
}, {
.bus_id = 0, /* Must match with the camera ID above */
.gpio = -ENXIO,
static int gpio_bus_switch;

static int pcm990_camera_set_bus_param(struct soc_camera_link *link,
unsigned long flags)
{
if (gpio_bus_switch <= 0) {
if (flags == SOCAM_DATAWIDTH_10)
return 0;
else
return -EINVAL;
}

if (flags & SOCAM_DATAWIDTH_8)
gpio_set_value(gpio_bus_switch, 1);
else
gpio_set_value(gpio_bus_switch, 0);

return 0;
}

static unsigned long pcm990_camera_query_bus_param(struct soc_camera_link *link)
{
int ret;

if (!gpio_bus_switch) {
ret = gpio_request(NR_BUILTIN_GPIO + 1, "camera");
if (!ret) {
gpio_bus_switch = NR_BUILTIN_GPIO + 1;
gpio_direction_output(gpio_bus_switch, 0);
} else
gpio_bus_switch = -EINVAL;
}

if (gpio_bus_switch > 0)
return SOCAM_DATAWIDTH_8 | SOCAM_DATAWIDTH_10;
else
return SOCAM_DATAWIDTH_10;
}

static struct soc_camera_link iclink = {
.bus_id = 0, /* Must match with the camera ID above */
.gpio = NR_BUILTIN_GPIO + 1,
.query_bus_param = pcm990_camera_query_bus_param,
.set_bus_param = pcm990_camera_set_bus_param,
};

/* Board I2C devices. */
Expand All @@ -398,10 +434,10 @@ static struct i2c_board_info __initdata pcm990_i2c_devices[] = {
.platform_data = &pca9536_data,
}, {
I2C_BOARD_INFO("mt9v022", 0x48),
.platform_data = &iclink[0], /* With extender */
.platform_data = &iclink, /* With extender */
}, {
I2C_BOARD_INFO("mt9m001", 0x5d),
.platform_data = &iclink[0], /* With extender */
.platform_data = &iclink, /* With extender */
},
};
#endif /* CONFIG_VIDEO_PXA27x ||CONFIG_VIDEO_PXA27x_MODULE */
Expand Down

0 comments on commit 818fb11

Please sign in to comment.