Commit 39c6d2d1 authored by Manjunath Hadli's avatar Manjunath Hadli Committed by Sekhar Nori

ARM: davinci: create new common platform header for davinci

Remove individual platform header files for dm365, dm355, dm644x
and dm646x and consolidate it into a single and common
header file davinci.h placed in arch/arm/mach-davinci.

This reduces the pollution in the include/mach and is consistent
with Russell's suggestions as part of his "pet peaves" mail.
(See #4 in: http://lists.infradead.org/pipermail/linux-arm-kernel/2011-November/071516.html)

While at it, fix the forward declaration of spi_board_info,
and include the right header file instead.

The further patches in the series take  advantage of this consolidation
for easy implementation of IO_ADDRESS elimination.
Signed-off-by: default avatarManjunath Hadli <manjunath.hadli@ti.com>
[nsekhar@ti.com: make davinci.h the first local include file,
fix forward declaration of spi_board_info and add back Deep Root
Systems, LLC copyright]
Signed-off-by: default avatarSekhar Nori <nsekhar@ti.com>
parent 3d091406
...@@ -26,13 +26,14 @@ ...@@ -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
......
...@@ -23,13 +23,14 @@ ...@@ -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
......
...@@ -32,7 +32,6 @@ ...@@ -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 @@ ...@@ -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 */
......
...@@ -30,7 +30,6 @@ ...@@ -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 @@ ...@@ -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 "0:01" #define DM644X_EVM_PHY_ID "0:01"
#define LXT971_PHY_ID (0x001378e2) #define LXT971_PHY_ID (0x001378e2)
#define LXT971_PHY_MASK (0xfffffff0) #define LXT971_PHY_MASK (0xfffffff0)
......
...@@ -36,7 +36,6 @@ ...@@ -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 @@ ...@@ -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
......
...@@ -30,7 +30,6 @@ ...@@ -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>
...@@ -39,6 +38,8 @@ ...@@ -39,6 +38,8 @@
#include <mach/mmc.h> #include <mach/mmc.h>
#include <mach/usb.h> #include <mach/usb.h>
#include "davinci.h"
#define NEUROS_OSD2_PHY_ID "0:01" #define NEUROS_OSD2_PHY_ID "0:01"
#define LXT971_PHY_ID 0x001378e2 #define LXT971_PHY_ID 0x001378e2
#define LXT971_PHY_MASK 0xfffffff0 #define LXT971_PHY_MASK 0xfffffff0
......
...@@ -35,13 +35,14 @@ ...@@ -35,13 +35,14 @@
#include <asm/mach/arch.h> #include <asm/mach/arch.h>
#include <asm/mach/flash.h> #include <asm/mach/flash.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>
#include <mach/mux.h> #include <mach/mux.h>
#include <mach/usb.h> #include <mach/usb.h>
#include "davinci.h"
#define SFFSDR_PHY_ID "0:01" #define SFFSDR_PHY_ID "0:01"
static struct mtd_partition davinci_sffsdr_nandflash_partition[] = { static struct mtd_partition davinci_sffsdr_nandflash_partition[] = {
/* U-Boot Environment: Block 0 /* U-Boot Environment: Block 0
......
/* /*
* Copyright (C) 2009 Texas Instruments Incorporated * This file contains the processor specific definitions
* of the TI DM644x, DM355, DM365, and DM646x.
*
* Copyright (C) 2011 Texas Instruments Incorporated
* Copyright (c) 2007 Deep Root Systems, LLC
* *
* This program is free software; you can redistribute it and/or * This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License as * modify it under the terms of the GNU General Public License as
...@@ -10,20 +14,52 @@ ...@@ -10,20 +14,52 @@
* of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details. * GNU General Public License for more details.
*/ */
#ifndef __ASM_ARCH_DM365_H #ifndef __DAVINCI_H
#define __ASM_ARCH_DM665_H #define __DAVINCI_H
#include <linux/platform_device.h> #include <linux/clk.h>
#include <linux/videodev2.h>
#include <linux/davinci_emac.h> #include <linux/davinci_emac.h>
#include <mach/hardware.h> #include <linux/platform_device.h>
#include <linux/spi/spi.h>
#include <mach/asp.h> #include <mach/asp.h>
#include <mach/keyscan.h> #include <mach/keyscan.h>
#include <media/davinci/vpfe_capture.h> #include <media/davinci/vpfe_capture.h>
#include <media/davinci/vpif_types.h>
/* DM355 base addresses */
#define DM355_ASYNC_EMIF_CONTROL_BASE 0x01e10000
#define DM355_ASYNC_EMIF_DATA_CE0_BASE 0x02000000
#define ASP1_TX_EVT_EN 1
#define ASP1_RX_EVT_EN 2
#define DM365_ASYNC_EMIF_CONTROL_BASE 0x01D10000 /* DM365 base addresses */
#define DM365_ASYNC_EMIF_CONTROL_BASE 0x01d10000
#define DM365_ASYNC_EMIF_DATA_CE0_BASE 0x02000000 #define DM365_ASYNC_EMIF_DATA_CE0_BASE 0x02000000
#define DM365_ASYNC_EMIF_DATA_CE1_BASE 0x04000000 #define DM365_ASYNC_EMIF_DATA_CE1_BASE 0x04000000
/* DM644x base addresses */
#define DM644X_ASYNC_EMIF_CONTROL_BASE 0x01e00000
#define DM644X_ASYNC_EMIF_DATA_CE0_BASE 0x02000000
#define DM644X_ASYNC_EMIF_DATA_CE1_BASE 0x04000000
#define DM644X_ASYNC_EMIF_DATA_CE2_BASE 0x06000000
#define DM644X_ASYNC_EMIF_DATA_CE3_BASE 0x08000000
/* DM646x base addresses */
#define DM646X_ASYNC_EMIF_CONTROL_BASE 0x20008000
#define DM646X_ASYNC_EMIF_CS2_SPACE_BASE 0x42000000
/* DM355 function declarations */
void __init dm355_init(void);
void dm355_init_spi0(unsigned chipselect_mask,
struct spi_board_info *info, unsigned len);
void __init dm355_init_asp1(u32 evt_enable, struct snd_platform_data *pdata);
void dm355_set_vpfe_config(struct vpfe_config *cfg);
/* DM365 function declarations */
void __init dm365_init(void); void __init dm365_init(void);
void __init dm365_init_asp(struct snd_platform_data *pdata); void __init dm365_init_asp(struct snd_platform_data *pdata);
void __init dm365_init_vc(struct snd_platform_data *pdata); void __init dm365_init_vc(struct snd_platform_data *pdata);
...@@ -31,6 +67,19 @@ void __init dm365_init_ks(struct davinci_ks_platform_data *pdata); ...@@ -31,6 +67,19 @@ void __init dm365_init_ks(struct davinci_ks_platform_data *pdata);
void __init dm365_init_rtc(void); void __init dm365_init_rtc(void);
void dm365_init_spi0(unsigned chipselect_mask, void dm365_init_spi0(unsigned chipselect_mask,
struct spi_board_info *info, unsigned len); struct spi_board_info *info, unsigned len);
void dm365_set_vpfe_config(struct vpfe_config *cfg); void dm365_set_vpfe_config(struct vpfe_config *cfg);
#endif /* __ASM_ARCH_DM365_H */
/* DM644x function declarations */
void __init dm644x_init(void);
void __init dm644x_init_asp(struct snd_platform_data *pdata);
void dm644x_set_vpfe_config(struct vpfe_config *cfg);
/* DM646x function declarations */
void __init dm646x_init(void);
void __init dm646x_init_mcasp0(struct snd_platform_data *pdata);
void __init dm646x_init_mcasp1(struct snd_platform_data *pdata);
int __init dm646x_init_edma(struct edma_rsv_info *rsv);
void dm646x_video_init(void);
void dm646x_setup_vpif(struct vpif_display_config *,
struct vpif_capture_config *);
#endif /*__DAVINCI_H */
...@@ -18,7 +18,6 @@ ...@@ -18,7 +18,6 @@
#include <asm/mach/map.h> #include <asm/mach/map.h>
#include <mach/dm355.h>
#include <mach/cputype.h> #include <mach/cputype.h>
#include <mach/edma.h> #include <mach/edma.h>
#include <mach/psc.h> #include <mach/psc.h>
...@@ -31,6 +30,7 @@ ...@@ -31,6 +30,7 @@
#include <mach/spi.h> #include <mach/spi.h>
#include <mach/gpio-davinci.h> #include <mach/gpio-davinci.h>
#include "davinci.h"
#include "clock.h" #include "clock.h"
#include "mux.h" #include "mux.h"
......
...@@ -21,7 +21,6 @@ ...@@ -21,7 +21,6 @@
#include <asm/mach/map.h> #include <asm/mach/map.h>
#include <mach/dm365.h>
#include <mach/cputype.h> #include <mach/cputype.h>
#include <mach/edma.h> #include <mach/edma.h>
#include <mach/psc.h> #include <mach/psc.h>
...@@ -35,6 +34,7 @@ ...@@ -35,6 +34,7 @@
#include <mach/spi.h> #include <mach/spi.h>
#include <mach/gpio-davinci.h> #include <mach/gpio-davinci.h>
#include "davinci.h"
#include "clock.h" #include "clock.h"
#include "mux.h" #include "mux.h"
......
...@@ -15,7 +15,6 @@ ...@@ -15,7 +15,6 @@
#include <asm/mach/map.h> #include <asm/mach/map.h>
#include <mach/dm644x.h>
#include <mach/cputype.h> #include <mach/cputype.h>
#include <mach/edma.h> #include <mach/edma.h>
#include <mach/irqs.h> #include <mach/irqs.h>
...@@ -27,6 +26,7 @@ ...@@ -27,6 +26,7 @@
#include <mach/asp.h> #include <mach/asp.h>
#include <mach/gpio-davinci.h> #include <mach/gpio-davinci.h>
#include "davinci.h"
#include "clock.h" #include "clock.h"
#include "mux.h" #include "mux.h"
......
...@@ -16,7 +16,6 @@ ...@@ -16,7 +16,6 @@
#include <asm/mach/map.h> #include <asm/mach/map.h>
#include <mach/dm646x.h>
#include <mach/cputype.h> #include <mach/cputype.h>
#include <mach/edma.h> #include <mach/edma.h>
#include <mach/irqs.h> #include <mach/irqs.h>
...@@ -28,6 +27,7 @@ ...@@ -28,6 +27,7 @@
#include <mach/asp.h> #include <mach/asp.h>
#include <mach/gpio-davinci.h> #include <mach/gpio-davinci.h>
#include "davinci.h"
#include "clock.h" #include "clock.h"
#include "mux.h" #include "mux.h"
......
/*
* Chip specific defines for DM355 SoC
*
* Author: Kevin Hilman, Deep Root Systems, LLC
*
* 2007 (c) Deep Root Systems, LLC. This file is licensed under
* the terms of the GNU General Public License version 2. This program
* is licensed "as is" without any warranty of any kind, whether express
* or implied.
*/
#ifndef __ASM_ARCH_DM355_H
#define __ASM_ARCH_DM355_H
#include <mach/hardware.h>
#include <mach/asp.h>
#include <media/davinci/vpfe_capture.h>
#define DM355_ASYNC_EMIF_CONTROL_BASE 0x01E10000
#define DM355_ASYNC_EMIF_DATA_CE0_BASE 0x02000000
#define ASP1_TX_EVT_EN 1
#define ASP1_RX_EVT_EN 2
struct spi_board_info;
void __init dm355_init(void);
void dm355_init_spi0(unsigned chipselect_mask,
struct spi_board_info *info, unsigned len);
void __init dm355_init_asp1(u32 evt_enable, struct snd_platform_data *pdata);
void dm355_set_vpfe_config(struct vpfe_config *cfg);
#endif /* __ASM_ARCH_DM355_H */
/*
* This file contains the processor specific definitions
* of the TI DM644x.
*
* Copyright (C) 2008 Texas Instruments.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*
*/
#ifndef __ASM_ARCH_DM644X_H
#define __ASM_ARCH_DM644X_H
#include <linux/davinci_emac.h>
#include <mach/hardware.h>
#include <mach/asp.h>
#include <media/davinci/vpfe_capture.h>
#define DM644X_ASYNC_EMIF_CONTROL_BASE 0x01E00000
#define DM644X_ASYNC_EMIF_DATA_CE0_BASE 0x02000000
#define DM644X_ASYNC_EMIF_DATA_CE1_BASE 0x04000000
#define DM644X_ASYNC_EMIF_DATA_CE2_BASE 0x06000000
#define DM644X_ASYNC_EMIF_DATA_CE3_BASE 0x08000000
void __init dm644x_init(void);
void __init dm644x_init_asp(struct snd_platform_data *pdata);
void dm644x_set_vpfe_config(struct vpfe_config *cfg);
#endif /* __ASM_ARCH_DM644X_H */
/*
* Chip specific defines for DM646x SoC
*
* Author: Kevin Hilman, Deep Root Systems, LLC
*
* 2007 (c) Deep Root Systems, LLC. This file is licensed under
* the terms of the GNU General Public License version 2. This program
* is licensed "as is" without any warranty of any kind, whether express
* or implied.
*/
#ifndef __ASM_ARCH_DM646X_H
#define __ASM_ARCH_DM646X_H
#include <mach/hardware.h>
#include <mach/asp.h>
#include <linux/i2c.h>
#include <linux/videodev2.h>
#include <linux/davinci_emac.h>
#include <media/davinci/vpif_types.h>
#define DM646X_ASYNC_EMIF_CONTROL_BASE 0x20008000
#define DM646X_ASYNC_EMIF_CS2_SPACE_BASE 0x42000000
void __init dm646x_init(void);
void __init dm646x_init_mcasp0(struct snd_platform_data *pdata);
void __init dm646x_init_mcasp1(struct snd_platform_data *pdata);
int __init dm646x_init_edma(struct edma_rsv_info *rsv);
void dm646x_video_init(void);
void dm646x_setup_vpif(struct vpif_display_config *,
struct vpif_capture_config *);
#endif /* __ASM_ARCH_DM646X_H */
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment