24 #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
28 #include <linux/i2c.h>
30 #include <linux/input.h>
42 #include <asm/memblock.h>
43 #include <mach/common.h>
44 #include <mach/hardware.h>
49 #define TVP5150_RSTN (GPIO_PORTC + 18)
50 #define TVP5150_PWDN (GPIO_PORTC + 19)
51 #define OTG_PHY_CS_GPIO (GPIO_PORTF + 17)
52 #define SDHC1_IRQ_GPIO IMX_GPIO_NR(2, 25)
54 #define MOTHERBOARD_BIT2 (GPIO_PORTD + 31)
55 #define MOTHERBOARD_BIT1 (GPIO_PORTD + 30)
56 #define MOTHERBOARD_BIT0 (GPIO_PORTD + 29)
58 #define EXPBOARD_BIT2 (GPIO_PORTD + 25)
59 #define EXPBOARD_BIT1 (GPIO_PORTD + 27)
60 #define EXPBOARD_BIT0 (GPIO_PORTD + 28)
62 #define AMP_GAIN_0 (GPIO_PORTF + 9)
63 #define AMP_GAIN_1 (GPIO_PORTF + 8)
64 #define AMP_MUTE_SDL (GPIO_PORTE + 5)
65 #define AMP_MUTE_SDR (GPIO_PORTF + 7)
67 static const int visstrim_m10_pins[]
__initconst = {
155 static struct gpio visstrim_m10_version_gpios[] = {
168 .label =
"tvp5150_rstn",
173 .label =
"tvp5150_pwdn",
178 .label =
"usbotg_cs",
183 .label =
"amp-gain-0",
188 .label =
"amp-gain-1",
193 .label =
"amp-mute-sdl",
198 .label =
"amp-mute-sdr",
203 static int visstrim_camera_power(
struct device *
dev,
int on)
210 static int visstrim_camera_reset(
struct device *
dev)
225 .board_info = &visstrim_i2c_camera,
227 .power = visstrim_camera_power,
228 .reset = visstrim_camera_reset,
238 #define MX2_CAMERA_BUF_SIZE SZ_8M
240 static void __init visstrim_camera_init(
void)
257 mx2_camera_base, mx2_camera_base,
264 static void __init visstrim_reserve(
void)
277 .
desc =
"Default config",
300 visstrim_gpio_keys_platform_data __initconst = {
301 .buttons = visstrim_gpio_keys,
306 static const struct gpio_led visstrim_m10_leds[] __initconst = {
308 .
name =
"visstrim:ld0",
309 .default_trigger =
"nand-disk",
313 .name =
"visstrim:ld1",
314 .default_trigger =
"nand-disk",
318 .name =
"visstrim:ld2",
319 .default_trigger =
"nand-disk",
323 .name =
"visstrim:ld3",
324 .default_trigger =
"nand-disk",
330 .leds = visstrim_m10_leds,
335 static int visstrim_m10_sdhc1_init(
struct device *
dev,
345 static void visstrim_m10_sdhc1_exit(
struct device *dev,
void *data)
351 .init = visstrim_m10_sdhc1_init,
352 .exit = visstrim_m10_sdhc1_exit,
360 static struct resource visstrim_m10_flash_resource = {
362 .end = 0xc0000000 +
SZ_64M - 1,
367 .name =
"physmap-flash",
370 .platform_data = &visstrim_m10_flash_data,
373 .resource = &visstrim_m10_flash_resource,
377 &visstrim_m10_nor_mtd_device,
409 .platform_data = &visstrim_m10_pca9555_pdata,
413 .platform_data = &visstrim_m10_aic32x4_pdata,
427 visstrim_m10_usbotg_pdata __initconst = {
428 .init = otg_phy_init,
439 static void __init visstrim_coda_init(
void)
456 .name =
"m2m-deinterlace",
460 static void __init visstrim_deinterlace_init(
void)
486 static void __init visstrim_m10_revision(
void)
495 pr_err(
"Failed to request version gpios");
514 static void __init visstrim_m10_board_init(
void)
519 visstrim_m10_revision();
522 ARRAY_SIZE(visstrim_m10_pins),
"VISSTRIM_M10");
524 pr_err(
"Failed to setup pins (%d)\n", ret);
529 pr_err(
"Failed to request gpios (%d)\n", ret);
544 imx_add_platform_device(
"mx27vis", 0,
NULL, 0, &snd_mx27vis_pdata,
545 sizeof(snd_mx27vis_pdata));
546 platform_device_register_resndata(
NULL,
"soc-camera-pdrv", 0,
NULL, 0,
547 &iclink_tvp5150,
sizeof(iclink_tvp5150));
549 visstrim_deinterlace_init();
550 visstrim_camera_init();
551 visstrim_coda_init();
554 static void __init visstrim_m10_timer_init(
void)
559 static struct sys_timer visstrim_m10_timer = {
560 .init = visstrim_m10_timer_init,
563 MACHINE_START(IMX27_VISSTRIM_M10,
"Vista Silicon Visstrim_M10")
564 .atag_offset = 0x100,
565 .reserve = visstrim_reserve,
570 .timer = &visstrim_m10_timer,
571 .init_machine = visstrim_m10_board_init,