~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

TOMOYO Linux Cross Reference
Linux/arch/arm/mach-imx/devices/platform-spi_imx.c

Version: ~ [ linux-5.4-rc3 ] ~ [ linux-5.3.6 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.79 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.149 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.196 ] ~ [ linux-4.8.17 ] ~ [ linux-4.7.10 ] ~ [ linux-4.6.7 ] ~ [ linux-4.5.7 ] ~ [ linux-4.4.196 ] ~ [ linux-4.3.6 ] ~ [ linux-4.2.8 ] ~ [ linux-4.1.52 ] ~ [ linux-4.0.9 ] ~ [ linux-3.19.8 ] ~ [ linux-3.18.140 ] ~ [ linux-3.17.8 ] ~ [ linux-3.16.75 ] ~ [ linux-3.15.10 ] ~ [ linux-3.14.79 ] ~ [ linux-3.13.11 ] ~ [ linux-3.12.74 ] ~ [ linux-3.11.10 ] ~ [ linux-3.10.108 ] ~ [ linux-3.9.11 ] ~ [ linux-3.8.13 ] ~ [ linux-3.7.10 ] ~ [ linux-3.6.11 ] ~ [ linux-3.5.7 ] ~ [ linux-3.4.113 ] ~ [ linux-3.3.8 ] ~ [ linux-3.2.102 ] ~ [ linux-3.1.10 ] ~ [ linux-3.0.101 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.0 ] ~ [ linux-2.4.37.11 ] ~ [ unix-v6-master ] ~ [ ccs-tools-1.8.5 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

  1 /*
  2  * Copyright (C) 2009-2010 Pengutronix
  3  * Uwe Kleine-Koenig <u.kleine-koenig@pengutronix.de>
  4  *
  5  * This program is free software; you can redistribute it and/or modify it under
  6  * the terms of the GNU General Public License version 2 as published by the
  7  * Free Software Foundation.
  8  */
  9 #include "../hardware.h"
 10 #include "devices-common.h"
 11 
 12 #define imx_spi_imx_data_entry_single(soc, type, _devid, _id, hwid, _size) \
 13         {                                                               \
 14                 .devid = _devid,                                        \
 15                 .id = _id,                                              \
 16                 .iobase = soc ## _ ## type ## hwid ## _BASE_ADDR,       \
 17                 .iosize = _size,                                        \
 18                 .irq = soc ## _INT_ ## type ## hwid,                    \
 19         }
 20 
 21 #define imx_spi_imx_data_entry(soc, type, devid, id, hwid, size)        \
 22         [id] = imx_spi_imx_data_entry_single(soc, type, devid, id, hwid, size)
 23 
 24 #ifdef CONFIG_SOC_IMX1
 25 const struct imx_spi_imx_data imx1_cspi_data[] __initconst = {
 26 #define imx1_cspi_data_entry(_id, _hwid) \
 27         imx_spi_imx_data_entry(MX1, CSPI, "imx1-cspi", _id, _hwid, SZ_4K)
 28         imx1_cspi_data_entry(0, 1),
 29         imx1_cspi_data_entry(1, 2),
 30 };
 31 #endif
 32 
 33 #ifdef CONFIG_SOC_IMX21
 34 const struct imx_spi_imx_data imx21_cspi_data[] __initconst = {
 35 #define imx21_cspi_data_entry(_id, _hwid)                            \
 36         imx_spi_imx_data_entry(MX21, CSPI, "imx21-cspi", _id, _hwid, SZ_4K)
 37         imx21_cspi_data_entry(0, 1),
 38         imx21_cspi_data_entry(1, 2),
 39 };
 40 #endif
 41 
 42 #ifdef CONFIG_SOC_IMX25
 43 /* i.mx25 has the i.mx35 type cspi */
 44 const struct imx_spi_imx_data imx25_cspi_data[] __initconst = {
 45 #define imx25_cspi_data_entry(_id, _hwid)                               \
 46         imx_spi_imx_data_entry(MX25, CSPI, "imx35-cspi", _id, _hwid, SZ_16K)
 47         imx25_cspi_data_entry(0, 1),
 48         imx25_cspi_data_entry(1, 2),
 49         imx25_cspi_data_entry(2, 3),
 50 };
 51 #endif /* ifdef CONFIG_SOC_IMX25 */
 52 
 53 #ifdef CONFIG_SOC_IMX27
 54 const struct imx_spi_imx_data imx27_cspi_data[] __initconst = {
 55 #define imx27_cspi_data_entry(_id, _hwid)                               \
 56         imx_spi_imx_data_entry(MX27, CSPI, "imx27-cspi", _id, _hwid, SZ_4K)
 57         imx27_cspi_data_entry(0, 1),
 58         imx27_cspi_data_entry(1, 2),
 59         imx27_cspi_data_entry(2, 3),
 60 };
 61 #endif /* ifdef CONFIG_SOC_IMX27 */
 62 
 63 #ifdef CONFIG_SOC_IMX31
 64 const struct imx_spi_imx_data imx31_cspi_data[] __initconst = {
 65 #define imx31_cspi_data_entry(_id, _hwid)                               \
 66         imx_spi_imx_data_entry(MX31, CSPI, "imx31-cspi", _id, _hwid, SZ_4K)
 67         imx31_cspi_data_entry(0, 1),
 68         imx31_cspi_data_entry(1, 2),
 69         imx31_cspi_data_entry(2, 3),
 70 };
 71 #endif /* ifdef CONFIG_SOC_IMX31 */
 72 
 73 #ifdef CONFIG_SOC_IMX35
 74 const struct imx_spi_imx_data imx35_cspi_data[] __initconst = {
 75 #define imx35_cspi_data_entry(_id, _hwid)                           \
 76         imx_spi_imx_data_entry(MX35, CSPI, "imx35-cspi", _id, _hwid, SZ_4K)
 77         imx35_cspi_data_entry(0, 1),
 78         imx35_cspi_data_entry(1, 2),
 79 };
 80 #endif /* ifdef CONFIG_SOC_IMX35 */
 81 
 82 #ifdef CONFIG_SOC_IMX51
 83 /* i.mx51 has the i.mx35 type cspi */
 84 const struct imx_spi_imx_data imx51_cspi_data __initconst =
 85         imx_spi_imx_data_entry_single(MX51, CSPI, "imx35-cspi", 2, , SZ_4K);
 86 
 87 const struct imx_spi_imx_data imx51_ecspi_data[] __initconst = {
 88 #define imx51_ecspi_data_entry(_id, _hwid)                              \
 89         imx_spi_imx_data_entry(MX51, ECSPI, "imx51-ecspi", _id, _hwid, SZ_4K)
 90         imx51_ecspi_data_entry(0, 1),
 91         imx51_ecspi_data_entry(1, 2),
 92 };
 93 #endif /* ifdef CONFIG_SOC_IMX51 */
 94 
 95 #ifdef CONFIG_SOC_IMX53
 96 /* i.mx53 has the i.mx35 type cspi */
 97 const struct imx_spi_imx_data imx53_cspi_data __initconst =
 98         imx_spi_imx_data_entry_single(MX53, CSPI, "imx35-cspi", 2, , SZ_4K);
 99 
100 /* i.mx53 has the i.mx51 type ecspi */
101 const struct imx_spi_imx_data imx53_ecspi_data[] __initconst = {
102 #define imx53_ecspi_data_entry(_id, _hwid)                              \
103         imx_spi_imx_data_entry(MX53, ECSPI, "imx51-ecspi", _id, _hwid, SZ_4K)
104         imx53_ecspi_data_entry(0, 1),
105         imx53_ecspi_data_entry(1, 2),
106 };
107 #endif /* ifdef CONFIG_SOC_IMX53 */
108 
109 struct platform_device *__init imx_add_spi_imx(
110                 const struct imx_spi_imx_data *data,
111                 const struct spi_imx_master *pdata)
112 {
113         struct resource res[] = {
114                 {
115                         .start = data->iobase,
116                         .end = data->iobase + data->iosize - 1,
117                         .flags = IORESOURCE_MEM,
118                 }, {
119                         .start = data->irq,
120                         .end = data->irq,
121                         .flags = IORESOURCE_IRQ,
122                 },
123         };
124 
125         return imx_add_platform_device(data->devid, data->id,
126                         res, ARRAY_SIZE(res), pdata, sizeof(*pdata));
127 }
128 

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

kernel.org | git.kernel.org | LWN.net | Project Home | Wiki (Japanese) | Wiki (English) | SVN repository | Mail admin

Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.

osdn.jp