This patch defines the timblogiw, timbi2s and ks8842 drivers properly in the timberdale driver.
Signed-off-by: Richard Röjfors <[email protected]> --- diff -Naur linux-2.6.35.org/drivers/mfd/timberdale.c linux-2.6.35/drivers/mfd/timberdale.c --- linux-2.6.35.org/drivers/mfd/timberdale.c 2010-08-01 18:11:14.000000000 -0400 +++ linux-2.6.35/drivers/mfd/timberdale.c 2010-11-16 09:09:10.000000000 -0500 @@ -40,9 +40,14 @@ #include <linux/spi/mc33880.h> #include <media/timb_radio.h> +#include <media/timb_video.h> + +#include <sound/timbi2s.h> #include <linux/timb_dma.h> +#include <linux/ks8842.h> + #include "timberdale.h" #define DRIVER_NAME "timberdale" @@ -161,6 +166,12 @@ }, }; +static __devinitdata struct ks8842_platform_data + timberdale_ks8842_platform_data = { + .rx_dma_channel = DMA_ETH_RX, + .tx_dma_channel = DMA_ETH_TX +}; + static const __devinitconst struct resource timberdale_eth_resources[] = { { .start = ETHOFFSET, @@ -238,7 +249,58 @@ }, }; -static const __devinitconst struct resource timberdale_radio_resources[] = { +static __devinitdata struct timbi2s_bus_data timbi2s_bus_data[] = { + { + .rx = 0, + .sample_rate = 8000, + }, + { + .rx = 1, + .sample_rate = 8000, + }, + { + .rx = 1, + .sample_rate = 44100, + }, +}; + +static __devinitdata struct timbi2s_platform_data timbi2s_platform_data = { + .busses = timbi2s_bus_data, + .num_busses = ARRAY_SIZE(timbi2s_bus_data), + .main_clk = 62500000, +}; + +static const __devinitconst struct resource timberdale_i2s_resources[] = { + { + .start = I2SOFFSET, + .end = I2SEND, + .flags = IORESOURCE_MEM, + }, + { + .start = IRQ_TIMBERDALE_I2S, + .end = IRQ_TIMBERDALE_I2S, + .flags = IORESOURCE_IRQ, + }, +}; + +static __devinitdata struct i2c_board_info timberdale_adv7180_i2c_board_info = { + /* Requires jumper JP9 to be off */ + I2C_BOARD_INFO("adv7180", 0x42 >> 1), + .irq = IRQ_TIMBERDALE_ADV7180 +}; + +static __devinitdata struct timb_video_platform_data + timberdale_video_platform_data = { + .dma_channel = DMA_VIDEO_RX, + .i2c_adapter = 0, + .encoder = { + .module_name = "adv7180", + .info = &timberdale_adv7180_i2c_board_info + } +}; + +static const __devinitconst struct resource +timberdale_radio_resources[] = { { .start = RDSOFFSET, .end = RDSEND, @@ -272,6 +334,18 @@ } }; +static const __devinitconst struct resource timberdale_video_resources[] = { + { + .start = LOGIWOFFSET, + .end = LOGIWEND, + .flags = IORESOURCE_MEM, + }, + /* + note that the "frame buffer" is located in DMA area + starting at 0x1200000 + */ +}; + static __devinitdata struct timb_dma_platform_data timb_dma_platform_data = { .nr_channels = 10, .channels = { @@ -372,6 +446,20 @@ .data_size = sizeof(timberdale_gpio_platform_data), }, { + .name = "timb-i2s", + .num_resources = ARRAY_SIZE(timberdale_i2s_resources), + .resources = timberdale_i2s_resources, + .platform_data = &timbi2s_platform_data, + .data_size = sizeof(timbi2s_platform_data), + }, + { + .name = "timb-video", + .num_resources = ARRAY_SIZE(timberdale_video_resources), + .resources = timberdale_video_resources, + .platform_data = &timberdale_video_platform_data, + .data_size = sizeof(timberdale_video_platform_data), + }, + { .name = "timb-radio", .num_resources = ARRAY_SIZE(timberdale_radio_resources), .resources = timberdale_radio_resources, @@ -389,6 +477,8 @@ .name = "ks8842", .num_resources = ARRAY_SIZE(timberdale_eth_resources), .resources = timberdale_eth_resources, + .platform_data = &timberdale_ks8842_platform_data, + .data_size = sizeof(timberdale_ks8842_platform_data) }, }; @@ -430,6 +520,13 @@ .resources = timberdale_mlogicore_resources, }, { + .name = "timb-video", + .num_resources = ARRAY_SIZE(timberdale_video_resources), + .resources = timberdale_video_resources, + .platform_data = &timberdale_video_platform_data, + .data_size = sizeof(timberdale_video_platform_data), + }, + { .name = "timb-radio", .num_resources = ARRAY_SIZE(timberdale_radio_resources), .resources = timberdale_radio_resources, @@ -447,6 +544,8 @@ .name = "ks8842", .num_resources = ARRAY_SIZE(timberdale_eth_resources), .resources = timberdale_eth_resources, + .platform_data = &timberdale_ks8842_platform_data, + .data_size = sizeof(timberdale_ks8842_platform_data) }, }; @@ -478,6 +577,13 @@ .data_size = sizeof(timberdale_gpio_platform_data), }, { + .name = "timb-video", + .num_resources = ARRAY_SIZE(timberdale_video_resources), + .resources = timberdale_video_resources, + .platform_data = &timberdale_video_platform_data, + .data_size = sizeof(timberdale_video_platform_data), + }, + { .name = "timb-radio", .num_resources = ARRAY_SIZE(timberdale_radio_resources), .resources = timberdale_radio_resources, @@ -521,6 +627,20 @@ .data_size = sizeof(timberdale_gpio_platform_data), }, { + .name = "timb-i2s", + .num_resources = ARRAY_SIZE(timberdale_i2s_resources), + .resources = timberdale_i2s_resources, + .platform_data = &timbi2s_platform_data, + .data_size = sizeof(timbi2s_platform_data), + }, + { + .name = "timb-video", + .num_resources = ARRAY_SIZE(timberdale_video_resources), + .resources = timberdale_video_resources, + .platform_data = &timberdale_video_platform_data, + .data_size = sizeof(timberdale_video_platform_data), + }, + { .name = "timb-radio", .num_resources = ARRAY_SIZE(timberdale_radio_resources), .resources = timberdale_radio_resources, @@ -538,6 +658,8 @@ .name = "ks8842", .num_resources = ARRAY_SIZE(timberdale_eth_resources), .resources = timberdale_eth_resources, + .platform_data = &timberdale_ks8842_platform_data, + .data_size = sizeof(timberdale_ks8842_platform_data) }, }; diff -Naur linux-2.6.35.org/drivers/mfd/timberdale.h linux-2.6.35/drivers/mfd/timberdale.h --- linux-2.6.35.org/drivers/mfd/timberdale.h 2010-08-01 18:11:14.000000000 -0400 +++ linux-2.6.35/drivers/mfd/timberdale.h 2010-11-16 09:06:03.000000000 -0500 @@ -23,7 +23,7 @@ #ifndef MFD_TIMBERDALE_H #define MFD_TIMBERDALE_H -#define DRV_VERSION "0.2" +#define DRV_VERSION "1.0" /* This driver only support versions >= 3.8 and < 4.0 */ #define TIMB_SUPPORTED_MAJOR 3 _______________________________________________ MeeGo-kernel mailing list [email protected] http://lists.meego.com/listinfo/meego-kernel
