mirror of https://gitee.com/openkylin/linux.git
ARM i.MX53 enable spi on EVK board
1. some macro definitions fix 2. add platform data for spi device 3. register spi clocks Signed-off-by: Yong Shen <yong.shen@freescale.com> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
This commit is contained in:
parent
074cee9257
commit
b0a6ba5ffb
|
@ -126,6 +126,7 @@ config MACH_MX53_EVK
|
||||||
select IMX_HAVE_PLATFORM_IMX_UART
|
select IMX_HAVE_PLATFORM_IMX_UART
|
||||||
select IMX_HAVE_PLATFORM_IMX_I2C
|
select IMX_HAVE_PLATFORM_IMX_I2C
|
||||||
select IMX_HAVE_PLATFORM_SDHCI_ESDHC_IMX
|
select IMX_HAVE_PLATFORM_SDHCI_ESDHC_IMX
|
||||||
|
select IMX_HAVE_PLATFORM_SPI_IMX
|
||||||
help
|
help
|
||||||
Include support for MX53 EVK platform. This includes specific
|
Include support for MX53 EVK platform. This includes specific
|
||||||
configurations for the board and its peripherals.
|
configurations for the board and its peripherals.
|
||||||
|
|
|
@ -33,6 +33,8 @@
|
||||||
#include <mach/iomux-mx53.h>
|
#include <mach/iomux-mx53.h>
|
||||||
|
|
||||||
#define SMD_FEC_PHY_RST IMX_GPIO_NR(7, 6)
|
#define SMD_FEC_PHY_RST IMX_GPIO_NR(7, 6)
|
||||||
|
#define EVK_ECSPI1_CS0 IMX_GPIO_NR(3, 19)
|
||||||
|
#define EVK_ECSPI1_CS1 IMX_GPIO_NR(2, 30)
|
||||||
|
|
||||||
#include "crm_regs.h"
|
#include "crm_regs.h"
|
||||||
#include "devices-imx53.h"
|
#include "devices-imx53.h"
|
||||||
|
@ -89,6 +91,16 @@ static struct fec_platform_data mx53_evk_fec_pdata = {
|
||||||
.phy = PHY_INTERFACE_MODE_RMII,
|
.phy = PHY_INTERFACE_MODE_RMII,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
static int mx53_evk_spi_cs[] = {
|
||||||
|
EVK_ECSPI1_CS0,
|
||||||
|
EVK_ECSPI1_CS1,
|
||||||
|
};
|
||||||
|
|
||||||
|
static const struct spi_imx_master mx53_evk_spi_data __initconst = {
|
||||||
|
.chipselect = mx53_evk_spi_cs,
|
||||||
|
.num_chipselect = ARRAY_SIZE(mx53_evk_spi_cs),
|
||||||
|
};
|
||||||
|
|
||||||
static void __init mx53_evk_board_init(void)
|
static void __init mx53_evk_board_init(void)
|
||||||
{
|
{
|
||||||
mxc_iomux_v3_setup_multiple_pads(mx53_evk_pads,
|
mxc_iomux_v3_setup_multiple_pads(mx53_evk_pads,
|
||||||
|
@ -102,6 +114,8 @@ static void __init mx53_evk_board_init(void)
|
||||||
|
|
||||||
imx53_add_sdhci_esdhc_imx(0, NULL);
|
imx53_add_sdhci_esdhc_imx(0, NULL);
|
||||||
imx53_add_sdhci_esdhc_imx(1, NULL);
|
imx53_add_sdhci_esdhc_imx(1, NULL);
|
||||||
|
|
||||||
|
imx53_add_ecspi(0, &mx53_evk_spi_data);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void __init mx53_evk_timer_init(void)
|
static void __init mx53_evk_timer_init(void)
|
||||||
|
|
|
@ -1330,6 +1330,9 @@ static struct clk_lookup mx53_lookups[] = {
|
||||||
_REGISTER_CLOCK("imx-i2c.1", NULL, i2c2_clk)
|
_REGISTER_CLOCK("imx-i2c.1", NULL, i2c2_clk)
|
||||||
_REGISTER_CLOCK("sdhci-esdhc-imx.0", NULL, esdhc1_clk)
|
_REGISTER_CLOCK("sdhci-esdhc-imx.0", NULL, esdhc1_clk)
|
||||||
_REGISTER_CLOCK("sdhci-esdhc-imx.1", NULL, esdhc2_clk)
|
_REGISTER_CLOCK("sdhci-esdhc-imx.1", NULL, esdhc2_clk)
|
||||||
|
_REGISTER_CLOCK("imx53-ecspi.0", NULL, ecspi1_clk)
|
||||||
|
_REGISTER_CLOCK("imx53-ecspi.1", NULL, ecspi2_clk)
|
||||||
|
_REGISTER_CLOCK("imx53-cspi.0", NULL, cspi_clk)
|
||||||
};
|
};
|
||||||
|
|
||||||
static void clk_tree_init(void)
|
static void clk_tree_init(void)
|
||||||
|
|
|
@ -25,3 +25,7 @@ extern const struct imx_sdhci_esdhc_imx_data
|
||||||
imx53_sdhci_esdhc_imx_data[] __initconst;
|
imx53_sdhci_esdhc_imx_data[] __initconst;
|
||||||
#define imx53_add_sdhci_esdhc_imx(id, pdata) \
|
#define imx53_add_sdhci_esdhc_imx(id, pdata) \
|
||||||
imx_add_sdhci_esdhc_imx(&imx53_sdhci_esdhc_imx_data[id], pdata)
|
imx_add_sdhci_esdhc_imx(&imx53_sdhci_esdhc_imx_data[id], pdata)
|
||||||
|
|
||||||
|
extern const struct imx_spi_imx_data imx53_ecspi_data[] __initconst;
|
||||||
|
#define imx53_add_ecspi(id, pdata) \
|
||||||
|
imx_add_spi_imx(&imx53_ecspi_data[id], pdata)
|
||||||
|
|
|
@ -81,6 +81,18 @@ const struct imx_spi_imx_data imx51_ecspi_data[] __initconst = {
|
||||||
};
|
};
|
||||||
#endif /* ifdef CONFIG_SOC_IMX51 */
|
#endif /* ifdef CONFIG_SOC_IMX51 */
|
||||||
|
|
||||||
|
#ifdef CONFIG_SOC_IMX53
|
||||||
|
const struct imx_spi_imx_data imx53_cspi_data __initconst =
|
||||||
|
imx_spi_imx_data_entry_single(MX53, CSPI, "imx53-cspi", 0, , SZ_4K);
|
||||||
|
|
||||||
|
const struct imx_spi_imx_data imx53_ecspi_data[] __initconst = {
|
||||||
|
#define imx53_ecspi_data_entry(_id, _hwid) \
|
||||||
|
imx_spi_imx_data_entry(MX53, ECSPI, "imx53-ecspi", _id, _hwid, SZ_4K)
|
||||||
|
imx53_ecspi_data_entry(0, 1),
|
||||||
|
imx53_ecspi_data_entry(1, 2),
|
||||||
|
};
|
||||||
|
#endif /* ifdef CONFIG_SOC_IMX53 */
|
||||||
|
|
||||||
struct platform_device *__init imx_add_spi_imx(
|
struct platform_device *__init imx_add_spi_imx(
|
||||||
const struct imx_spi_imx_data *data,
|
const struct imx_spi_imx_data *data,
|
||||||
const struct spi_imx_master *pdata)
|
const struct spi_imx_master *pdata)
|
||||||
|
|
|
@ -56,7 +56,7 @@
|
||||||
#define MX53_ESDHC1_BASE_ADDR (MX53_SPBA0_BASE_ADDR + 0x00004000)
|
#define MX53_ESDHC1_BASE_ADDR (MX53_SPBA0_BASE_ADDR + 0x00004000)
|
||||||
#define MX53_ESDHC2_BASE_ADDR (MX53_SPBA0_BASE_ADDR + 0x00008000)
|
#define MX53_ESDHC2_BASE_ADDR (MX53_SPBA0_BASE_ADDR + 0x00008000)
|
||||||
#define MX53_UART3_BASE_ADDR (MX53_SPBA0_BASE_ADDR + 0x0000C000)
|
#define MX53_UART3_BASE_ADDR (MX53_SPBA0_BASE_ADDR + 0x0000C000)
|
||||||
#define MX53_CSPI1_BASE_ADDR (MX53_SPBA0_BASE_ADDR + 0x00010000)
|
#define MX53_ECSPI1_BASE_ADDR (MX53_SPBA0_BASE_ADDR + 0x00010000)
|
||||||
#define MX53_SSI2_BASE_ADDR (MX53_SPBA0_BASE_ADDR + 0x00014000)
|
#define MX53_SSI2_BASE_ADDR (MX53_SPBA0_BASE_ADDR + 0x00014000)
|
||||||
#define MX53_ESDHC3_BASE_ADDR (MX53_SPBA0_BASE_ADDR + 0x00020000)
|
#define MX53_ESDHC3_BASE_ADDR (MX53_SPBA0_BASE_ADDR + 0x00020000)
|
||||||
#define MX53_ESDHC4_BASE_ADDR (MX53_SPBA0_BASE_ADDR + 0x00024000)
|
#define MX53_ESDHC4_BASE_ADDR (MX53_SPBA0_BASE_ADDR + 0x00024000)
|
||||||
|
@ -117,12 +117,12 @@
|
||||||
#define MX53_ARM_BASE_ADDR (MX53_AIPS2_BASE_ADDR + 0x000A0000)
|
#define MX53_ARM_BASE_ADDR (MX53_AIPS2_BASE_ADDR + 0x000A0000)
|
||||||
#define MX53_OWIRE_BASE_ADDR (MX53_AIPS2_BASE_ADDR + 0x000A4000)
|
#define MX53_OWIRE_BASE_ADDR (MX53_AIPS2_BASE_ADDR + 0x000A4000)
|
||||||
#define MX53_FIRI_BASE_ADDR (MX53_AIPS2_BASE_ADDR + 0x000A8000)
|
#define MX53_FIRI_BASE_ADDR (MX53_AIPS2_BASE_ADDR + 0x000A8000)
|
||||||
#define MX53_CSPI2_BASE_ADDR (MX53_AIPS2_BASE_ADDR + 0x000AC000)
|
#define MX53_ECSPI2_BASE_ADDR (MX53_AIPS2_BASE_ADDR + 0x000AC000)
|
||||||
#define MX53_SDMA_BASE_ADDR (MX53_AIPS2_BASE_ADDR + 0x000B0000)
|
#define MX53_SDMA_BASE_ADDR (MX53_AIPS2_BASE_ADDR + 0x000B0000)
|
||||||
#define MX53_SCC_BASE_ADDR (MX53_AIPS2_BASE_ADDR + 0x000B4000)
|
#define MX53_SCC_BASE_ADDR (MX53_AIPS2_BASE_ADDR + 0x000B4000)
|
||||||
#define MX53_ROMCP_BASE_ADDR (MX53_AIPS2_BASE_ADDR + 0x000B8000)
|
#define MX53_ROMCP_BASE_ADDR (MX53_AIPS2_BASE_ADDR + 0x000B8000)
|
||||||
#define MX53_RTIC_BASE_ADDR (MX53_AIPS2_BASE_ADDR + 0x000BC000)
|
#define MX53_RTIC_BASE_ADDR (MX53_AIPS2_BASE_ADDR + 0x000BC000)
|
||||||
#define MX53_CSPI3_BASE_ADDR (MX53_AIPS2_BASE_ADDR + 0x000C0000)
|
#define MX53_CSPI_BASE_ADDR (MX53_AIPS2_BASE_ADDR + 0x000C0000)
|
||||||
#define MX53_I2C2_BASE_ADDR (MX53_AIPS2_BASE_ADDR + 0x000C4000)
|
#define MX53_I2C2_BASE_ADDR (MX53_AIPS2_BASE_ADDR + 0x000C4000)
|
||||||
#define MX53_I2C1_BASE_ADDR (MX53_AIPS2_BASE_ADDR + 0x000C8000)
|
#define MX53_I2C1_BASE_ADDR (MX53_AIPS2_BASE_ADDR + 0x000C8000)
|
||||||
#define MX53_SSI1_BASE_ADDR (MX53_AIPS2_BASE_ADDR + 0x000CC000)
|
#define MX53_SSI1_BASE_ADDR (MX53_AIPS2_BASE_ADDR + 0x000CC000)
|
||||||
|
@ -264,8 +264,8 @@
|
||||||
#define MX53_INT_UART3 33
|
#define MX53_INT_UART3 33
|
||||||
#define MX53_INT_RESV34 34
|
#define MX53_INT_RESV34 34
|
||||||
#define MX53_INT_RESV35 35
|
#define MX53_INT_RESV35 35
|
||||||
#define MX53_INT_CSPI1 36
|
#define MX53_INT_ECSPI1 36
|
||||||
#define MX53_INT_CSPI2 37
|
#define MX53_INT_ECSPI2 37
|
||||||
#define MX53_INT_CSPI 38
|
#define MX53_INT_CSPI 38
|
||||||
#define MX53_INT_GPT 39
|
#define MX53_INT_GPT 39
|
||||||
#define MX53_INT_EPIT1 40
|
#define MX53_INT_EPIT1 40
|
||||||
|
|
Loading…
Reference in New Issue