Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 071193ff authored by Richard Röjfors's avatar Richard Röjfors Committed by Mauro Carvalho Chehab
Browse files

V4L/DVB: mfd: Add timb-radio to the timberdale MFD



This patch addes timb-radio to all configurations of the timberdale MFD.

Connected to the FPGA is a TEF6862 tuner and a SAA7706H DSP, the I2C
board info of these devices is passed via the timb-radio platform data.

Signed-off-by: default avatarRichard Röjfors <richard.rojfors@pelagicore.com>
Cc: sameo@linux.intel.com
Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@redhat.com>
parent 1f39b583
Loading
Loading
Loading
Loading
+64 −0
Original line number Diff line number Diff line
@@ -37,6 +37,8 @@
#include <linux/spi/max7301.h>
#include <linux/spi/mc33880.h>

#include <media/timb_radio.h>

#include "timberdale.h"

#define DRIVER_NAME "timberdale"
@@ -213,6 +215,40 @@ const static __devinitconst struct resource timberdale_uartlite_resources[] = {
	},
};

const static __devinitconst struct resource timberdale_radio_resources[] = {
	{
		.start	= RDSOFFSET,
		.end	= RDSEND,
		.flags	= IORESOURCE_MEM,
	},
	{
		.start	= IRQ_TIMBERDALE_RDS,
		.end	= IRQ_TIMBERDALE_RDS,
		.flags	= IORESOURCE_IRQ,
	},
};

static __devinitdata struct i2c_board_info timberdale_tef6868_i2c_board_info = {
	I2C_BOARD_INFO("tef6862", 0x60)
};

static __devinitdata struct i2c_board_info timberdale_saa7706_i2c_board_info = {
	I2C_BOARD_INFO("saa7706h", 0x1C)
};

static __devinitdata struct timb_radio_platform_data
	timberdale_radio_platform_data = {
	.i2c_adapter = 0,
	.tuner = {
		.module_name = "tef6862",
		.info = &timberdale_tef6868_i2c_board_info
	},
	.dsp = {
		.module_name = "saa7706h",
		.info = &timberdale_saa7706_i2c_board_info
	}
};

const static __devinitconst struct resource timberdale_dma_resources[] = {
	{
		.start	= DMAOFFSET,
@@ -239,6 +275,13 @@ static __devinitdata struct mfd_cell timberdale_cells_bar0_cfg0[] = {
		.platform_data = &timberdale_gpio_platform_data,
		.data_size = sizeof(timberdale_gpio_platform_data),
	},
	{
		.name = "timb-radio",
		.num_resources = ARRAY_SIZE(timberdale_radio_resources),
		.resources = timberdale_radio_resources,
		.platform_data = &timberdale_radio_platform_data,
		.data_size = sizeof(timberdale_radio_platform_data),
	},
	{
		.name = "xilinx_spi",
		.num_resources = ARRAY_SIZE(timberdale_spi_resources),
@@ -281,6 +324,13 @@ static __devinitdata struct mfd_cell timberdale_cells_bar0_cfg1[] = {
		.num_resources = ARRAY_SIZE(timberdale_mlogicore_resources),
		.resources = timberdale_mlogicore_resources,
	},
	{
		.name = "timb-radio",
		.num_resources = ARRAY_SIZE(timberdale_radio_resources),
		.resources = timberdale_radio_resources,
		.platform_data = &timberdale_radio_platform_data,
		.data_size = sizeof(timberdale_radio_platform_data),
	},
	{
		.name = "xilinx_spi",
		.num_resources = ARRAY_SIZE(timberdale_spi_resources),
@@ -313,6 +363,13 @@ static __devinitdata struct mfd_cell timberdale_cells_bar0_cfg2[] = {
		.platform_data = &timberdale_gpio_platform_data,
		.data_size = sizeof(timberdale_gpio_platform_data),
	},
	{
		.name = "timb-radio",
		.num_resources = ARRAY_SIZE(timberdale_radio_resources),
		.resources = timberdale_radio_resources,
		.platform_data = &timberdale_radio_platform_data,
		.data_size = sizeof(timberdale_radio_platform_data),
	},
	{
		.name = "xilinx_spi",
		.num_resources = ARRAY_SIZE(timberdale_spi_resources),
@@ -347,6 +404,13 @@ static __devinitdata struct mfd_cell timberdale_cells_bar0_cfg3[] = {
		.platform_data = &timberdale_gpio_platform_data,
		.data_size = sizeof(timberdale_gpio_platform_data),
	},
	{
		.name = "timb-radio",
		.num_resources = ARRAY_SIZE(timberdale_radio_resources),
		.resources = timberdale_radio_resources,
		.platform_data = &timberdale_radio_platform_data,
		.data_size = sizeof(timberdale_radio_platform_data),
	},
	{
		.name = "xilinx_spi",
		.num_resources = ARRAY_SIZE(timberdale_spi_resources),