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

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

Version: ~ [ linux-5.10-rc6 ] ~ [ linux-5.9.12 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.81 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.161 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.210 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.247 ] ~ [ linux-4.8.17 ] ~ [ linux-4.7.10 ] ~ [ linux-4.6.7 ] ~ [ linux-4.5.7 ] ~ [ linux-4.4.247 ] ~ [ 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.85 ] ~ [ 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-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 <asm/sizes.h>
 10 
 11 #include "../hardware.h"
 12 #include "devices-common.h"
 13 
 14 #define imx_mxc_nand_data_entry_single(soc, _devid, _size)              \
 15         {                                                               \
 16                 .devid = _devid,                                        \
 17                 .iobase = soc ## _NFC_BASE_ADDR,                        \
 18                 .iosize = _size,                                        \
 19                 .irq = soc ## _INT_NFC                                  \
 20         }
 21 
 22 #define imx_mxc_nandv3_data_entry_single(soc, _devid, _size)            \
 23         {                                                               \
 24                 .devid = _devid,                                        \
 25                 .id = -1,                                               \
 26                 .iobase = soc ## _NFC_BASE_ADDR,                        \
 27                 .iosize = _size,                                        \
 28                 .axibase = soc ## _NFC_AXI_BASE_ADDR,                   \
 29                 .irq = soc ## _INT_NFC                                  \
 30         }
 31 
 32 #ifdef CONFIG_SOC_IMX21
 33 const struct imx_mxc_nand_data imx21_mxc_nand_data __initconst =
 34         imx_mxc_nand_data_entry_single(MX21, "imx21-nand", SZ_4K);
 35 #endif /* ifdef CONFIG_SOC_IMX21 */
 36 
 37 #ifdef CONFIG_SOC_IMX27
 38 const struct imx_mxc_nand_data imx27_mxc_nand_data __initconst =
 39         imx_mxc_nand_data_entry_single(MX27, "imx27-nand", SZ_4K);
 40 #endif /* ifdef CONFIG_SOC_IMX27 */
 41 
 42 #ifdef CONFIG_SOC_IMX31
 43 const struct imx_mxc_nand_data imx31_mxc_nand_data __initconst =
 44         imx_mxc_nand_data_entry_single(MX31, "imx27-nand", SZ_4K);
 45 #endif
 46 
 47 #ifdef CONFIG_SOC_IMX35
 48 const struct imx_mxc_nand_data imx35_mxc_nand_data __initconst =
 49         imx_mxc_nand_data_entry_single(MX35, "imx25-nand", SZ_8K);
 50 #endif
 51 
 52 struct platform_device *__init imx_add_mxc_nand(
 53                 const struct imx_mxc_nand_data *data,
 54                 const struct mxc_nand_platform_data *pdata)
 55 {
 56         /* AXI has to come first, that's how the mxc_nand driver expect it */
 57         struct resource res[] = {
 58                 {
 59                         .start = data->iobase,
 60                         .end = data->iobase + data->iosize - 1,
 61                         .flags = IORESOURCE_MEM,
 62                 }, {
 63                         .start = data->irq,
 64                         .end = data->irq,
 65                         .flags = IORESOURCE_IRQ,
 66                 }, {
 67                         .start = data->axibase,
 68                         .end = data->axibase + SZ_16K - 1,
 69                         .flags = IORESOURCE_MEM,
 70                 },
 71         };
 72         return imx_add_platform_device(data->devid, data->id,
 73                         res, ARRAY_SIZE(res) - !data->axibase,
 74                         pdata, sizeof(*pdata));
 75 }
 76 

~ [ 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