aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/mfd/timberdale.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/mfd/timberdale.c')
-rw-r--r--drivers/mfd/timberdale.c61
1 files changed, 58 insertions, 3 deletions
diff --git a/drivers/mfd/timberdale.c b/drivers/mfd/timberdale.c
index 727f62c15a60..6ad8a7f8d390 100644
--- a/drivers/mfd/timberdale.c
+++ b/drivers/mfd/timberdale.c
@@ -40,6 +40,7 @@
40#include <linux/spi/mc33880.h> 40#include <linux/spi/mc33880.h>
41 41
42#include <media/timb_radio.h> 42#include <media/timb_radio.h>
43#include <media/timb_video.h>
43 44
44#include <linux/timb_dma.h> 45#include <linux/timb_dma.h>
45 46
@@ -246,7 +247,23 @@ static const __devinitconst struct resource timberdale_uartlite_resources[] = {
246 }, 247 },
247}; 248};
248 249
249static const __devinitconst struct resource timberdale_radio_resources[] = { 250static __devinitdata struct i2c_board_info timberdale_adv7180_i2c_board_info = {
251 /* Requires jumper JP9 to be off */
252 I2C_BOARD_INFO("adv7180", 0x42 >> 1),
253 .irq = IRQ_TIMBERDALE_ADV7180
254};
255
256static __devinitdata struct timb_video_platform_data
257 timberdale_video_platform_data = {
258 .dma_channel = DMA_VIDEO_RX,
259 .i2c_adapter = 0,
260 .encoder = {
261 .info = &timberdale_adv7180_i2c_board_info
262 }
263};
264
265static const __devinitconst struct resource
266timberdale_radio_resources[] = {
250 { 267 {
251 .start = RDSOFFSET, 268 .start = RDSOFFSET,
252 .end = RDSEND, 269 .end = RDSEND,
@@ -271,15 +288,25 @@ static __devinitdata struct timb_radio_platform_data
271 timberdale_radio_platform_data = { 288 timberdale_radio_platform_data = {
272 .i2c_adapter = 0, 289 .i2c_adapter = 0,
273 .tuner = { 290 .tuner = {
274 .module_name = "tef6862",
275 .info = &timberdale_tef6868_i2c_board_info 291 .info = &timberdale_tef6868_i2c_board_info
276 }, 292 },
277 .dsp = { 293 .dsp = {
278 .module_name = "saa7706h",
279 .info = &timberdale_saa7706_i2c_board_info 294 .info = &timberdale_saa7706_i2c_board_info
280 } 295 }
281}; 296};
282 297
298static const __devinitconst struct resource timberdale_video_resources[] = {
299 {
300 .start = LOGIWOFFSET,
301 .end = LOGIWEND,
302 .flags = IORESOURCE_MEM,
303 },
304 /*
305 note that the "frame buffer" is located in DMA area
306 starting at 0x1200000
307 */
308};
309
283static __devinitdata struct timb_dma_platform_data timb_dma_platform_data = { 310static __devinitdata struct timb_dma_platform_data timb_dma_platform_data = {
284 .nr_channels = 10, 311 .nr_channels = 10,
285 .channels = { 312 .channels = {
@@ -380,6 +407,13 @@ static __devinitdata struct mfd_cell timberdale_cells_bar0_cfg0[] = {
380 .data_size = sizeof(timberdale_gpio_platform_data), 407 .data_size = sizeof(timberdale_gpio_platform_data),
381 }, 408 },
382 { 409 {
410 .name = "timb-video",
411 .num_resources = ARRAY_SIZE(timberdale_video_resources),
412 .resources = timberdale_video_resources,
413 .platform_data = &timberdale_video_platform_data,
414 .data_size = sizeof(timberdale_video_platform_data),
415 },
416 {
383 .name = "timb-radio", 417 .name = "timb-radio",
384 .num_resources = ARRAY_SIZE(timberdale_radio_resources), 418 .num_resources = ARRAY_SIZE(timberdale_radio_resources),
385 .resources = timberdale_radio_resources, 419 .resources = timberdale_radio_resources,
@@ -440,6 +474,13 @@ static __devinitdata struct mfd_cell timberdale_cells_bar0_cfg1[] = {
440 .resources = timberdale_mlogicore_resources, 474 .resources = timberdale_mlogicore_resources,
441 }, 475 },
442 { 476 {
477 .name = "timb-video",
478 .num_resources = ARRAY_SIZE(timberdale_video_resources),
479 .resources = timberdale_video_resources,
480 .platform_data = &timberdale_video_platform_data,
481 .data_size = sizeof(timberdale_video_platform_data),
482 },
483 {
443 .name = "timb-radio", 484 .name = "timb-radio",
444 .num_resources = ARRAY_SIZE(timberdale_radio_resources), 485 .num_resources = ARRAY_SIZE(timberdale_radio_resources),
445 .resources = timberdale_radio_resources, 486 .resources = timberdale_radio_resources,
@@ -490,6 +531,13 @@ static __devinitdata struct mfd_cell timberdale_cells_bar0_cfg2[] = {
490 .data_size = sizeof(timberdale_gpio_platform_data), 531 .data_size = sizeof(timberdale_gpio_platform_data),
491 }, 532 },
492 { 533 {
534 .name = "timb-video",
535 .num_resources = ARRAY_SIZE(timberdale_video_resources),
536 .resources = timberdale_video_resources,
537 .platform_data = &timberdale_video_platform_data,
538 .data_size = sizeof(timberdale_video_platform_data),
539 },
540 {
493 .name = "timb-radio", 541 .name = "timb-radio",
494 .num_resources = ARRAY_SIZE(timberdale_radio_resources), 542 .num_resources = ARRAY_SIZE(timberdale_radio_resources),
495 .resources = timberdale_radio_resources, 543 .resources = timberdale_radio_resources,
@@ -533,6 +581,13 @@ static __devinitdata struct mfd_cell timberdale_cells_bar0_cfg3[] = {
533 .data_size = sizeof(timberdale_gpio_platform_data), 581 .data_size = sizeof(timberdale_gpio_platform_data),
534 }, 582 },
535 { 583 {
584 .name = "timb-video",
585 .num_resources = ARRAY_SIZE(timberdale_video_resources),
586 .resources = timberdale_video_resources,
587 .platform_data = &timberdale_video_platform_data,
588 .data_size = sizeof(timberdale_video_platform_data),
589 },
590 {
536 .name = "timb-radio", 591 .name = "timb-radio",
537 .num_resources = ARRAY_SIZE(timberdale_radio_resources), 592 .num_resources = ARRAY_SIZE(timberdale_radio_resources),
538 .resources = timberdale_radio_resources, 593 .resources = timberdale_radio_resources,