ARM: davinci: move platform_data definitions
Platform data for device drivers should be defined in include/linux/platform_data/*.h, not in the architecture and platform specific directories. This moves such data out of the davinci include directories Signed-off-by: Arnd Bergmann <arnd@arndb.de> Acked-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Acked-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> Acked-by: Nicolas Pitre <nico@linaro.org> Acked-by: Mauro Carvalho Chehab <mchehab@redhat.com> Acked-by: Felipe Balbi <balbi@ti.com> Cc: Sekhar Nori <nsekhar@ti.com> Cc: Kevin Hilman <khilman@ti.com> Cc: "Ben Dooks" <ben-linux@fluff.org> Cc: "Wolfram Sang" <w.sang@pengutronix.de> Cc: Dmitry Torokhov <dmitry.torokhov@gmail.com> Cc: Chris Ball <cjb@laptop.org> Cc: David Woodhouse <dwmw2@infradead.org> Cc: Grant Likely <grant.likely@secretlab.ca> Cc: Alan Stern <stern@rowland.harvard.edu> Cc: Liam Girdwood <lrg@ti.com> Cc: davinci-linux-open-source@linux.davincidsp.com
This commit is contained in:
26
include/linux/platform_data/i2c-davinci.h
Normal file
26
include/linux/platform_data/i2c-davinci.h
Normal file
@@ -0,0 +1,26 @@
|
||||
/*
|
||||
* DaVinci I2C controller platform_device info
|
||||
*
|
||||
* Author: Vladimir Barinov, MontaVista Software, Inc. <source@mvista.com>
|
||||
*
|
||||
* 2007 (c) MontaVista Software, Inc. 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_I2C_H
|
||||
#define __ASM_ARCH_I2C_H
|
||||
|
||||
/* All frequencies are expressed in kHz */
|
||||
struct davinci_i2c_platform_data {
|
||||
unsigned int bus_freq; /* standard bus frequency (kHz) */
|
||||
unsigned int bus_delay; /* post-transaction delay (usec) */
|
||||
unsigned int sda_pin; /* GPIO pin ID to use for SDA */
|
||||
unsigned int scl_pin; /* GPIO pin ID to use for SCL */
|
||||
};
|
||||
|
||||
/* for board setup code */
|
||||
void davinci_init_i2c(struct davinci_i2c_platform_data *);
|
||||
|
||||
#endif /* __ASM_ARCH_I2C_H */
|
42
include/linux/platform_data/keyscan-davinci.h
Normal file
42
include/linux/platform_data/keyscan-davinci.h
Normal file
@@ -0,0 +1,42 @@
|
||||
/*
|
||||
* Copyright (C) 2009 Texas Instruments, Inc
|
||||
*
|
||||
* Author: Miguel Aguilar <miguel.aguilar@ridgerun.com>
|
||||
*
|
||||
* 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 DAVINCI_KEYSCAN_H
|
||||
#define DAVINCI_KEYSCAN_H
|
||||
|
||||
#include <linux/io.h>
|
||||
|
||||
enum davinci_matrix_types {
|
||||
DAVINCI_KEYSCAN_MATRIX_4X4,
|
||||
DAVINCI_KEYSCAN_MATRIX_5X3,
|
||||
};
|
||||
|
||||
struct davinci_ks_platform_data {
|
||||
int (*device_enable)(struct device *dev);
|
||||
unsigned short *keymap;
|
||||
u32 keymapsize;
|
||||
u8 rep:1;
|
||||
u8 strobe;
|
||||
u8 interval;
|
||||
u8 matrix_type;
|
||||
};
|
||||
|
||||
#endif
|
||||
|
39
include/linux/platform_data/mmc-davinci.h
Normal file
39
include/linux/platform_data/mmc-davinci.h
Normal file
@@ -0,0 +1,39 @@
|
||||
/*
|
||||
* Board-specific MMC configuration
|
||||
*/
|
||||
|
||||
#ifndef _DAVINCI_MMC_H
|
||||
#define _DAVINCI_MMC_H
|
||||
|
||||
#include <linux/types.h>
|
||||
#include <linux/mmc/host.h>
|
||||
|
||||
struct davinci_mmc_config {
|
||||
/* get_cd()/get_wp() may sleep */
|
||||
int (*get_cd)(int module);
|
||||
int (*get_ro)(int module);
|
||||
|
||||
void (*set_power)(int module, bool on);
|
||||
|
||||
/* wires == 0 is equivalent to wires == 4 (4-bit parallel) */
|
||||
u8 wires;
|
||||
|
||||
u32 max_freq;
|
||||
|
||||
/* any additional host capabilities: OR'd in to mmc->f_caps */
|
||||
u32 caps;
|
||||
|
||||
/* Version of the MMC/SD controller */
|
||||
u8 version;
|
||||
|
||||
/* Number of sg segments */
|
||||
u8 nr_sg;
|
||||
};
|
||||
void davinci_setup_mmc(int module, struct davinci_mmc_config *config);
|
||||
|
||||
enum {
|
||||
MMC_CTLR_VERSION_1 = 0, /* DM644x and DM355 */
|
||||
MMC_CTLR_VERSION_2, /* DA830 */
|
||||
};
|
||||
|
||||
#endif
|
36
include/linux/platform_data/mtd-davinci-aemif.h
Normal file
36
include/linux/platform_data/mtd-davinci-aemif.h
Normal file
@@ -0,0 +1,36 @@
|
||||
/*
|
||||
* TI DaVinci AEMIF support
|
||||
*
|
||||
* Copyright 2010 (C) Texas Instruments, Inc. http://www.ti.com/
|
||||
*
|
||||
* 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 _MACH_DAVINCI_AEMIF_H
|
||||
#define _MACH_DAVINCI_AEMIF_H
|
||||
|
||||
#define NRCSR_OFFSET 0x00
|
||||
#define AWCCR_OFFSET 0x04
|
||||
#define A1CR_OFFSET 0x10
|
||||
|
||||
#define ACR_ASIZE_MASK 0x3
|
||||
#define ACR_EW_MASK BIT(30)
|
||||
#define ACR_SS_MASK BIT(31)
|
||||
|
||||
/* All timings in nanoseconds */
|
||||
struct davinci_aemif_timing {
|
||||
u8 wsetup;
|
||||
u8 wstrobe;
|
||||
u8 whold;
|
||||
|
||||
u8 rsetup;
|
||||
u8 rstrobe;
|
||||
u8 rhold;
|
||||
|
||||
u8 ta;
|
||||
};
|
||||
|
||||
int davinci_aemif_setup_timing(struct davinci_aemif_timing *t,
|
||||
void __iomem *base, unsigned cs);
|
||||
#endif
|
90
include/linux/platform_data/mtd-davinci.h
Normal file
90
include/linux/platform_data/mtd-davinci.h
Normal file
@@ -0,0 +1,90 @@
|
||||
/*
|
||||
* mach-davinci/nand.h
|
||||
*
|
||||
* Copyright © 2006 Texas Instruments.
|
||||
*
|
||||
* Ported to 2.6.23 Copyright © 2008 by
|
||||
* Sander Huijsen <Shuijsen@optelecom-nkf.com>
|
||||
* Troy Kisky <troy.kisky@boundarydevices.com>
|
||||
* Dirk Behme <Dirk.Behme@gmail.com>
|
||||
*
|
||||
* --------------------------------------------------------------------------
|
||||
*
|
||||
* 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., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
*/
|
||||
|
||||
#ifndef __ARCH_ARM_DAVINCI_NAND_H
|
||||
#define __ARCH_ARM_DAVINCI_NAND_H
|
||||
|
||||
#include <linux/mtd/nand.h>
|
||||
|
||||
#define NANDFCR_OFFSET 0x60
|
||||
#define NANDFSR_OFFSET 0x64
|
||||
#define NANDF1ECC_OFFSET 0x70
|
||||
|
||||
/* 4-bit ECC syndrome registers */
|
||||
#define NAND_4BIT_ECC_LOAD_OFFSET 0xbc
|
||||
#define NAND_4BIT_ECC1_OFFSET 0xc0
|
||||
#define NAND_4BIT_ECC2_OFFSET 0xc4
|
||||
#define NAND_4BIT_ECC3_OFFSET 0xc8
|
||||
#define NAND_4BIT_ECC4_OFFSET 0xcc
|
||||
#define NAND_ERR_ADD1_OFFSET 0xd0
|
||||
#define NAND_ERR_ADD2_OFFSET 0xd4
|
||||
#define NAND_ERR_ERRVAL1_OFFSET 0xd8
|
||||
#define NAND_ERR_ERRVAL2_OFFSET 0xdc
|
||||
|
||||
/* NOTE: boards don't need to use these address bits
|
||||
* for ALE/CLE unless they support booting from NAND.
|
||||
* They're used unless platform data overrides them.
|
||||
*/
|
||||
#define MASK_ALE 0x08
|
||||
#define MASK_CLE 0x10
|
||||
|
||||
struct davinci_nand_pdata { /* platform_data */
|
||||
uint32_t mask_ale;
|
||||
uint32_t mask_cle;
|
||||
|
||||
/* for packages using two chipselects */
|
||||
uint32_t mask_chipsel;
|
||||
|
||||
/* board's default static partition info */
|
||||
struct mtd_partition *parts;
|
||||
unsigned nr_parts;
|
||||
|
||||
/* none == NAND_ECC_NONE (strongly *not* advised!!)
|
||||
* soft == NAND_ECC_SOFT
|
||||
* else == NAND_ECC_HW, according to ecc_bits
|
||||
*
|
||||
* All DaVinci-family chips support 1-bit hardware ECC.
|
||||
* Newer ones also support 4-bit ECC, but are awkward
|
||||
* using it with large page chips.
|
||||
*/
|
||||
nand_ecc_modes_t ecc_mode;
|
||||
u8 ecc_bits;
|
||||
|
||||
/* e.g. NAND_BUSWIDTH_16 */
|
||||
unsigned options;
|
||||
/* e.g. NAND_BBT_USE_FLASH */
|
||||
unsigned bbt_options;
|
||||
|
||||
/* Main and mirror bbt descriptor overrides */
|
||||
struct nand_bbt_descr *bbt_td;
|
||||
struct nand_bbt_descr *bbt_md;
|
||||
|
||||
/* Access timings */
|
||||
struct davinci_aemif_timing *timing;
|
||||
};
|
||||
|
||||
#endif /* __ARCH_ARM_DAVINCI_NAND_H */
|
89
include/linux/platform_data/spi-davinci.h
Normal file
89
include/linux/platform_data/spi-davinci.h
Normal file
@@ -0,0 +1,89 @@
|
||||
/*
|
||||
* Copyright 2009 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., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
*/
|
||||
|
||||
#ifndef __ARCH_ARM_DAVINCI_SPI_H
|
||||
#define __ARCH_ARM_DAVINCI_SPI_H
|
||||
|
||||
#include <mach/edma.h>
|
||||
|
||||
#define SPI_INTERN_CS 0xFF
|
||||
|
||||
enum {
|
||||
SPI_VERSION_1, /* For DM355/DM365/DM6467 */
|
||||
SPI_VERSION_2, /* For DA8xx */
|
||||
};
|
||||
|
||||
/**
|
||||
* davinci_spi_platform_data - Platform data for SPI master device on DaVinci
|
||||
*
|
||||
* @version: version of the SPI IP. Different DaVinci devices have slightly
|
||||
* varying versions of the same IP.
|
||||
* @num_chipselect: number of chipselects supported by this SPI master
|
||||
* @intr_line: interrupt line used to connect the SPI IP to the ARM interrupt
|
||||
* controller withn the SoC. Possible values are 0 and 1.
|
||||
* @chip_sel: list of GPIOs which can act as chip-selects for the SPI.
|
||||
* SPI_INTERN_CS denotes internal SPI chip-select. Not necessary
|
||||
* to populate if all chip-selects are internal.
|
||||
* @cshold_bug: set this to true if the SPI controller on your chip requires
|
||||
* a write to CSHOLD bit in between transfers (like in DM355).
|
||||
* @dma_event_q: DMA event queue to use if SPI_IO_TYPE_DMA is used for any
|
||||
* device on the bus.
|
||||
*/
|
||||
struct davinci_spi_platform_data {
|
||||
u8 version;
|
||||
u8 num_chipselect;
|
||||
u8 intr_line;
|
||||
u8 *chip_sel;
|
||||
bool cshold_bug;
|
||||
enum dma_event_q dma_event_q;
|
||||
};
|
||||
|
||||
/**
|
||||
* davinci_spi_config - Per-chip-select configuration for SPI slave devices
|
||||
*
|
||||
* @wdelay: amount of delay between transmissions. Measured in number of
|
||||
* SPI module clocks.
|
||||
* @odd_parity: polarity of parity flag at the end of transmit data stream.
|
||||
* 0 - odd parity, 1 - even parity.
|
||||
* @parity_enable: enable transmission of parity at end of each transmit
|
||||
* data stream.
|
||||
* @io_type: type of IO transfer. Choose between polled, interrupt and DMA.
|
||||
* @timer_disable: disable chip-select timers (setup and hold)
|
||||
* @c2tdelay: chip-select setup time. Measured in number of SPI module clocks.
|
||||
* @t2cdelay: chip-select hold time. Measured in number of SPI module clocks.
|
||||
* @t2edelay: transmit data finished to SPI ENAn pin inactive time. Measured
|
||||
* in number of SPI clocks.
|
||||
* @c2edelay: chip-select active to SPI ENAn signal active time. Measured in
|
||||
* number of SPI clocks.
|
||||
*/
|
||||
struct davinci_spi_config {
|
||||
u8 wdelay;
|
||||
u8 odd_parity;
|
||||
u8 parity_enable;
|
||||
#define SPI_IO_TYPE_INTR 0
|
||||
#define SPI_IO_TYPE_POLL 1
|
||||
#define SPI_IO_TYPE_DMA 2
|
||||
u8 io_type;
|
||||
u8 timer_disable;
|
||||
u8 c2tdelay;
|
||||
u8 t2cdelay;
|
||||
u8 t2edelay;
|
||||
u8 c2edelay;
|
||||
};
|
||||
|
||||
#endif /* __ARCH_ARM_DAVINCI_SPI_H */
|
59
include/linux/platform_data/usb-davinci.h
Normal file
59
include/linux/platform_data/usb-davinci.h
Normal file
@@ -0,0 +1,59 @@
|
||||
/*
|
||||
* USB related definitions
|
||||
*
|
||||
* Copyright (C) 2009 MontaVista Software, Inc. <source@mvista.com>
|
||||
*
|
||||
* 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_USB_H
|
||||
#define __ASM_ARCH_USB_H
|
||||
|
||||
/* DA8xx CFGCHIP2 (USB 2.0 PHY Control) register bits */
|
||||
#define CFGCHIP2_PHYCLKGD (1 << 17)
|
||||
#define CFGCHIP2_VBUSSENSE (1 << 16)
|
||||
#define CFGCHIP2_RESET (1 << 15)
|
||||
#define CFGCHIP2_OTGMODE (3 << 13)
|
||||
#define CFGCHIP2_NO_OVERRIDE (0 << 13)
|
||||
#define CFGCHIP2_FORCE_HOST (1 << 13)
|
||||
#define CFGCHIP2_FORCE_DEVICE (2 << 13)
|
||||
#define CFGCHIP2_FORCE_HOST_VBUS_LOW (3 << 13)
|
||||
#define CFGCHIP2_USB1PHYCLKMUX (1 << 12)
|
||||
#define CFGCHIP2_USB2PHYCLKMUX (1 << 11)
|
||||
#define CFGCHIP2_PHYPWRDN (1 << 10)
|
||||
#define CFGCHIP2_OTGPWRDN (1 << 9)
|
||||
#define CFGCHIP2_DATPOL (1 << 8)
|
||||
#define CFGCHIP2_USB1SUSPENDM (1 << 7)
|
||||
#define CFGCHIP2_PHY_PLLON (1 << 6) /* override PLL suspend */
|
||||
#define CFGCHIP2_SESENDEN (1 << 5) /* Vsess_end comparator */
|
||||
#define CFGCHIP2_VBDTCTEN (1 << 4) /* Vbus comparator */
|
||||
#define CFGCHIP2_REFFREQ (0xf << 0)
|
||||
#define CFGCHIP2_REFFREQ_12MHZ (1 << 0)
|
||||
#define CFGCHIP2_REFFREQ_24MHZ (2 << 0)
|
||||
#define CFGCHIP2_REFFREQ_48MHZ (3 << 0)
|
||||
|
||||
struct da8xx_ohci_root_hub;
|
||||
|
||||
typedef void (*da8xx_ocic_handler_t)(struct da8xx_ohci_root_hub *hub,
|
||||
unsigned port);
|
||||
|
||||
/* Passed as the platform data to the OHCI driver */
|
||||
struct da8xx_ohci_root_hub {
|
||||
/* Switch the port power on/off */
|
||||
int (*set_power)(unsigned port, int on);
|
||||
/* Read the port power status */
|
||||
int (*get_power)(unsigned port);
|
||||
/* Read the port over-current indicator */
|
||||
int (*get_oci)(unsigned port);
|
||||
/* Over-current indicator change notification (pass NULL to disable) */
|
||||
int (*ocic_notify)(da8xx_ocic_handler_t handler);
|
||||
|
||||
/* Time from power on to power good (in 2 ms units) */
|
||||
u8 potpgt;
|
||||
};
|
||||
|
||||
void davinci_setup_usb(unsigned mA, unsigned potpgt_ms);
|
||||
|
||||
#endif /* ifndef __ASM_ARCH_USB_H */
|
Reference in New Issue
Block a user