omap1: Add 7xx clocks and pin muxes for SPI
Commit 35c9049b27
added
drivers/spi/omap_spi_100k.c.
This patch add the related clocks and pin muxing
entries to make the driver work on omap7xx platforms.
Signed-off-by: Cory Maccarrone <darkstar6262@gmail.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
This commit is contained in:
parent
4cc6420c12
commit
c5c4dce45d
5 changed files with 58 additions and 0 deletions
|
@ -658,6 +658,10 @@ static struct omap_clk omap_clks[] = {
|
||||||
CLK("i2c_omap.1", "fck", &i2c_fck, CK_16XX | CK_1510 | CK_310 | CK_7XX),
|
CLK("i2c_omap.1", "fck", &i2c_fck, CK_16XX | CK_1510 | CK_310 | CK_7XX),
|
||||||
CLK("i2c_omap.1", "ick", &i2c_ick, CK_16XX),
|
CLK("i2c_omap.1", "ick", &i2c_ick, CK_16XX),
|
||||||
CLK("i2c_omap.1", "ick", &dummy_ck, CK_1510 | CK_310 | CK_7XX),
|
CLK("i2c_omap.1", "ick", &dummy_ck, CK_1510 | CK_310 | CK_7XX),
|
||||||
|
CLK("omap1_spi100k.1", "fck", &dummy_ck, CK_7XX),
|
||||||
|
CLK("omap1_spi100k.1", "ick", &dummy_ck, CK_7XX),
|
||||||
|
CLK("omap1_spi100k.2", "fck", &dummy_ck, CK_7XX),
|
||||||
|
CLK("omap1_spi100k.2", "ick", &dummy_ck, CK_7XX),
|
||||||
CLK("omap_uwire", "fck", &armxor_ck.clk, CK_16XX | CK_1510 | CK_310),
|
CLK("omap_uwire", "fck", &armxor_ck.clk, CK_16XX | CK_1510 | CK_310),
|
||||||
CLK("omap-mcbsp.1", "ick", &dspper_ck, CK_16XX),
|
CLK("omap-mcbsp.1", "ick", &dspper_ck, CK_16XX),
|
||||||
CLK("omap-mcbsp.1", "ick", &dummy_ck, CK_1510 | CK_310),
|
CLK("omap-mcbsp.1", "ick", &dummy_ck, CK_1510 | CK_310),
|
||||||
|
|
|
@ -14,6 +14,7 @@
|
||||||
#include <linux/init.h>
|
#include <linux/init.h>
|
||||||
#include <linux/platform_device.h>
|
#include <linux/platform_device.h>
|
||||||
#include <linux/io.h>
|
#include <linux/io.h>
|
||||||
|
#include <linux/spi/spi.h>
|
||||||
|
|
||||||
#include <mach/hardware.h>
|
#include <mach/hardware.h>
|
||||||
#include <asm/mach/map.h>
|
#include <asm/mach/map.h>
|
||||||
|
@ -23,6 +24,7 @@
|
||||||
#include <plat/mux.h>
|
#include <plat/mux.h>
|
||||||
#include <mach/gpio.h>
|
#include <mach/gpio.h>
|
||||||
#include <plat/mmc.h>
|
#include <plat/mmc.h>
|
||||||
|
#include <plat/omap7xx.h>
|
||||||
|
|
||||||
/*-------------------------------------------------------------------------*/
|
/*-------------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
@ -196,6 +198,38 @@ void __init omap1_init_mmc(struct omap_mmc_platform_data **mmc_data,
|
||||||
|
|
||||||
/*-------------------------------------------------------------------------*/
|
/*-------------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
/* OMAP7xx SPI support */
|
||||||
|
#if defined(CONFIG_SPI_OMAP_100K) || defined(CONFIG_SPI_OMAP_100K_MODULE)
|
||||||
|
|
||||||
|
struct platform_device omap_spi1 = {
|
||||||
|
.name = "omap1_spi100k",
|
||||||
|
.id = 1,
|
||||||
|
};
|
||||||
|
|
||||||
|
struct platform_device omap_spi2 = {
|
||||||
|
.name = "omap1_spi100k",
|
||||||
|
.id = 2,
|
||||||
|
};
|
||||||
|
|
||||||
|
static void omap_init_spi100k(void)
|
||||||
|
{
|
||||||
|
omap_spi1.dev.platform_data = ioremap(OMAP7XX_SPI1_BASE, 0x7ff);
|
||||||
|
if (omap_spi1.dev.platform_data)
|
||||||
|
platform_device_register(&omap_spi1);
|
||||||
|
|
||||||
|
omap_spi2.dev.platform_data = ioremap(OMAP7XX_SPI2_BASE, 0x7ff);
|
||||||
|
if (omap_spi2.dev.platform_data)
|
||||||
|
platform_device_register(&omap_spi2);
|
||||||
|
}
|
||||||
|
|
||||||
|
#else
|
||||||
|
static inline void omap_init_spi100k(void)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/*-------------------------------------------------------------------------*/
|
||||||
|
|
||||||
#if defined(CONFIG_OMAP_STI)
|
#if defined(CONFIG_OMAP_STI)
|
||||||
|
|
||||||
#define OMAP1_STI_BASE 0xfffea000
|
#define OMAP1_STI_BASE 0xfffea000
|
||||||
|
@ -263,6 +297,7 @@ static int __init omap1_init_devices(void)
|
||||||
|
|
||||||
omap_init_mbox();
|
omap_init_mbox();
|
||||||
omap_init_rtc();
|
omap_init_rtc();
|
||||||
|
omap_init_spi100k();
|
||||||
omap_init_sti();
|
omap_init_sti();
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
|
|
@ -62,6 +62,14 @@ MUX_CFG_7XX("MMC_7XX_DAT0", 2, 17, 0, 16, 1, 0)
|
||||||
/* I2C interface */
|
/* I2C interface */
|
||||||
MUX_CFG_7XX("I2C_7XX_SCL", 5, 1, 0, 0, 1, 0)
|
MUX_CFG_7XX("I2C_7XX_SCL", 5, 1, 0, 0, 1, 0)
|
||||||
MUX_CFG_7XX("I2C_7XX_SDA", 5, 5, 0, 0, 1, 0)
|
MUX_CFG_7XX("I2C_7XX_SDA", 5, 5, 0, 0, 1, 0)
|
||||||
|
|
||||||
|
/* SPI pins */
|
||||||
|
MUX_CFG_7XX("SPI_7XX_1", 6, 5, 4, 4, 1, 0)
|
||||||
|
MUX_CFG_7XX("SPI_7XX_2", 6, 9, 4, 8, 1, 0)
|
||||||
|
MUX_CFG_7XX("SPI_7XX_3", 6, 13, 4, 12, 1, 0)
|
||||||
|
MUX_CFG_7XX("SPI_7XX_4", 6, 17, 4, 16, 1, 0)
|
||||||
|
MUX_CFG_7XX("SPI_7XX_5", 8, 25, 0, 24, 0, 0)
|
||||||
|
MUX_CFG_7XX("SPI_7XX_6", 9, 5, 0, 4, 0, 0)
|
||||||
};
|
};
|
||||||
#define OMAP7XX_PINS_SZ ARRAY_SIZE(omap7xx_pins)
|
#define OMAP7XX_PINS_SZ ARRAY_SIZE(omap7xx_pins)
|
||||||
#else
|
#else
|
||||||
|
|
|
@ -183,6 +183,14 @@ enum omap7xx_index {
|
||||||
/* I2C */
|
/* I2C */
|
||||||
I2C_7XX_SCL,
|
I2C_7XX_SCL,
|
||||||
I2C_7XX_SDA,
|
I2C_7XX_SDA,
|
||||||
|
|
||||||
|
/* SPI */
|
||||||
|
SPI_7XX_1,
|
||||||
|
SPI_7XX_2,
|
||||||
|
SPI_7XX_3,
|
||||||
|
SPI_7XX_4,
|
||||||
|
SPI_7XX_5,
|
||||||
|
SPI_7XX_6,
|
||||||
};
|
};
|
||||||
|
|
||||||
enum omap1xxx_index {
|
enum omap1xxx_index {
|
||||||
|
|
|
@ -46,6 +46,9 @@
|
||||||
#define OMAP7XX_DSPREG_SIZE SZ_128K
|
#define OMAP7XX_DSPREG_SIZE SZ_128K
|
||||||
#define OMAP7XX_DSPREG_START 0xE1000000
|
#define OMAP7XX_DSPREG_START 0xE1000000
|
||||||
|
|
||||||
|
#define OMAP7XX_SPI1_BASE 0xfffc0800
|
||||||
|
#define OMAP7XX_SPI2_BASE 0xfffc1000
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* ----------------------------------------------------------------------------
|
* ----------------------------------------------------------------------------
|
||||||
* OMAP7XX specific configuration registers
|
* OMAP7XX specific configuration registers
|
||||||
|
|
Loading…
Add table
Reference in a new issue