root/arch/arm/mach-imx/devices/devices-common.h

/* [<][>][^][v][top][bottom][index][help] */

INCLUDED FROM


DEFINITIONS

This source file includes following definitions.
  1. imx_add_platform_device_dmamask
  2. imx_add_platform_device

   1 /* SPDX-License-Identifier: GPL-2.0-only */
   2 /*
   3  * Copyright (C) 2009-2010 Pengutronix
   4  * Uwe Kleine-Koenig <u.kleine-koenig@pengutronix.de>
   5  */
   6 #include <linux/kernel.h>
   7 #include <linux/platform_device.h>
   8 #include <linux/init.h>
   9 #include <linux/platform_data/dma-imx-sdma.h>
  10 
  11 extern struct device mxc_aips_bus;
  12 extern struct device mxc_ahb_bus;
  13 
  14 static inline struct platform_device *imx_add_platform_device_dmamask(
  15                 const char *name, int id,
  16                 const struct resource *res, unsigned int num_resources,
  17                 const void *data, size_t size_data, u64 dmamask)
  18 {
  19         struct platform_device_info pdevinfo = {
  20                 .name = name,
  21                 .id = id,
  22                 .res = res,
  23                 .num_res = num_resources,
  24                 .data = data,
  25                 .size_data = size_data,
  26                 .dma_mask = dmamask,
  27         };
  28         return platform_device_register_full(&pdevinfo);
  29 }
  30 
  31 static inline struct platform_device *imx_add_platform_device(
  32                 const char *name, int id,
  33                 const struct resource *res, unsigned int num_resources,
  34                 const void *data, size_t size_data)
  35 {
  36         return imx_add_platform_device_dmamask(
  37                         name, id, res, num_resources, data, size_data, 0);
  38 }
  39 
  40 #include <linux/fec.h>
  41 struct imx_fec_data {
  42         const char *devid;
  43         resource_size_t iobase;
  44         resource_size_t irq;
  45 };
  46 struct platform_device *__init imx_add_fec(
  47                 const struct imx_fec_data *data,
  48                 const struct fec_platform_data *pdata);
  49 
  50 struct imx_flexcan_data {
  51         int id;
  52         resource_size_t iobase;
  53         resource_size_t iosize;
  54         resource_size_t irq;
  55 };
  56 struct platform_device *__init imx_add_flexcan(
  57                 const struct imx_flexcan_data *data);
  58 
  59 #include <linux/fsl_devices.h>
  60 struct imx_fsl_usb2_udc_data {
  61         const char *devid;
  62         resource_size_t iobase;
  63         resource_size_t irq;
  64 };
  65 struct platform_device *__init imx_add_fsl_usb2_udc(
  66                 const struct imx_fsl_usb2_udc_data *data,
  67                 const struct fsl_usb2_platform_data *pdata);
  68 
  69 #include <linux/gpio_keys.h>
  70 struct platform_device *__init imx_add_gpio_keys(
  71                 const struct gpio_keys_platform_data *pdata);
  72 
  73 #include <linux/platform_data/usb-mx2.h>
  74 struct imx_imx21_hcd_data {
  75         resource_size_t iobase;
  76         resource_size_t irq;
  77 };
  78 struct platform_device *__init imx_add_imx21_hcd(
  79                 const struct imx_imx21_hcd_data *data,
  80                 const struct mx21_usbh_platform_data *pdata);
  81 
  82 struct imx_imx27_coda_data {
  83         resource_size_t iobase;
  84         resource_size_t iosize;
  85         resource_size_t irq;
  86 };
  87 struct platform_device *__init imx_add_imx27_coda(
  88                 const struct imx_imx27_coda_data *data);
  89 
  90 struct imx_imx2_wdt_data {
  91         int id;
  92         resource_size_t iobase;
  93         resource_size_t iosize;
  94 };
  95 struct platform_device *__init imx_add_imx2_wdt(
  96                 const struct imx_imx2_wdt_data *data);
  97 
  98 struct imx_imxdi_rtc_data {
  99         resource_size_t iobase;
 100         resource_size_t irq;
 101 };
 102 struct platform_device *__init imx_add_imxdi_rtc(
 103                 const struct imx_imxdi_rtc_data *data);
 104 
 105 #include <linux/platform_data/video-imxfb.h>
 106 struct imx_imx_fb_data {
 107         const char *devid;
 108         resource_size_t iobase;
 109         resource_size_t iosize;
 110         resource_size_t irq;
 111 };
 112 struct platform_device *__init imx_add_imx_fb(
 113                 const struct imx_imx_fb_data *data,
 114                 const struct imx_fb_platform_data *pdata);
 115 
 116 #include <linux/platform_data/i2c-imx.h>
 117 struct imx_imx_i2c_data {
 118         const char *devid;
 119         int id;
 120         resource_size_t iobase;
 121         resource_size_t iosize;
 122         resource_size_t irq;
 123 };
 124 struct platform_device *__init imx_add_imx_i2c(
 125                 const struct imx_imx_i2c_data *data,
 126                 const struct imxi2c_platform_data *pdata);
 127 
 128 #include <linux/input/matrix_keypad.h>
 129 struct imx_imx_keypad_data {
 130         resource_size_t iobase;
 131         resource_size_t iosize;
 132         resource_size_t irq;
 133 };
 134 struct platform_device *__init imx_add_imx_keypad(
 135                 const struct imx_imx_keypad_data *data,
 136                 const struct matrix_keymap_data *pdata);
 137 
 138 #include <linux/platform_data/asoc-imx-ssi.h>
 139 struct imx_imx_ssi_data {
 140         int id;
 141         resource_size_t iobase;
 142         resource_size_t iosize;
 143         resource_size_t irq;
 144         resource_size_t dmatx0;
 145         resource_size_t dmarx0;
 146         resource_size_t dmatx1;
 147         resource_size_t dmarx1;
 148 };
 149 struct platform_device *__init imx_add_imx_ssi(
 150                 const struct imx_imx_ssi_data *data,
 151                 const struct imx_ssi_platform_data *pdata);
 152 
 153 #include <linux/platform_data/serial-imx.h>
 154 struct imx_imx_uart_1irq_data {
 155         int id;
 156         resource_size_t iobase;
 157         resource_size_t iosize;
 158         resource_size_t irq;
 159 };
 160 struct platform_device *__init imx_add_imx_uart_1irq(
 161                 const struct imx_imx_uart_1irq_data *data,
 162                 const struct imxuart_platform_data *pdata);
 163 
 164 #include <linux/platform_data/video-mx3fb.h>
 165 #include <linux/platform_data/media/camera-mx3.h>
 166 struct imx_ipu_core_data {
 167         resource_size_t iobase;
 168         resource_size_t synirq;
 169         resource_size_t errirq;
 170 };
 171 struct platform_device *__init imx_add_ipu_core(
 172                 const struct imx_ipu_core_data *data);
 173 struct platform_device *__init imx_alloc_mx3_camera(
 174                 const struct imx_ipu_core_data *data,
 175                 const struct mx3_camera_pdata *pdata);
 176 struct platform_device *__init imx_add_mx3_sdc_fb(
 177                 const struct imx_ipu_core_data *data,
 178                 struct mx3fb_platform_data *pdata);
 179 
 180 #include <linux/platform_data/media/camera-mx2.h>
 181 struct imx_mx2_camera_data {
 182         const char *devid;
 183         resource_size_t iobasecsi;
 184         resource_size_t iosizecsi;
 185         resource_size_t irqcsi;
 186         resource_size_t iobaseemmaprp;
 187         resource_size_t iosizeemmaprp;
 188         resource_size_t irqemmaprp;
 189 };
 190 struct platform_device *__init imx_add_mx2_camera(
 191                 const struct imx_mx2_camera_data *data,
 192                 const struct mx2_camera_platform_data *pdata);
 193 
 194 
 195 struct imx_mx2_emma_data {
 196         resource_size_t iobase;
 197         resource_size_t iosize;
 198         resource_size_t irq;
 199 };
 200 struct platform_device *__init imx_add_mx2_emmaprp(
 201                 const struct imx_mx2_emma_data *data);
 202 
 203 #include <linux/platform_data/usb-ehci-mxc.h>
 204 struct imx_mxc_ehci_data {
 205         int id;
 206         resource_size_t iobase;
 207         resource_size_t irq;
 208 };
 209 struct platform_device *__init imx_add_mxc_ehci(
 210                 const struct imx_mxc_ehci_data *data,
 211                 const struct mxc_usbh_platform_data *pdata);
 212 
 213 #include <linux/platform_data/mmc-mxcmmc.h>
 214 struct imx_mxc_mmc_data {
 215         const char *devid;
 216         int id;
 217         resource_size_t iobase;
 218         resource_size_t iosize;
 219         resource_size_t irq;
 220         resource_size_t dmareq;
 221 };
 222 struct platform_device *__init imx_add_mxc_mmc(
 223                 const struct imx_mxc_mmc_data *data,
 224                 const struct imxmmc_platform_data *pdata);
 225 
 226 #include <linux/platform_data/mtd-mxc_nand.h>
 227 struct imx_mxc_nand_data {
 228         const char *devid;
 229         /*
 230          * id is traditionally 0, but -1 is more appropriate.  We use -1 for new
 231          * machines but don't change existing devices as the nand device usually
 232          * appears in the kernel command line to pass its partitioning.
 233          */
 234         int id;
 235         resource_size_t iobase;
 236         resource_size_t iosize;
 237         resource_size_t axibase;
 238         resource_size_t irq;
 239 };
 240 struct platform_device *__init imx_add_mxc_nand(
 241                 const struct imx_mxc_nand_data *data,
 242                 const struct mxc_nand_platform_data *pdata);
 243 
 244 struct imx_pata_imx_data {
 245         resource_size_t iobase;
 246         resource_size_t iosize;
 247         resource_size_t irq;
 248 };
 249 struct platform_device *__init imx_add_pata_imx(
 250                 const struct imx_pata_imx_data *data);
 251 
 252 /* mxc_rtc */
 253 struct imx_mxc_rtc_data {
 254         const char *devid;
 255         resource_size_t iobase;
 256         resource_size_t irq;
 257 };
 258 struct platform_device *__init imx_add_mxc_rtc(
 259                 const struct imx_mxc_rtc_data *data);
 260 
 261 /* mxc_w1 */
 262 struct imx_mxc_w1_data {
 263         resource_size_t iobase;
 264 };
 265 struct platform_device *__init imx_add_mxc_w1(
 266                 const struct imx_mxc_w1_data *data);
 267 
 268 #include <linux/platform_data/mmc-esdhc-imx.h>
 269 struct imx_sdhci_esdhc_imx_data {
 270         const char *devid;
 271         int id;
 272         resource_size_t iobase;
 273         resource_size_t irq;
 274 };
 275 struct platform_device *__init imx_add_sdhci_esdhc_imx(
 276                 const struct imx_sdhci_esdhc_imx_data *data,
 277                 const struct esdhc_platform_data *pdata);
 278 
 279 #include <linux/platform_data/spi-imx.h>
 280 struct imx_spi_imx_data {
 281         const char *devid;
 282         int id;
 283         resource_size_t iobase;
 284         resource_size_t iosize;
 285         int irq;
 286 };
 287 struct platform_device *__init imx_add_spi_imx(
 288                 const struct imx_spi_imx_data *data,
 289                 const struct spi_imx_master *pdata);
 290 
 291 struct platform_device *imx_add_imx_dma(char *name, resource_size_t iobase,
 292                                         int irq, int irq_err);
 293 struct platform_device *imx_add_imx_sdma(char *name,
 294         resource_size_t iobase, int irq, struct sdma_platform_data *pdata);

/* [<][>][^][v][top][bottom][index][help] */