linux/arch/arm/plat-mxc/include/mach/devices-common.h
<<
>>
Prefs
   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 <linux/kernel.h>
  10#include <linux/platform_device.h>
  11#include <linux/init.h>
  12
  13struct platform_device *imx_add_platform_device_dmamask(
  14                const char *name, int id,
  15                const struct resource *res, unsigned int num_resources,
  16                const void *data, size_t size_data, u64 dmamask);
  17
  18static inline struct platform_device *imx_add_platform_device(
  19                const char *name, int id,
  20                const struct resource *res, unsigned int num_resources,
  21                const void *data, size_t size_data)
  22{
  23        return imx_add_platform_device_dmamask(
  24                        name, id, res, num_resources, data, size_data, 0);
  25}
  26
  27#include <linux/fec.h>
  28struct imx_fec_data {
  29        resource_size_t iobase;
  30        resource_size_t irq;
  31};
  32struct platform_device *__init imx_add_fec(
  33                const struct imx_fec_data *data,
  34                const struct fec_platform_data *pdata);
  35
  36#include <linux/can/platform/flexcan.h>
  37struct imx_flexcan_data {
  38        int id;
  39        resource_size_t iobase;
  40        resource_size_t iosize;
  41        resource_size_t irq;
  42};
  43struct platform_device *__init imx_add_flexcan(
  44                const struct imx_flexcan_data *data,
  45                const struct flexcan_platform_data *pdata);
  46
  47#include <linux/fsl_devices.h>
  48struct imx_fsl_usb2_udc_data {
  49        resource_size_t iobase;
  50        resource_size_t irq;
  51};
  52struct platform_device *__init imx_add_fsl_usb2_udc(
  53                const struct imx_fsl_usb2_udc_data *data,
  54                const struct fsl_usb2_platform_data *pdata);
  55
  56#include <linux/gpio_keys.h>
  57struct platform_device *__init imx_add_gpio_keys(
  58                const struct gpio_keys_platform_data *pdata);
  59
  60#include <mach/mx21-usbhost.h>
  61struct imx_imx21_hcd_data {
  62        resource_size_t iobase;
  63        resource_size_t irq;
  64};
  65struct platform_device *__init imx_add_imx21_hcd(
  66                const struct imx_imx21_hcd_data *data,
  67                const struct mx21_usbh_platform_data *pdata);
  68
  69struct imx_imx2_wdt_data {
  70        int id;
  71        resource_size_t iobase;
  72        resource_size_t iosize;
  73};
  74struct platform_device *__init imx_add_imx2_wdt(
  75                const struct imx_imx2_wdt_data *data);
  76
  77struct imx_imxdi_rtc_data {
  78        resource_size_t iobase;
  79        resource_size_t irq;
  80};
  81struct platform_device *__init imx_add_imxdi_rtc(
  82                const struct imx_imxdi_rtc_data *data);
  83
  84#include <mach/imxfb.h>
  85struct imx_imx_fb_data {
  86        resource_size_t iobase;
  87        resource_size_t iosize;
  88        resource_size_t irq;
  89};
  90struct platform_device *__init imx_add_imx_fb(
  91                const struct imx_imx_fb_data *data,
  92                const struct imx_fb_platform_data *pdata);
  93
  94#include <mach/i2c.h>
  95struct imx_imx_i2c_data {
  96        int id;
  97        resource_size_t iobase;
  98        resource_size_t iosize;
  99        resource_size_t irq;
 100};
 101struct platform_device *__init imx_add_imx_i2c(
 102                const struct imx_imx_i2c_data *data,
 103                const struct imxi2c_platform_data *pdata);
 104
 105#include <linux/input/matrix_keypad.h>
 106struct imx_imx_keypad_data {
 107        resource_size_t iobase;
 108        resource_size_t iosize;
 109        resource_size_t irq;
 110};
 111struct platform_device *__init imx_add_imx_keypad(
 112                const struct imx_imx_keypad_data *data,
 113                const struct matrix_keymap_data *pdata);
 114
 115#include <mach/ssi.h>
 116struct imx_imx_ssi_data {
 117        int id;
 118        resource_size_t iobase;
 119        resource_size_t iosize;
 120        resource_size_t irq;
 121        resource_size_t dmatx0;
 122        resource_size_t dmarx0;
 123        resource_size_t dmatx1;
 124        resource_size_t dmarx1;
 125};
 126struct platform_device *__init imx_add_imx_ssi(
 127                const struct imx_imx_ssi_data *data,
 128                const struct imx_ssi_platform_data *pdata);
 129
 130#include <mach/imx-uart.h>
 131struct imx_imx_uart_3irq_data {
 132        int id;
 133        resource_size_t iobase;
 134        resource_size_t iosize;
 135        resource_size_t irqrx;
 136        resource_size_t irqtx;
 137        resource_size_t irqrts;
 138};
 139struct platform_device *__init imx_add_imx_uart_3irq(
 140                const struct imx_imx_uart_3irq_data *data,
 141                const struct imxuart_platform_data *pdata);
 142
 143struct imx_imx_uart_1irq_data {
 144        int id;
 145        resource_size_t iobase;
 146        resource_size_t iosize;
 147        resource_size_t irq;
 148};
 149struct platform_device *__init imx_add_imx_uart_1irq(
 150                const struct imx_imx_uart_1irq_data *data,
 151                const struct imxuart_platform_data *pdata);
 152
 153#include <mach/usb.h>
 154struct imx_imx_udc_data {
 155        resource_size_t iobase;
 156        resource_size_t iosize;
 157        resource_size_t irq0;
 158        resource_size_t irq1;
 159        resource_size_t irq2;
 160        resource_size_t irq3;
 161        resource_size_t irq4;
 162        resource_size_t irq5;
 163        resource_size_t irq6;
 164};
 165struct platform_device *__init imx_add_imx_udc(
 166                const struct imx_imx_udc_data *data,
 167                const struct imxusb_platform_data *pdata);
 168
 169#include <mach/mx1_camera.h>
 170struct imx_mx1_camera_data {
 171        resource_size_t iobase;
 172        resource_size_t iosize;
 173        resource_size_t irq;
 174};
 175struct platform_device *__init imx_add_mx1_camera(
 176                const struct imx_mx1_camera_data *data,
 177                const struct mx1_camera_pdata *pdata);
 178
 179#include <mach/mx2_cam.h>
 180struct imx_mx2_camera_data {
 181        resource_size_t iobasecsi;
 182        resource_size_t iosizecsi;
 183        resource_size_t irqcsi;
 184        resource_size_t iobaseemmaprp;
 185        resource_size_t iosizeemmaprp;
 186        resource_size_t irqemmaprp;
 187};
 188struct platform_device *__init imx_add_mx2_camera(
 189                const struct imx_mx2_camera_data *data,
 190                const struct mx2_camera_platform_data *pdata);
 191
 192#include <mach/mxc_ehci.h>
 193struct imx_mxc_ehci_data {
 194        int id;
 195        resource_size_t iobase;
 196        resource_size_t irq;
 197};
 198struct platform_device *__init imx_add_mxc_ehci(
 199                const struct imx_mxc_ehci_data *data,
 200                const struct mxc_usbh_platform_data *pdata);
 201
 202#include <mach/mmc.h>
 203struct imx_mxc_mmc_data {
 204        int id;
 205        resource_size_t iobase;
 206        resource_size_t iosize;
 207        resource_size_t irq;
 208        resource_size_t dmareq;
 209};
 210struct platform_device *__init imx_add_mxc_mmc(
 211                const struct imx_mxc_mmc_data *data,
 212                const struct imxmmc_platform_data *pdata);
 213
 214#include <mach/mxc_nand.h>
 215struct imx_mxc_nand_data {
 216        /*
 217         * id is traditionally 0, but -1 is more appropriate.  We use -1 for new
 218         * machines but don't change existing devices as the nand device usually
 219         * appears in the kernel command line to pass its partitioning.
 220         */
 221        int id;
 222        resource_size_t iobase;
 223        resource_size_t iosize;
 224        resource_size_t axibase;
 225        resource_size_t irq;
 226};
 227struct platform_device *__init imx_add_mxc_nand(
 228                const struct imx_mxc_nand_data *data,
 229                const struct mxc_nand_platform_data *pdata);
 230
 231struct imx_mxc_pwm_data {
 232        int id;
 233        resource_size_t iobase;
 234        resource_size_t iosize;
 235        resource_size_t irq;
 236};
 237struct platform_device *__init imx_add_mxc_pwm(
 238                const struct imx_mxc_pwm_data *data);
 239
 240struct imx_mxc_w1_data {
 241        resource_size_t iobase;
 242};
 243struct platform_device *__init imx_add_mxc_w1(
 244                const struct imx_mxc_w1_data *data);
 245
 246#include <mach/esdhc.h>
 247struct imx_sdhci_esdhc_imx_data {
 248        int id;
 249        resource_size_t iobase;
 250        resource_size_t irq;
 251};
 252struct platform_device *__init imx_add_sdhci_esdhc_imx(
 253                const struct imx_sdhci_esdhc_imx_data *data,
 254                const struct esdhc_platform_data *pdata);
 255
 256#include <mach/spi.h>
 257struct imx_spi_imx_data {
 258        const char *devid;
 259        int id;
 260        resource_size_t iobase;
 261        resource_size_t iosize;
 262        int irq;
 263};
 264struct platform_device *__init imx_add_spi_imx(
 265                const struct imx_spi_imx_data *data,
 266                const struct spi_imx_master *pdata);
 267