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

Commit a3a3c466 authored by Arnd Bergmann's avatar Arnd Bergmann
Browse files

Merge branch 'davinci/cleanups' into next/cleanup

* davinci/cleanups:
  ARM: davinci: add back dummy header files
  ARM: davinci: dm644x: don't force vpfe registeration on all boards
  ARM: davinci: dm644x: fix inconsistent variable naming
  ARM: davinci: dm644x: improve readability using macro
  ARM: davinci: streamline sysmod access
  ARM: davinci: create new common platform header for davinci
  ARM: davinci: dm646x: move private definitions to C file
  ARM: davinci: dm365: move private definitions to C file
  ARM: davinci: dm644x: move private definitions to C file

Conflicts:
	arch/arm/mach-davinci/board-dm644x-evm.c
	arch/arm/mach-davinci/board-neuros-osd2.c
	arch/arm/mach-davinci/board-sffsdr.c
parents 96a3eab3 6ea96e11
Loading
Loading
Loading
Loading
+2 −1
Original line number Original line Diff line number Diff line
@@ -26,13 +26,14 @@
#include <asm/mach-types.h>
#include <asm/mach-types.h>
#include <asm/mach/arch.h>
#include <asm/mach/arch.h>


#include <mach/dm355.h>
#include <mach/i2c.h>
#include <mach/i2c.h>
#include <mach/serial.h>
#include <mach/serial.h>
#include <mach/nand.h>
#include <mach/nand.h>
#include <mach/mmc.h>
#include <mach/mmc.h>
#include <mach/usb.h>
#include <mach/usb.h>


#include "davinci.h"

/* NOTE:  this is geared for the standard config, with a socketed
/* NOTE:  this is geared for the standard config, with a socketed
 * 2 GByte Micron NAND (MT29F16G08FAA) using 128KB sectors.  If you
 * 2 GByte Micron NAND (MT29F16G08FAA) using 128KB sectors.  If you
 * swap chips, maybe with a different block size, partitioning may
 * swap chips, maybe with a different block size, partitioning may
+2 −1
Original line number Original line Diff line number Diff line
@@ -23,13 +23,14 @@
#include <asm/mach-types.h>
#include <asm/mach-types.h>
#include <asm/mach/arch.h>
#include <asm/mach/arch.h>


#include <mach/dm355.h>
#include <mach/i2c.h>
#include <mach/i2c.h>
#include <mach/serial.h>
#include <mach/serial.h>
#include <mach/nand.h>
#include <mach/nand.h>
#include <mach/mmc.h>
#include <mach/mmc.h>
#include <mach/usb.h>
#include <mach/usb.h>


#include "davinci.h"

/* NOTE:  this is geared for the standard config, with a socketed
/* NOTE:  this is geared for the standard config, with a socketed
 * 2 GByte Micron NAND (MT29F16G08FAA) using 128KB sectors.  If you
 * 2 GByte Micron NAND (MT29F16G08FAA) using 128KB sectors.  If you
 * swap chips, maybe with a different block size, partitioning may
 * swap chips, maybe with a different block size, partitioning may
+2 −1
Original line number Original line Diff line number Diff line
@@ -32,7 +32,6 @@
#include <asm/mach/arch.h>
#include <asm/mach/arch.h>


#include <mach/mux.h>
#include <mach/mux.h>
#include <mach/dm365.h>
#include <mach/common.h>
#include <mach/common.h>
#include <mach/i2c.h>
#include <mach/i2c.h>
#include <mach/serial.h>
#include <mach/serial.h>
@@ -42,6 +41,8 @@


#include <media/tvp514x.h>
#include <media/tvp514x.h>


#include "davinci.h"

static inline int have_imager(void)
static inline int have_imager(void)
{
{
	/* REVISIT when it's supported, trigger via Kconfig */
	/* REVISIT when it's supported, trigger via Kconfig */
+14 −14
Original line number Original line Diff line number Diff line
@@ -30,7 +30,6 @@
#include <asm/mach-types.h>
#include <asm/mach-types.h>
#include <asm/mach/arch.h>
#include <asm/mach/arch.h>


#include <mach/dm644x.h>
#include <mach/common.h>
#include <mach/common.h>
#include <mach/i2c.h>
#include <mach/i2c.h>
#include <mach/serial.h>
#include <mach/serial.h>
@@ -40,6 +39,8 @@
#include <mach/usb.h>
#include <mach/usb.h>
#include <mach/aemif.h>
#include <mach/aemif.h>


#include "davinci.h"

#define DM644X_EVM_PHY_ID		"davinci_mdio-0:01"
#define DM644X_EVM_PHY_ID		"davinci_mdio-0:01"
#define LXT971_PHY_ID	(0x001378e2)
#define LXT971_PHY_ID	(0x001378e2)
#define LXT971_PHY_MASK	(0xfffffff0)
#define LXT971_PHY_MASK	(0xfffffff0)
@@ -189,7 +190,7 @@ static struct platform_device davinci_fb_device = {
	.num_resources = 0,
	.num_resources = 0,
};
};


static struct tvp514x_platform_data tvp5146_pdata = {
static struct tvp514x_platform_data dm644xevm_tvp5146_pdata = {
	.clk_polarity = 0,
	.clk_polarity = 0,
	.hs_polarity = 1,
	.hs_polarity = 1,
	.vs_polarity = 1
	.vs_polarity = 1
@@ -197,7 +198,7 @@ static struct tvp514x_platform_data tvp5146_pdata = {


#define TVP514X_STD_ALL	(V4L2_STD_NTSC | V4L2_STD_PAL)
#define TVP514X_STD_ALL	(V4L2_STD_NTSC | V4L2_STD_PAL)
/* Inputs available at the TVP5146 */
/* Inputs available at the TVP5146 */
static struct v4l2_input tvp5146_inputs[] = {
static struct v4l2_input dm644xevm_tvp5146_inputs[] = {
	{
	{
		.index = 0,
		.index = 0,
		.name = "Composite",
		.name = "Composite",
@@ -217,7 +218,7 @@ static struct v4l2_input tvp5146_inputs[] = {
 * ouput that goes to vpfe. There is a one to one correspondence
 * ouput that goes to vpfe. There is a one to one correspondence
 * with tvp5146_inputs
 * with tvp5146_inputs
 */
 */
static struct vpfe_route tvp5146_routes[] = {
static struct vpfe_route dm644xevm_tvp5146_routes[] = {
	{
	{
		.input = INPUT_CVBS_VI2B,
		.input = INPUT_CVBS_VI2B,
		.output = OUTPUT_10BIT_422_EMBEDDED_SYNC,
		.output = OUTPUT_10BIT_422_EMBEDDED_SYNC,
@@ -228,13 +229,13 @@ static struct vpfe_route tvp5146_routes[] = {
	},
	},
};
};


static struct vpfe_subdev_info vpfe_sub_devs[] = {
static struct vpfe_subdev_info dm644xevm_vpfe_sub_devs[] = {
	{
	{
		.name = "tvp5146",
		.name = "tvp5146",
		.grp_id = 0,
		.grp_id = 0,
		.num_inputs = ARRAY_SIZE(tvp5146_inputs),
		.num_inputs = ARRAY_SIZE(dm644xevm_tvp5146_inputs),
		.inputs = tvp5146_inputs,
		.inputs = dm644xevm_tvp5146_inputs,
		.routes = tvp5146_routes,
		.routes = dm644xevm_tvp5146_routes,
		.can_route = 1,
		.can_route = 1,
		.ccdc_if_params = {
		.ccdc_if_params = {
			.if_type = VPFE_BT656,
			.if_type = VPFE_BT656,
@@ -243,15 +244,15 @@ static struct vpfe_subdev_info vpfe_sub_devs[] = {
		},
		},
		.board_info = {
		.board_info = {
			I2C_BOARD_INFO("tvp5146", 0x5d),
			I2C_BOARD_INFO("tvp5146", 0x5d),
			.platform_data = &tvp5146_pdata,
			.platform_data = &dm644xevm_tvp5146_pdata,
		},
		},
	},
	},
};
};


static struct vpfe_config vpfe_cfg = {
static struct vpfe_config dm644xevm_capture_cfg = {
	.num_subdevs = ARRAY_SIZE(vpfe_sub_devs),
	.num_subdevs = ARRAY_SIZE(dm644xevm_vpfe_sub_devs),
	.i2c_adapter_id = 1,
	.i2c_adapter_id = 1,
	.sub_devs = vpfe_sub_devs,
	.sub_devs = dm644xevm_vpfe_sub_devs,
	.card_name = "DM6446 EVM",
	.card_name = "DM6446 EVM",
	.ccdc = "DM6446 CCDC",
	.ccdc = "DM6446 CCDC",
};
};
@@ -624,8 +625,6 @@ static struct davinci_uart_config uart_config __initdata = {
static void __init
static void __init
davinci_evm_map_io(void)
davinci_evm_map_io(void)
{
{
	/* setup input configuration for VPFE input devices */
	dm644x_set_vpfe_config(&vpfe_cfg);
	dm644x_init();
	dm644x_init();
}
}


@@ -697,6 +696,7 @@ static __init void davinci_evm_init(void)
	evm_init_i2c();
	evm_init_i2c();


	davinci_setup_mmc(0, &dm6446evm_mmc_config);
	davinci_setup_mmc(0, &dm6446evm_mmc_config);
	dm644x_init_video(&dm644xevm_capture_cfg);


	davinci_serial_init(&uart_config);
	davinci_serial_init(&uart_config);
	dm644x_init_asp(&dm644x_evm_snd_data);
	dm644x_init_asp(&dm644x_evm_snd_data);
+11 −21
Original line number Original line Diff line number Diff line
@@ -36,7 +36,6 @@
#include <asm/mach-types.h>
#include <asm/mach-types.h>
#include <asm/mach/arch.h>
#include <asm/mach/arch.h>


#include <mach/dm646x.h>
#include <mach/common.h>
#include <mach/common.h>
#include <mach/serial.h>
#include <mach/serial.h>
#include <mach/i2c.h>
#include <mach/i2c.h>
@@ -45,6 +44,7 @@
#include <mach/cdce949.h>
#include <mach/cdce949.h>
#include <mach/aemif.h>
#include <mach/aemif.h>


#include "davinci.h"
#include "clock.h"
#include "clock.h"


#define NAND_BLOCK_SIZE		SZ_128K
#define NAND_BLOCK_SIZE		SZ_128K
@@ -410,8 +410,6 @@ static struct davinci_i2c_platform_data i2c_pdata = {
	.bus_delay      = 0 /* usec */,
	.bus_delay      = 0 /* usec */,
};
};


#define VIDCLKCTL_OFFSET	(DAVINCI_SYSTEM_MODULE_BASE + 0x38)
#define VSCLKDIS_OFFSET		(DAVINCI_SYSTEM_MODULE_BASE + 0x6c)
#define VCH2CLK_MASK		(BIT_MASK(10) | BIT_MASK(9) | BIT_MASK(8))
#define VCH2CLK_MASK		(BIT_MASK(10) | BIT_MASK(9) | BIT_MASK(8))
#define VCH2CLK_SYSCLK8		(BIT(9))
#define VCH2CLK_SYSCLK8		(BIT(9))
#define VCH2CLK_AUXCLK		(BIT(9) | BIT(8))
#define VCH2CLK_AUXCLK		(BIT(9) | BIT(8))
@@ -429,8 +427,6 @@ static struct davinci_i2c_platform_data i2c_pdata = {
#define TVP5147_CH0		"tvp514x-0"
#define TVP5147_CH0		"tvp514x-0"
#define TVP5147_CH1		"tvp514x-1"
#define TVP5147_CH1		"tvp514x-1"


static void __iomem *vpif_vidclkctl_reg;
static void __iomem *vpif_vsclkdis_reg;
/* spin lock for updating above registers */
/* spin lock for updating above registers */
static spinlock_t vpif_reg_lock;
static spinlock_t vpif_reg_lock;


@@ -441,14 +437,14 @@ static int set_vpif_clock(int mux_mode, int hd)
	int val = 0;
	int val = 0;
	int err = 0;
	int err = 0;


	if (!vpif_vidclkctl_reg || !vpif_vsclkdis_reg || !cpld_client)
	if (!cpld_client)
		return -ENXIO;
		return -ENXIO;


	/* disable the clock */
	/* disable the clock */
	spin_lock_irqsave(&vpif_reg_lock, flags);
	spin_lock_irqsave(&vpif_reg_lock, flags);
	value = __raw_readl(vpif_vsclkdis_reg);
	value = __raw_readl(DAVINCI_SYSMOD_VIRT(SYSMOD_VSCLKDIS));
	value |= (VIDCH3CLK | VIDCH2CLK);
	value |= (VIDCH3CLK | VIDCH2CLK);
	__raw_writel(value, vpif_vsclkdis_reg);
	__raw_writel(value, DAVINCI_SYSMOD_VIRT(SYSMOD_VSCLKDIS));
	spin_unlock_irqrestore(&vpif_reg_lock, flags);
	spin_unlock_irqrestore(&vpif_reg_lock, flags);


	val = i2c_smbus_read_byte(cpld_client);
	val = i2c_smbus_read_byte(cpld_client);
@@ -464,7 +460,7 @@ static int set_vpif_clock(int mux_mode, int hd)
	if (err)
	if (err)
		return err;
		return err;


	value = __raw_readl(vpif_vidclkctl_reg);
	value = __raw_readl(DAVINCI_SYSMOD_VIRT(SYSMOD_VIDCLKCTL));
	value &= ~(VCH2CLK_MASK);
	value &= ~(VCH2CLK_MASK);
	value &= ~(VCH3CLK_MASK);
	value &= ~(VCH3CLK_MASK);


@@ -473,13 +469,13 @@ static int set_vpif_clock(int mux_mode, int hd)
	else
	else
		value |= (VCH2CLK_AUXCLK | VCH3CLK_AUXCLK);
		value |= (VCH2CLK_AUXCLK | VCH3CLK_AUXCLK);


	__raw_writel(value, vpif_vidclkctl_reg);
	__raw_writel(value, DAVINCI_SYSMOD_VIRT(SYSMOD_VIDCLKCTL));


	spin_lock_irqsave(&vpif_reg_lock, flags);
	spin_lock_irqsave(&vpif_reg_lock, flags);
	value = __raw_readl(vpif_vsclkdis_reg);
	value = __raw_readl(DAVINCI_SYSMOD_VIRT(SYSMOD_VSCLKDIS));
	/* enable the clock */
	/* enable the clock */
	value &= ~(VIDCH3CLK | VIDCH2CLK);
	value &= ~(VIDCH3CLK | VIDCH2CLK);
	__raw_writel(value, vpif_vsclkdis_reg);
	__raw_writel(value, DAVINCI_SYSMOD_VIRT(SYSMOD_VSCLKDIS));
	spin_unlock_irqrestore(&vpif_reg_lock, flags);
	spin_unlock_irqrestore(&vpif_reg_lock, flags);


	return 0;
	return 0;
@@ -564,7 +560,7 @@ static int setup_vpif_input_channel_mode(int mux_mode)
	int val;
	int val;
	u32 value;
	u32 value;


	if (!vpif_vidclkctl_reg || !cpld_client)
	if (!cpld_client)
		return -ENXIO;
		return -ENXIO;


	val = i2c_smbus_read_byte(cpld_client);
	val = i2c_smbus_read_byte(cpld_client);
@@ -572,7 +568,7 @@ static int setup_vpif_input_channel_mode(int mux_mode)
		return val;
		return val;


	spin_lock_irqsave(&vpif_reg_lock, flags);
	spin_lock_irqsave(&vpif_reg_lock, flags);
	value = __raw_readl(vpif_vidclkctl_reg);
	value = __raw_readl(DAVINCI_SYSMOD_VIRT(SYSMOD_VIDCLKCTL));
	if (mux_mode) {
	if (mux_mode) {
		val &= VPIF_INPUT_TWO_CHANNEL;
		val &= VPIF_INPUT_TWO_CHANNEL;
		value |= VIDCH1CLK;
		value |= VIDCH1CLK;
@@ -580,7 +576,7 @@ static int setup_vpif_input_channel_mode(int mux_mode)
		val |= VPIF_INPUT_ONE_CHANNEL;
		val |= VPIF_INPUT_ONE_CHANNEL;
		value &= ~VIDCH1CLK;
		value &= ~VIDCH1CLK;
	}
	}
	__raw_writel(value, vpif_vidclkctl_reg);
	__raw_writel(value, DAVINCI_SYSMOD_VIRT(SYSMOD_VIDCLKCTL));
	spin_unlock_irqrestore(&vpif_reg_lock, flags);
	spin_unlock_irqrestore(&vpif_reg_lock, flags);


	err = i2c_smbus_write_byte(cpld_client, val);
	err = i2c_smbus_write_byte(cpld_client, val);
@@ -674,12 +670,6 @@ static struct vpif_capture_config dm646x_vpif_capture_cfg = {


static void __init evm_init_video(void)
static void __init evm_init_video(void)
{
{
	vpif_vidclkctl_reg = ioremap(VIDCLKCTL_OFFSET, 4);
	vpif_vsclkdis_reg = ioremap(VSCLKDIS_OFFSET, 4);
	if (!vpif_vidclkctl_reg || !vpif_vsclkdis_reg) {
		pr_err("Can't map VPIF VIDCLKCTL or VSCLKDIS registers\n");
		return;
	}
	spin_lock_init(&vpif_reg_lock);
	spin_lock_init(&vpif_reg_lock);


	dm646x_setup_vpif(&dm646x_vpif_display_config,
	dm646x_setup_vpif(&dm646x_vpif_display_config,
Loading