mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-08-21 16:29:59 +00:00
ARM: imx: Remove imx device directory
arch/arm/mach-imx/devices/ contains utilities for registering devices in board file. Now that board files are gone, get rid of the devices directory. Signed-off-by: Fabio Estevam <festevam@gmail.com> Acked-by: Arnd Bergmann <arnd@arndb.de> Signed-off-by: Shawn Guo <shawnguo@kernel.org>
This commit is contained in:
parent
e8d992fb52
commit
8485adf17a
33 changed files with 0 additions and 1850 deletions
|
@ -270,6 +270,4 @@ endchoice
|
||||||
|
|
||||||
endif
|
endif
|
||||||
|
|
||||||
source "arch/arm/mach-imx/devices/Kconfig"
|
|
||||||
|
|
||||||
endif
|
endif
|
||||||
|
|
|
@ -68,5 +68,3 @@ obj-$(CONFIG_SOC_IMX53) += mach-imx53.o
|
||||||
obj-$(CONFIG_SOC_VF610) += mach-vf610.o
|
obj-$(CONFIG_SOC_VF610) += mach-vf610.o
|
||||||
|
|
||||||
obj-$(CONFIG_SOC_LS1021A) += mach-ls1021a.o
|
obj-$(CONFIG_SOC_LS1021A) += mach-ls1021a.o
|
||||||
|
|
||||||
obj-y += devices/
|
|
||||||
|
|
|
@ -1,71 +0,0 @@
|
||||||
# SPDX-License-Identifier: GPL-2.0-only
|
|
||||||
config IMX_HAVE_PLATFORM_FEC
|
|
||||||
bool
|
|
||||||
default y if SOC_IMX25 || SOC_IMX27 || SOC_IMX35
|
|
||||||
|
|
||||||
config IMX_HAVE_PLATFORM_FLEXCAN
|
|
||||||
bool
|
|
||||||
|
|
||||||
config IMX_HAVE_PLATFORM_FSL_USB2_UDC
|
|
||||||
bool
|
|
||||||
|
|
||||||
config IMX_HAVE_PLATFORM_GPIO_KEYS
|
|
||||||
bool
|
|
||||||
|
|
||||||
config IMX_HAVE_PLATFORM_IMX21_HCD
|
|
||||||
bool
|
|
||||||
|
|
||||||
config IMX_HAVE_PLATFORM_IMX27_CODA
|
|
||||||
bool
|
|
||||||
default y if SOC_IMX27
|
|
||||||
|
|
||||||
config IMX_HAVE_PLATFORM_IMX2_WDT
|
|
||||||
bool
|
|
||||||
|
|
||||||
config IMX_HAVE_PLATFORM_IMX_FB
|
|
||||||
bool
|
|
||||||
|
|
||||||
config IMX_HAVE_PLATFORM_IMX_I2C
|
|
||||||
bool
|
|
||||||
|
|
||||||
config IMX_HAVE_PLATFORM_IMX_KEYPAD
|
|
||||||
bool
|
|
||||||
|
|
||||||
config IMX_HAVE_PLATFORM_PATA_IMX
|
|
||||||
bool
|
|
||||||
|
|
||||||
config IMX_HAVE_PLATFORM_IMX_SSI
|
|
||||||
bool
|
|
||||||
|
|
||||||
config IMX_HAVE_PLATFORM_IMX_UART
|
|
||||||
bool
|
|
||||||
|
|
||||||
config IMX_HAVE_PLATFORM_IPU_CORE
|
|
||||||
bool
|
|
||||||
|
|
||||||
config IMX_HAVE_PLATFORM_MX2_CAMERA
|
|
||||||
bool
|
|
||||||
|
|
||||||
config IMX_HAVE_PLATFORM_MX2_EMMA
|
|
||||||
bool
|
|
||||||
|
|
||||||
config IMX_HAVE_PLATFORM_MXC_EHCI
|
|
||||||
bool
|
|
||||||
|
|
||||||
config IMX_HAVE_PLATFORM_MXC_MMC
|
|
||||||
bool
|
|
||||||
|
|
||||||
config IMX_HAVE_PLATFORM_MXC_NAND
|
|
||||||
bool
|
|
||||||
|
|
||||||
config IMX_HAVE_PLATFORM_MXC_RTC
|
|
||||||
bool
|
|
||||||
|
|
||||||
config IMX_HAVE_PLATFORM_MXC_W1
|
|
||||||
bool
|
|
||||||
|
|
||||||
config IMX_HAVE_PLATFORM_SDHCI_ESDHC_IMX
|
|
||||||
bool
|
|
||||||
|
|
||||||
config IMX_HAVE_PLATFORM_SPI_IMX
|
|
||||||
bool
|
|
|
@ -1,28 +0,0 @@
|
||||||
# SPDX-License-Identifier: GPL-2.0
|
|
||||||
obj-y := devices.o
|
|
||||||
|
|
||||||
obj-$(CONFIG_IMX_HAVE_PLATFORM_FEC) += platform-fec.o
|
|
||||||
obj-$(CONFIG_IMX_HAVE_PLATFORM_FLEXCAN) += platform-flexcan.o
|
|
||||||
obj-$(CONFIG_IMX_HAVE_PLATFORM_FSL_USB2_UDC) += platform-fsl-usb2-udc.o
|
|
||||||
obj-$(CONFIG_IMX_HAVE_PLATFORM_GPIO_KEYS) += platform-gpio_keys.o
|
|
||||||
obj-y += platform-gpio-mxc.o
|
|
||||||
obj-$(CONFIG_IMX_HAVE_PLATFORM_IMX21_HCD) += platform-imx21-hcd.o
|
|
||||||
obj-$(CONFIG_IMX_HAVE_PLATFORM_IMX27_CODA) += platform-imx27-coda.o
|
|
||||||
obj-$(CONFIG_IMX_HAVE_PLATFORM_IMX2_WDT) += platform-imx2-wdt.o
|
|
||||||
obj-y += platform-imx-dma.o
|
|
||||||
obj-$(CONFIG_IMX_HAVE_PLATFORM_IMX_FB) += platform-imx-fb.o
|
|
||||||
obj-$(CONFIG_IMX_HAVE_PLATFORM_IMX_I2C) += platform-imx-i2c.o
|
|
||||||
obj-$(CONFIG_IMX_HAVE_PLATFORM_IMX_KEYPAD) += platform-imx-keypad.o
|
|
||||||
obj-$(CONFIG_IMX_HAVE_PLATFORM_PATA_IMX) += platform-pata_imx.o
|
|
||||||
obj-$(CONFIG_IMX_HAVE_PLATFORM_IMX_SSI) += platform-imx-ssi.o
|
|
||||||
obj-$(CONFIG_IMX_HAVE_PLATFORM_IMX_UART) += platform-imx-uart.o
|
|
||||||
obj-$(CONFIG_IMX_HAVE_PLATFORM_IPU_CORE) += platform-ipu-core.o
|
|
||||||
obj-$(CONFIG_IMX_HAVE_PLATFORM_MX2_CAMERA) += platform-mx2-camera.o
|
|
||||||
obj-$(CONFIG_IMX_HAVE_PLATFORM_MXC_EHCI) += platform-mxc-ehci.o
|
|
||||||
obj-$(CONFIG_IMX_HAVE_PLATFORM_MXC_MMC) += platform-mxc-mmc.o
|
|
||||||
obj-$(CONFIG_IMX_HAVE_PLATFORM_MXC_NAND) += platform-mxc_nand.o
|
|
||||||
obj-$(CONFIG_IMX_HAVE_PLATFORM_MXC_RTC) += platform-mxc_rtc.o
|
|
||||||
obj-$(CONFIG_IMX_HAVE_PLATFORM_MXC_W1) += platform-mxc_w1.o
|
|
||||||
obj-$(CONFIG_IMX_HAVE_PLATFORM_SDHCI_ESDHC_IMX) += platform-sdhci-esdhc-imx.o
|
|
||||||
obj-$(CONFIG_IMX_HAVE_PLATFORM_SPI_IMX) += platform-spi_imx.o
|
|
||||||
obj-$(CONFIG_IMX_HAVE_PLATFORM_MX2_EMMA) += platform-mx2-emma.o
|
|
|
@ -1,293 +0,0 @@
|
||||||
/* SPDX-License-Identifier: GPL-2.0-only */
|
|
||||||
/*
|
|
||||||
* Copyright (C) 2009-2010 Pengutronix
|
|
||||||
* Uwe Kleine-Koenig <u.kleine-koenig@pengutronix.de>
|
|
||||||
*/
|
|
||||||
#include <linux/kernel.h>
|
|
||||||
#include <linux/platform_device.h>
|
|
||||||
#include <linux/init.h>
|
|
||||||
#include <linux/gpio/machine.h>
|
|
||||||
#include <linux/platform_data/dma-imx-sdma.h>
|
|
||||||
|
|
||||||
extern struct device mxc_aips_bus;
|
|
||||||
extern struct device mxc_ahb_bus;
|
|
||||||
|
|
||||||
static inline struct platform_device *imx_add_platform_device_dmamask(
|
|
||||||
const char *name, int id,
|
|
||||||
const struct resource *res, unsigned int num_resources,
|
|
||||||
const void *data, size_t size_data, u64 dmamask)
|
|
||||||
{
|
|
||||||
struct platform_device_info pdevinfo = {
|
|
||||||
.name = name,
|
|
||||||
.id = id,
|
|
||||||
.res = res,
|
|
||||||
.num_res = num_resources,
|
|
||||||
.data = data,
|
|
||||||
.size_data = size_data,
|
|
||||||
.dma_mask = dmamask,
|
|
||||||
};
|
|
||||||
return platform_device_register_full(&pdevinfo);
|
|
||||||
}
|
|
||||||
|
|
||||||
static inline struct platform_device *imx_add_platform_device(
|
|
||||||
const char *name, int id,
|
|
||||||
const struct resource *res, unsigned int num_resources,
|
|
||||||
const void *data, size_t size_data)
|
|
||||||
{
|
|
||||||
return imx_add_platform_device_dmamask(
|
|
||||||
name, id, res, num_resources, data, size_data, 0);
|
|
||||||
}
|
|
||||||
|
|
||||||
#include <linux/fec.h>
|
|
||||||
struct imx_fec_data {
|
|
||||||
const char *devid;
|
|
||||||
resource_size_t iobase;
|
|
||||||
resource_size_t irq;
|
|
||||||
};
|
|
||||||
struct platform_device *__init imx_add_fec(
|
|
||||||
const struct imx_fec_data *data,
|
|
||||||
const struct fec_platform_data *pdata);
|
|
||||||
|
|
||||||
struct imx_flexcan_data {
|
|
||||||
int id;
|
|
||||||
resource_size_t iobase;
|
|
||||||
resource_size_t iosize;
|
|
||||||
resource_size_t irq;
|
|
||||||
};
|
|
||||||
struct platform_device *__init imx_add_flexcan(
|
|
||||||
const struct imx_flexcan_data *data);
|
|
||||||
|
|
||||||
#include <linux/fsl_devices.h>
|
|
||||||
struct imx_fsl_usb2_udc_data {
|
|
||||||
const char *devid;
|
|
||||||
resource_size_t iobase;
|
|
||||||
resource_size_t irq;
|
|
||||||
};
|
|
||||||
struct platform_device *__init imx_add_fsl_usb2_udc(
|
|
||||||
const struct imx_fsl_usb2_udc_data *data,
|
|
||||||
const struct fsl_usb2_platform_data *pdata);
|
|
||||||
|
|
||||||
#include <linux/gpio_keys.h>
|
|
||||||
struct platform_device *__init imx_add_gpio_keys(
|
|
||||||
const struct gpio_keys_platform_data *pdata);
|
|
||||||
|
|
||||||
#include <linux/platform_data/usb-mx2.h>
|
|
||||||
struct imx_imx21_hcd_data {
|
|
||||||
resource_size_t iobase;
|
|
||||||
resource_size_t irq;
|
|
||||||
};
|
|
||||||
struct platform_device *__init imx_add_imx21_hcd(
|
|
||||||
const struct imx_imx21_hcd_data *data,
|
|
||||||
const struct mx21_usbh_platform_data *pdata);
|
|
||||||
|
|
||||||
struct imx_imx27_coda_data {
|
|
||||||
resource_size_t iobase;
|
|
||||||
resource_size_t iosize;
|
|
||||||
resource_size_t irq;
|
|
||||||
};
|
|
||||||
struct platform_device *__init imx_add_imx27_coda(
|
|
||||||
const struct imx_imx27_coda_data *data);
|
|
||||||
|
|
||||||
struct imx_imx2_wdt_data {
|
|
||||||
int id;
|
|
||||||
resource_size_t iobase;
|
|
||||||
resource_size_t iosize;
|
|
||||||
};
|
|
||||||
struct platform_device *__init imx_add_imx2_wdt(
|
|
||||||
const struct imx_imx2_wdt_data *data);
|
|
||||||
|
|
||||||
struct imx_imxdi_rtc_data {
|
|
||||||
resource_size_t iobase;
|
|
||||||
resource_size_t irq;
|
|
||||||
};
|
|
||||||
struct platform_device *__init imx_add_imxdi_rtc(
|
|
||||||
const struct imx_imxdi_rtc_data *data);
|
|
||||||
|
|
||||||
#include <linux/platform_data/video-imxfb.h>
|
|
||||||
struct imx_imx_fb_data {
|
|
||||||
const char *devid;
|
|
||||||
resource_size_t iobase;
|
|
||||||
resource_size_t iosize;
|
|
||||||
resource_size_t irq;
|
|
||||||
};
|
|
||||||
struct platform_device *__init imx_add_imx_fb(
|
|
||||||
const struct imx_imx_fb_data *data,
|
|
||||||
const struct imx_fb_platform_data *pdata);
|
|
||||||
|
|
||||||
#include <linux/platform_data/i2c-imx.h>
|
|
||||||
struct imx_imx_i2c_data {
|
|
||||||
const char *devid;
|
|
||||||
int id;
|
|
||||||
resource_size_t iobase;
|
|
||||||
resource_size_t iosize;
|
|
||||||
resource_size_t irq;
|
|
||||||
};
|
|
||||||
struct platform_device *__init imx_add_imx_i2c(
|
|
||||||
const struct imx_imx_i2c_data *data,
|
|
||||||
const struct imxi2c_platform_data *pdata);
|
|
||||||
|
|
||||||
#include <linux/input/matrix_keypad.h>
|
|
||||||
struct imx_imx_keypad_data {
|
|
||||||
resource_size_t iobase;
|
|
||||||
resource_size_t iosize;
|
|
||||||
resource_size_t irq;
|
|
||||||
};
|
|
||||||
struct platform_device *__init imx_add_imx_keypad(
|
|
||||||
const struct imx_imx_keypad_data *data,
|
|
||||||
const struct matrix_keymap_data *pdata);
|
|
||||||
|
|
||||||
#include <linux/platform_data/asoc-imx-ssi.h>
|
|
||||||
struct imx_imx_ssi_data {
|
|
||||||
int id;
|
|
||||||
resource_size_t iobase;
|
|
||||||
resource_size_t iosize;
|
|
||||||
resource_size_t irq;
|
|
||||||
resource_size_t dmatx0;
|
|
||||||
resource_size_t dmarx0;
|
|
||||||
resource_size_t dmatx1;
|
|
||||||
resource_size_t dmarx1;
|
|
||||||
};
|
|
||||||
struct platform_device *__init imx_add_imx_ssi(
|
|
||||||
const struct imx_imx_ssi_data *data,
|
|
||||||
const struct imx_ssi_platform_data *pdata);
|
|
||||||
|
|
||||||
#include <linux/platform_data/serial-imx.h>
|
|
||||||
struct imx_imx_uart_1irq_data {
|
|
||||||
int id;
|
|
||||||
resource_size_t iobase;
|
|
||||||
resource_size_t iosize;
|
|
||||||
resource_size_t irq;
|
|
||||||
};
|
|
||||||
struct platform_device *__init imx_add_imx_uart_1irq(
|
|
||||||
const struct imx_imx_uart_1irq_data *data,
|
|
||||||
const struct imxuart_platform_data *pdata);
|
|
||||||
|
|
||||||
#include <linux/platform_data/video-mx3fb.h>
|
|
||||||
#include <linux/platform_data/media/camera-mx3.h>
|
|
||||||
struct imx_ipu_core_data {
|
|
||||||
resource_size_t iobase;
|
|
||||||
resource_size_t synirq;
|
|
||||||
resource_size_t errirq;
|
|
||||||
};
|
|
||||||
struct platform_device *__init imx_add_ipu_core(
|
|
||||||
const struct imx_ipu_core_data *data);
|
|
||||||
struct platform_device *__init imx_alloc_mx3_camera(
|
|
||||||
const struct imx_ipu_core_data *data,
|
|
||||||
const struct mx3_camera_pdata *pdata);
|
|
||||||
struct platform_device *__init imx_add_mx3_sdc_fb(
|
|
||||||
const struct imx_ipu_core_data *data,
|
|
||||||
struct mx3fb_platform_data *pdata);
|
|
||||||
|
|
||||||
#include <linux/platform_data/media/camera-mx2.h>
|
|
||||||
struct imx_mx2_camera_data {
|
|
||||||
const char *devid;
|
|
||||||
resource_size_t iobasecsi;
|
|
||||||
resource_size_t iosizecsi;
|
|
||||||
resource_size_t irqcsi;
|
|
||||||
resource_size_t iobaseemmaprp;
|
|
||||||
resource_size_t iosizeemmaprp;
|
|
||||||
resource_size_t irqemmaprp;
|
|
||||||
};
|
|
||||||
struct platform_device *__init imx_add_mx2_camera(
|
|
||||||
const struct imx_mx2_camera_data *data,
|
|
||||||
const struct mx2_camera_platform_data *pdata);
|
|
||||||
|
|
||||||
|
|
||||||
struct imx_mx2_emma_data {
|
|
||||||
resource_size_t iobase;
|
|
||||||
resource_size_t iosize;
|
|
||||||
resource_size_t irq;
|
|
||||||
};
|
|
||||||
struct platform_device *__init imx_add_mx2_emmaprp(
|
|
||||||
const struct imx_mx2_emma_data *data);
|
|
||||||
|
|
||||||
#include <linux/platform_data/usb-ehci-mxc.h>
|
|
||||||
struct imx_mxc_ehci_data {
|
|
||||||
int id;
|
|
||||||
resource_size_t iobase;
|
|
||||||
resource_size_t irq;
|
|
||||||
};
|
|
||||||
struct platform_device *__init imx_add_mxc_ehci(
|
|
||||||
const struct imx_mxc_ehci_data *data,
|
|
||||||
const struct mxc_usbh_platform_data *pdata);
|
|
||||||
|
|
||||||
#include <linux/platform_data/mmc-mxcmmc.h>
|
|
||||||
struct imx_mxc_mmc_data {
|
|
||||||
const char *devid;
|
|
||||||
int id;
|
|
||||||
resource_size_t iobase;
|
|
||||||
resource_size_t iosize;
|
|
||||||
resource_size_t irq;
|
|
||||||
resource_size_t dmareq;
|
|
||||||
};
|
|
||||||
struct platform_device *__init imx_add_mxc_mmc(
|
|
||||||
const struct imx_mxc_mmc_data *data,
|
|
||||||
const struct imxmmc_platform_data *pdata);
|
|
||||||
|
|
||||||
#include <linux/platform_data/mtd-mxc_nand.h>
|
|
||||||
struct imx_mxc_nand_data {
|
|
||||||
const char *devid;
|
|
||||||
/*
|
|
||||||
* id is traditionally 0, but -1 is more appropriate. We use -1 for new
|
|
||||||
* machines but don't change existing devices as the nand device usually
|
|
||||||
* appears in the kernel command line to pass its partitioning.
|
|
||||||
*/
|
|
||||||
int id;
|
|
||||||
resource_size_t iobase;
|
|
||||||
resource_size_t iosize;
|
|
||||||
resource_size_t axibase;
|
|
||||||
resource_size_t irq;
|
|
||||||
};
|
|
||||||
struct platform_device *__init imx_add_mxc_nand(
|
|
||||||
const struct imx_mxc_nand_data *data,
|
|
||||||
const struct mxc_nand_platform_data *pdata);
|
|
||||||
|
|
||||||
struct imx_pata_imx_data {
|
|
||||||
resource_size_t iobase;
|
|
||||||
resource_size_t iosize;
|
|
||||||
resource_size_t irq;
|
|
||||||
};
|
|
||||||
struct platform_device *__init imx_add_pata_imx(
|
|
||||||
const struct imx_pata_imx_data *data);
|
|
||||||
|
|
||||||
/* mxc_rtc */
|
|
||||||
struct imx_mxc_rtc_data {
|
|
||||||
const char *devid;
|
|
||||||
resource_size_t iobase;
|
|
||||||
resource_size_t irq;
|
|
||||||
};
|
|
||||||
struct platform_device *__init imx_add_mxc_rtc(
|
|
||||||
const struct imx_mxc_rtc_data *data);
|
|
||||||
|
|
||||||
/* mxc_w1 */
|
|
||||||
struct imx_mxc_w1_data {
|
|
||||||
resource_size_t iobase;
|
|
||||||
};
|
|
||||||
struct platform_device *__init imx_add_mxc_w1(
|
|
||||||
const struct imx_mxc_w1_data *data);
|
|
||||||
|
|
||||||
#include <linux/platform_data/mmc-esdhc-imx.h>
|
|
||||||
struct imx_sdhci_esdhc_imx_data {
|
|
||||||
const char *devid;
|
|
||||||
int id;
|
|
||||||
resource_size_t iobase;
|
|
||||||
resource_size_t irq;
|
|
||||||
};
|
|
||||||
struct platform_device *__init imx_add_sdhci_esdhc_imx(
|
|
||||||
const struct imx_sdhci_esdhc_imx_data *data,
|
|
||||||
const struct esdhc_platform_data *pdata);
|
|
||||||
|
|
||||||
struct imx_spi_imx_data {
|
|
||||||
const char *devid;
|
|
||||||
int id;
|
|
||||||
resource_size_t iobase;
|
|
||||||
resource_size_t iosize;
|
|
||||||
int irq;
|
|
||||||
};
|
|
||||||
struct platform_device *__init imx_add_spi_imx(
|
|
||||||
const struct imx_spi_imx_data *data, struct gpiod_lookup_table *gtable);
|
|
||||||
|
|
||||||
struct platform_device *imx_add_imx_dma(char *name, resource_size_t iobase,
|
|
||||||
int irq);
|
|
||||||
struct platform_device *imx_add_imx_sdma(char *name,
|
|
||||||
resource_size_t iobase, int irq, struct sdma_platform_data *pdata);
|
|
|
@ -1,35 +0,0 @@
|
||||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
|
||||||
/*
|
|
||||||
* Copyright 2008 Sascha Hauer, kernel@pengutronix.de
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include <linux/kernel.h>
|
|
||||||
#include <linux/slab.h>
|
|
||||||
#include <linux/init.h>
|
|
||||||
#include <linux/err.h>
|
|
||||||
#include <linux/platform_device.h>
|
|
||||||
|
|
||||||
#include "../common.h"
|
|
||||||
#include "devices-common.h"
|
|
||||||
|
|
||||||
struct device mxc_aips_bus = {
|
|
||||||
.init_name = "mxc_aips",
|
|
||||||
};
|
|
||||||
|
|
||||||
struct device mxc_ahb_bus = {
|
|
||||||
.init_name = "mxc_ahb",
|
|
||||||
};
|
|
||||||
|
|
||||||
int __init mxc_device_init(void)
|
|
||||||
{
|
|
||||||
int ret;
|
|
||||||
|
|
||||||
ret = device_register(&mxc_aips_bus);
|
|
||||||
if (ret < 0)
|
|
||||||
goto done;
|
|
||||||
|
|
||||||
ret = device_register(&mxc_ahb_bus);
|
|
||||||
|
|
||||||
done:
|
|
||||||
return ret;
|
|
||||||
}
|
|
|
@ -1,49 +0,0 @@
|
||||||
// SPDX-License-Identifier: GPL-2.0-only
|
|
||||||
/*
|
|
||||||
* Copyright (C) 2010 Pengutronix
|
|
||||||
* Uwe Kleine-Koenig <u.kleine-koenig@pengutronix.de>
|
|
||||||
*/
|
|
||||||
#include <linux/dma-mapping.h>
|
|
||||||
#include <linux/sizes.h>
|
|
||||||
|
|
||||||
#include "../hardware.h"
|
|
||||||
#include "devices-common.h"
|
|
||||||
|
|
||||||
#define imx_fec_data_entry_single(soc, _devid) \
|
|
||||||
{ \
|
|
||||||
.devid = _devid, \
|
|
||||||
.iobase = soc ## _FEC_BASE_ADDR, \
|
|
||||||
.irq = soc ## _INT_FEC, \
|
|
||||||
}
|
|
||||||
|
|
||||||
#ifdef CONFIG_SOC_IMX27
|
|
||||||
const struct imx_fec_data imx27_fec_data __initconst =
|
|
||||||
imx_fec_data_entry_single(MX27, "imx27-fec");
|
|
||||||
#endif /* ifdef CONFIG_SOC_IMX27 */
|
|
||||||
|
|
||||||
#ifdef CONFIG_SOC_IMX35
|
|
||||||
/* i.mx35 has the i.mx27 type fec */
|
|
||||||
const struct imx_fec_data imx35_fec_data __initconst =
|
|
||||||
imx_fec_data_entry_single(MX35, "imx27-fec");
|
|
||||||
#endif
|
|
||||||
|
|
||||||
struct platform_device *__init imx_add_fec(
|
|
||||||
const struct imx_fec_data *data,
|
|
||||||
const struct fec_platform_data *pdata)
|
|
||||||
{
|
|
||||||
struct resource res[] = {
|
|
||||||
{
|
|
||||||
.start = data->iobase,
|
|
||||||
.end = data->iobase + SZ_4K - 1,
|
|
||||||
.flags = IORESOURCE_MEM,
|
|
||||||
}, {
|
|
||||||
.start = data->irq,
|
|
||||||
.end = data->irq,
|
|
||||||
.flags = IORESOURCE_IRQ,
|
|
||||||
},
|
|
||||||
};
|
|
||||||
|
|
||||||
return imx_add_platform_device_dmamask(data->devid, 0,
|
|
||||||
res, ARRAY_SIZE(res),
|
|
||||||
pdata, sizeof(*pdata), DMA_BIT_MASK(32));
|
|
||||||
}
|
|
|
@ -1,45 +0,0 @@
|
||||||
// SPDX-License-Identifier: GPL-2.0-only
|
|
||||||
/*
|
|
||||||
* Copyright (C) 2010 Pengutronix, Marc Kleine-Budde <kernel@pengutronix.de>
|
|
||||||
*/
|
|
||||||
#include "../hardware.h"
|
|
||||||
#include "devices-common.h"
|
|
||||||
|
|
||||||
#define imx_flexcan_data_entry_single(soc, _id, _hwid, _size) \
|
|
||||||
{ \
|
|
||||||
.id = _id, \
|
|
||||||
.iobase = soc ## _CAN ## _hwid ## _BASE_ADDR, \
|
|
||||||
.iosize = _size, \
|
|
||||||
.irq = soc ## _INT_CAN ## _hwid, \
|
|
||||||
}
|
|
||||||
|
|
||||||
#define imx_flexcan_data_entry(soc, _id, _hwid, _size) \
|
|
||||||
[_id] = imx_flexcan_data_entry_single(soc, _id, _hwid, _size)
|
|
||||||
|
|
||||||
#ifdef CONFIG_SOC_IMX35
|
|
||||||
const struct imx_flexcan_data imx35_flexcan_data[] __initconst = {
|
|
||||||
#define imx35_flexcan_data_entry(_id, _hwid) \
|
|
||||||
imx_flexcan_data_entry(MX35, _id, _hwid, SZ_16K)
|
|
||||||
imx35_flexcan_data_entry(0, 1),
|
|
||||||
imx35_flexcan_data_entry(1, 2),
|
|
||||||
};
|
|
||||||
#endif /* ifdef CONFIG_SOC_IMX35 */
|
|
||||||
|
|
||||||
struct platform_device *__init imx_add_flexcan(
|
|
||||||
const struct imx_flexcan_data *data)
|
|
||||||
{
|
|
||||||
struct resource res[] = {
|
|
||||||
{
|
|
||||||
.start = data->iobase,
|
|
||||||
.end = data->iobase + data->iosize - 1,
|
|
||||||
.flags = IORESOURCE_MEM,
|
|
||||||
}, {
|
|
||||||
.start = data->irq,
|
|
||||||
.end = data->irq,
|
|
||||||
.flags = IORESOURCE_IRQ,
|
|
||||||
},
|
|
||||||
};
|
|
||||||
|
|
||||||
return imx_add_platform_device("flexcan", data->id,
|
|
||||||
res, ARRAY_SIZE(res), NULL, 0);
|
|
||||||
}
|
|
|
@ -1,51 +0,0 @@
|
||||||
// SPDX-License-Identifier: GPL-2.0-only
|
|
||||||
/*
|
|
||||||
* Copyright (C) 2010 Pengutronix
|
|
||||||
* Uwe Kleine-Koenig <u.kleine-koenig@pengutronix.de>
|
|
||||||
*/
|
|
||||||
#include <linux/dma-mapping.h>
|
|
||||||
|
|
||||||
#include "../hardware.h"
|
|
||||||
#include "devices-common.h"
|
|
||||||
|
|
||||||
#define imx_fsl_usb2_udc_data_entry_single(soc, _devid) \
|
|
||||||
{ \
|
|
||||||
.devid = _devid, \
|
|
||||||
.iobase = soc ## _USB_OTG_BASE_ADDR, \
|
|
||||||
.irq = soc ## _INT_USB_OTG, \
|
|
||||||
}
|
|
||||||
|
|
||||||
#ifdef CONFIG_SOC_IMX27
|
|
||||||
const struct imx_fsl_usb2_udc_data imx27_fsl_usb2_udc_data __initconst =
|
|
||||||
imx_fsl_usb2_udc_data_entry_single(MX27, "imx-udc-mx27");
|
|
||||||
#endif /* ifdef CONFIG_SOC_IMX27 */
|
|
||||||
|
|
||||||
#ifdef CONFIG_SOC_IMX31
|
|
||||||
const struct imx_fsl_usb2_udc_data imx31_fsl_usb2_udc_data __initconst =
|
|
||||||
imx_fsl_usb2_udc_data_entry_single(MX31, "imx-udc-mx27");
|
|
||||||
#endif /* ifdef CONFIG_SOC_IMX31 */
|
|
||||||
|
|
||||||
#ifdef CONFIG_SOC_IMX35
|
|
||||||
const struct imx_fsl_usb2_udc_data imx35_fsl_usb2_udc_data __initconst =
|
|
||||||
imx_fsl_usb2_udc_data_entry_single(MX35, "imx-udc-mx27");
|
|
||||||
#endif /* ifdef CONFIG_SOC_IMX35 */
|
|
||||||
|
|
||||||
struct platform_device *__init imx_add_fsl_usb2_udc(
|
|
||||||
const struct imx_fsl_usb2_udc_data *data,
|
|
||||||
const struct fsl_usb2_platform_data *pdata)
|
|
||||||
{
|
|
||||||
struct resource res[] = {
|
|
||||||
{
|
|
||||||
.start = data->iobase,
|
|
||||||
.end = data->iobase + SZ_512 - 1,
|
|
||||||
.flags = IORESOURCE_MEM,
|
|
||||||
}, {
|
|
||||||
.start = data->irq,
|
|
||||||
.end = data->irq,
|
|
||||||
.flags = IORESOURCE_IRQ,
|
|
||||||
},
|
|
||||||
};
|
|
||||||
return imx_add_platform_device_dmamask(data->devid, -1,
|
|
||||||
res, ARRAY_SIZE(res),
|
|
||||||
pdata, sizeof(*pdata), DMA_BIT_MASK(32));
|
|
||||||
}
|
|
|
@ -1,31 +0,0 @@
|
||||||
// SPDX-License-Identifier: GPL-2.0-only
|
|
||||||
/*
|
|
||||||
* Copyright 2011 Freescale Semiconductor, Inc. All Rights Reserved.
|
|
||||||
* Copyright 2011 Linaro Limited
|
|
||||||
*/
|
|
||||||
#include "devices-common.h"
|
|
||||||
#include "../common.h"
|
|
||||||
|
|
||||||
struct platform_device *__init mxc_register_gpio(char *name, int id,
|
|
||||||
resource_size_t iobase, resource_size_t iosize, int irq, int irq_high)
|
|
||||||
{
|
|
||||||
struct resource res[] = {
|
|
||||||
{
|
|
||||||
.start = iobase,
|
|
||||||
.end = iobase + iosize - 1,
|
|
||||||
.flags = IORESOURCE_MEM,
|
|
||||||
}, {
|
|
||||||
.start = irq,
|
|
||||||
.end = irq,
|
|
||||||
.flags = IORESOURCE_IRQ,
|
|
||||||
}, {
|
|
||||||
.start = irq_high,
|
|
||||||
.end = irq_high,
|
|
||||||
.flags = IORESOURCE_IRQ,
|
|
||||||
},
|
|
||||||
};
|
|
||||||
unsigned int nres;
|
|
||||||
|
|
||||||
nres = irq_high ? ARRAY_SIZE(res) : ARRAY_SIZE(res) - 1;
|
|
||||||
return platform_device_register_resndata(&mxc_aips_bus, name, id, res, nres, NULL, 0);
|
|
||||||
}
|
|
|
@ -1,15 +0,0 @@
|
||||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
|
||||||
/*
|
|
||||||
* Copyright (C) 2010 Freescale Semiconductor, Inc. All Rights Reserved.
|
|
||||||
*/
|
|
||||||
#include <linux/sizes.h>
|
|
||||||
|
|
||||||
#include "../hardware.h"
|
|
||||||
#include "devices-common.h"
|
|
||||||
|
|
||||||
struct platform_device *__init imx_add_gpio_keys(
|
|
||||||
const struct gpio_keys_platform_data *pdata)
|
|
||||||
{
|
|
||||||
return imx_add_platform_device("gpio-keys", -1, NULL,
|
|
||||||
0, pdata, sizeof(*pdata));
|
|
||||||
}
|
|
|
@ -1,44 +0,0 @@
|
||||||
// SPDX-License-Identifier: GPL-2.0-only
|
|
||||||
/*
|
|
||||||
* Copyright (C) 2010 Pengutronix
|
|
||||||
* Uwe Kleine-Koenig <u.kleine-koenig@pengutronix.de>
|
|
||||||
*/
|
|
||||||
#include "devices-common.h"
|
|
||||||
|
|
||||||
struct platform_device __init __maybe_unused *imx_add_imx_dma(char *name,
|
|
||||||
resource_size_t iobase, int irq)
|
|
||||||
{
|
|
||||||
struct resource res[] = {
|
|
||||||
{
|
|
||||||
.start = iobase,
|
|
||||||
.end = iobase + SZ_4K - 1,
|
|
||||||
.flags = IORESOURCE_MEM,
|
|
||||||
}, {
|
|
||||||
.start = irq,
|
|
||||||
.end = irq,
|
|
||||||
.flags = IORESOURCE_IRQ,
|
|
||||||
},
|
|
||||||
};
|
|
||||||
|
|
||||||
return platform_device_register_resndata(&mxc_ahb_bus,
|
|
||||||
name, -1, res, ARRAY_SIZE(res), NULL, 0);
|
|
||||||
}
|
|
||||||
|
|
||||||
struct platform_device __init __maybe_unused *imx_add_imx_sdma(char *name,
|
|
||||||
resource_size_t iobase, int irq, struct sdma_platform_data *pdata)
|
|
||||||
{
|
|
||||||
struct resource res[] = {
|
|
||||||
{
|
|
||||||
.start = iobase,
|
|
||||||
.end = iobase + SZ_16K - 1,
|
|
||||||
.flags = IORESOURCE_MEM,
|
|
||||||
}, {
|
|
||||||
.start = irq,
|
|
||||||
.end = irq,
|
|
||||||
.flags = IORESOURCE_IRQ,
|
|
||||||
},
|
|
||||||
};
|
|
||||||
|
|
||||||
return platform_device_register_resndata(&mxc_ahb_bus, name,
|
|
||||||
-1, res, ARRAY_SIZE(res), pdata, sizeof(*pdata));
|
|
||||||
}
|
|
|
@ -1,47 +0,0 @@
|
||||||
// SPDX-License-Identifier: GPL-2.0-only
|
|
||||||
/*
|
|
||||||
* Copyright (C) 2010 Pengutronix
|
|
||||||
* Uwe Kleine-Koenig <u.kleine-koenig@pengutronix.de>
|
|
||||||
*/
|
|
||||||
#include <linux/dma-mapping.h>
|
|
||||||
|
|
||||||
#include "../hardware.h"
|
|
||||||
#include "devices-common.h"
|
|
||||||
|
|
||||||
#define imx_imx_fb_data_entry_single(soc, _devid, _size) \
|
|
||||||
{ \
|
|
||||||
.devid = _devid, \
|
|
||||||
.iobase = soc ## _LCDC_BASE_ADDR, \
|
|
||||||
.iosize = _size, \
|
|
||||||
.irq = soc ## _INT_LCDC, \
|
|
||||||
}
|
|
||||||
|
|
||||||
#ifdef CONFIG_SOC_IMX21
|
|
||||||
const struct imx_imx_fb_data imx21_imx_fb_data __initconst =
|
|
||||||
imx_imx_fb_data_entry_single(MX21, "imx21-fb", SZ_4K);
|
|
||||||
#endif /* ifdef CONFIG_SOC_IMX21 */
|
|
||||||
|
|
||||||
#ifdef CONFIG_SOC_IMX27
|
|
||||||
const struct imx_imx_fb_data imx27_imx_fb_data __initconst =
|
|
||||||
imx_imx_fb_data_entry_single(MX27, "imx21-fb", SZ_4K);
|
|
||||||
#endif /* ifdef CONFIG_SOC_IMX27 */
|
|
||||||
|
|
||||||
struct platform_device *__init imx_add_imx_fb(
|
|
||||||
const struct imx_imx_fb_data *data,
|
|
||||||
const struct imx_fb_platform_data *pdata)
|
|
||||||
{
|
|
||||||
struct resource res[] = {
|
|
||||||
{
|
|
||||||
.start = data->iobase,
|
|
||||||
.end = data->iobase + data->iosize - 1,
|
|
||||||
.flags = IORESOURCE_MEM,
|
|
||||||
}, {
|
|
||||||
.start = data->irq,
|
|
||||||
.end = data->irq,
|
|
||||||
.flags = IORESOURCE_IRQ,
|
|
||||||
},
|
|
||||||
};
|
|
||||||
return imx_add_platform_device_dmamask(data->devid, 0,
|
|
||||||
res, ARRAY_SIZE(res),
|
|
||||||
pdata, sizeof(*pdata), DMA_BIT_MASK(32));
|
|
||||||
}
|
|
|
@ -1,74 +0,0 @@
|
||||||
// SPDX-License-Identifier: GPL-2.0-only
|
|
||||||
/*
|
|
||||||
* Copyright (C) 2009-2010 Pengutronix
|
|
||||||
* Uwe Kleine-Koenig <u.kleine-koenig@pengutronix.de>
|
|
||||||
*/
|
|
||||||
#include "../hardware.h"
|
|
||||||
#include "devices-common.h"
|
|
||||||
|
|
||||||
#define imx_imx_i2c_data_entry_single(soc, _devid, _id, _hwid, _size) \
|
|
||||||
{ \
|
|
||||||
.devid = _devid, \
|
|
||||||
.id = _id, \
|
|
||||||
.iobase = soc ## _I2C ## _hwid ## _BASE_ADDR, \
|
|
||||||
.iosize = _size, \
|
|
||||||
.irq = soc ## _INT_I2C ## _hwid, \
|
|
||||||
}
|
|
||||||
|
|
||||||
#define imx_imx_i2c_data_entry(soc, _devid, _id, _hwid, _size) \
|
|
||||||
[_id] = imx_imx_i2c_data_entry_single(soc, _devid, _id, _hwid, _size)
|
|
||||||
|
|
||||||
#ifdef CONFIG_SOC_IMX21
|
|
||||||
const struct imx_imx_i2c_data imx21_imx_i2c_data __initconst =
|
|
||||||
imx_imx_i2c_data_entry_single(MX21, "imx21-i2c", 0, , SZ_4K);
|
|
||||||
#endif /* ifdef CONFIG_SOC_IMX21 */
|
|
||||||
|
|
||||||
#ifdef CONFIG_SOC_IMX27
|
|
||||||
const struct imx_imx_i2c_data imx27_imx_i2c_data[] __initconst = {
|
|
||||||
#define imx27_imx_i2c_data_entry(_id, _hwid) \
|
|
||||||
imx_imx_i2c_data_entry(MX27, "imx21-i2c", _id, _hwid, SZ_4K)
|
|
||||||
imx27_imx_i2c_data_entry(0, 1),
|
|
||||||
imx27_imx_i2c_data_entry(1, 2),
|
|
||||||
};
|
|
||||||
#endif /* ifdef CONFIG_SOC_IMX27 */
|
|
||||||
|
|
||||||
#ifdef CONFIG_SOC_IMX31
|
|
||||||
const struct imx_imx_i2c_data imx31_imx_i2c_data[] __initconst = {
|
|
||||||
#define imx31_imx_i2c_data_entry(_id, _hwid) \
|
|
||||||
imx_imx_i2c_data_entry(MX31, "imx21-i2c", _id, _hwid, SZ_4K)
|
|
||||||
imx31_imx_i2c_data_entry(0, 1),
|
|
||||||
imx31_imx_i2c_data_entry(1, 2),
|
|
||||||
imx31_imx_i2c_data_entry(2, 3),
|
|
||||||
};
|
|
||||||
#endif /* ifdef CONFIG_SOC_IMX31 */
|
|
||||||
|
|
||||||
#ifdef CONFIG_SOC_IMX35
|
|
||||||
const struct imx_imx_i2c_data imx35_imx_i2c_data[] __initconst = {
|
|
||||||
#define imx35_imx_i2c_data_entry(_id, _hwid) \
|
|
||||||
imx_imx_i2c_data_entry(MX35, "imx21-i2c", _id, _hwid, SZ_4K)
|
|
||||||
imx35_imx_i2c_data_entry(0, 1),
|
|
||||||
imx35_imx_i2c_data_entry(1, 2),
|
|
||||||
imx35_imx_i2c_data_entry(2, 3),
|
|
||||||
};
|
|
||||||
#endif /* ifdef CONFIG_SOC_IMX35 */
|
|
||||||
|
|
||||||
struct platform_device *__init imx_add_imx_i2c(
|
|
||||||
const struct imx_imx_i2c_data *data,
|
|
||||||
const struct imxi2c_platform_data *pdata)
|
|
||||||
{
|
|
||||||
struct resource res[] = {
|
|
||||||
{
|
|
||||||
.start = data->iobase,
|
|
||||||
.end = data->iobase + data->iosize - 1,
|
|
||||||
.flags = IORESOURCE_MEM,
|
|
||||||
}, {
|
|
||||||
.start = data->irq,
|
|
||||||
.end = data->irq,
|
|
||||||
.flags = IORESOURCE_IRQ,
|
|
||||||
},
|
|
||||||
};
|
|
||||||
|
|
||||||
return imx_add_platform_device(data->devid, data->id,
|
|
||||||
res, ARRAY_SIZE(res),
|
|
||||||
pdata, sizeof(*pdata));
|
|
||||||
}
|
|
|
@ -1,54 +0,0 @@
|
||||||
// SPDX-License-Identifier: GPL-2.0-only
|
|
||||||
/*
|
|
||||||
* Copyright (C) 2010 Pengutronix
|
|
||||||
* Uwe Kleine-Koenig <u.kleine-koenig@pengutronix.de>
|
|
||||||
*/
|
|
||||||
#include "../hardware.h"
|
|
||||||
#include "devices-common.h"
|
|
||||||
|
|
||||||
#define imx_imx_keypad_data_entry_single(soc, _size) \
|
|
||||||
{ \
|
|
||||||
.iobase = soc ## _KPP_BASE_ADDR, \
|
|
||||||
.iosize = _size, \
|
|
||||||
.irq = soc ## _INT_KPP, \
|
|
||||||
}
|
|
||||||
|
|
||||||
#ifdef CONFIG_SOC_IMX21
|
|
||||||
const struct imx_imx_keypad_data imx21_imx_keypad_data __initconst =
|
|
||||||
imx_imx_keypad_data_entry_single(MX21, SZ_16);
|
|
||||||
#endif /* ifdef CONFIG_SOC_IMX21 */
|
|
||||||
|
|
||||||
#ifdef CONFIG_SOC_IMX27
|
|
||||||
const struct imx_imx_keypad_data imx27_imx_keypad_data __initconst =
|
|
||||||
imx_imx_keypad_data_entry_single(MX27, SZ_16);
|
|
||||||
#endif /* ifdef CONFIG_SOC_IMX27 */
|
|
||||||
|
|
||||||
#ifdef CONFIG_SOC_IMX31
|
|
||||||
const struct imx_imx_keypad_data imx31_imx_keypad_data __initconst =
|
|
||||||
imx_imx_keypad_data_entry_single(MX31, SZ_16);
|
|
||||||
#endif /* ifdef CONFIG_SOC_IMX31 */
|
|
||||||
|
|
||||||
#ifdef CONFIG_SOC_IMX35
|
|
||||||
const struct imx_imx_keypad_data imx35_imx_keypad_data __initconst =
|
|
||||||
imx_imx_keypad_data_entry_single(MX35, SZ_16);
|
|
||||||
#endif /* ifdef CONFIG_SOC_IMX35 */
|
|
||||||
|
|
||||||
struct platform_device *__init imx_add_imx_keypad(
|
|
||||||
const struct imx_imx_keypad_data *data,
|
|
||||||
const struct matrix_keymap_data *pdata)
|
|
||||||
{
|
|
||||||
struct resource res[] = {
|
|
||||||
{
|
|
||||||
.start = data->iobase,
|
|
||||||
.end = data->iobase + data->iosize - 1,
|
|
||||||
.flags = IORESOURCE_MEM,
|
|
||||||
}, {
|
|
||||||
.start = data->irq,
|
|
||||||
.end = data->irq,
|
|
||||||
.flags = IORESOURCE_IRQ,
|
|
||||||
},
|
|
||||||
};
|
|
||||||
|
|
||||||
return imx_add_platform_device("imx-keypad", -1,
|
|
||||||
res, ARRAY_SIZE(res), pdata, sizeof(*pdata));
|
|
||||||
}
|
|
|
@ -1,86 +0,0 @@
|
||||||
// SPDX-License-Identifier: GPL-2.0-only
|
|
||||||
/*
|
|
||||||
* Copyright (C) 2010 Pengutronix
|
|
||||||
* Uwe Kleine-Koenig <u.kleine-koenig@pengutronix.de>
|
|
||||||
*/
|
|
||||||
#include "../hardware.h"
|
|
||||||
#include "devices-common.h"
|
|
||||||
|
|
||||||
#define imx_imx_ssi_data_entry(soc, _id, _hwid, _size) \
|
|
||||||
[_id] = { \
|
|
||||||
.id = _id, \
|
|
||||||
.iobase = soc ## _SSI ## _hwid ## _BASE_ADDR, \
|
|
||||||
.iosize = _size, \
|
|
||||||
.irq = soc ## _INT_SSI ## _hwid, \
|
|
||||||
.dmatx0 = soc ## _DMA_REQ_SSI ## _hwid ## _TX0, \
|
|
||||||
.dmarx0 = soc ## _DMA_REQ_SSI ## _hwid ## _RX0, \
|
|
||||||
.dmatx1 = soc ## _DMA_REQ_SSI ## _hwid ## _TX1, \
|
|
||||||
.dmarx1 = soc ## _DMA_REQ_SSI ## _hwid ## _RX1, \
|
|
||||||
}
|
|
||||||
|
|
||||||
#ifdef CONFIG_SOC_IMX21
|
|
||||||
const struct imx_imx_ssi_data imx21_imx_ssi_data[] __initconst = {
|
|
||||||
#define imx21_imx_ssi_data_entry(_id, _hwid) \
|
|
||||||
imx_imx_ssi_data_entry(MX21, _id, _hwid, SZ_4K)
|
|
||||||
imx21_imx_ssi_data_entry(0, 1),
|
|
||||||
imx21_imx_ssi_data_entry(1, 2),
|
|
||||||
};
|
|
||||||
#endif /* ifdef CONFIG_SOC_IMX21 */
|
|
||||||
|
|
||||||
#ifdef CONFIG_SOC_IMX27
|
|
||||||
const struct imx_imx_ssi_data imx27_imx_ssi_data[] __initconst = {
|
|
||||||
#define imx27_imx_ssi_data_entry(_id, _hwid) \
|
|
||||||
imx_imx_ssi_data_entry(MX27, _id, _hwid, SZ_4K)
|
|
||||||
imx27_imx_ssi_data_entry(0, 1),
|
|
||||||
imx27_imx_ssi_data_entry(1, 2),
|
|
||||||
};
|
|
||||||
#endif /* ifdef CONFIG_SOC_IMX27 */
|
|
||||||
|
|
||||||
#ifdef CONFIG_SOC_IMX31
|
|
||||||
const struct imx_imx_ssi_data imx31_imx_ssi_data[] __initconst = {
|
|
||||||
#define imx31_imx_ssi_data_entry(_id, _hwid) \
|
|
||||||
imx_imx_ssi_data_entry(MX31, _id, _hwid, SZ_4K)
|
|
||||||
imx31_imx_ssi_data_entry(0, 1),
|
|
||||||
imx31_imx_ssi_data_entry(1, 2),
|
|
||||||
};
|
|
||||||
#endif /* ifdef CONFIG_SOC_IMX31 */
|
|
||||||
|
|
||||||
#ifdef CONFIG_SOC_IMX35
|
|
||||||
const struct imx_imx_ssi_data imx35_imx_ssi_data[] __initconst = {
|
|
||||||
#define imx35_imx_ssi_data_entry(_id, _hwid) \
|
|
||||||
imx_imx_ssi_data_entry(MX35, _id, _hwid, SZ_4K)
|
|
||||||
imx35_imx_ssi_data_entry(0, 1),
|
|
||||||
imx35_imx_ssi_data_entry(1, 2),
|
|
||||||
};
|
|
||||||
#endif /* ifdef CONFIG_SOC_IMX35 */
|
|
||||||
|
|
||||||
struct platform_device *__init imx_add_imx_ssi(
|
|
||||||
const struct imx_imx_ssi_data *data,
|
|
||||||
const struct imx_ssi_platform_data *pdata)
|
|
||||||
{
|
|
||||||
struct resource res[] = {
|
|
||||||
{
|
|
||||||
.start = data->iobase,
|
|
||||||
.end = data->iobase + data->iosize - 1,
|
|
||||||
.flags = IORESOURCE_MEM,
|
|
||||||
}, {
|
|
||||||
.start = data->irq,
|
|
||||||
.end = data->irq,
|
|
||||||
.flags = IORESOURCE_IRQ,
|
|
||||||
},
|
|
||||||
#define DMARES(_name) { \
|
|
||||||
.name = #_name, \
|
|
||||||
.start = data->dma ## _name, \
|
|
||||||
.end = data->dma ## _name, \
|
|
||||||
.flags = IORESOURCE_DMA, \
|
|
||||||
}
|
|
||||||
DMARES(tx0),
|
|
||||||
DMARES(rx0),
|
|
||||||
DMARES(tx1),
|
|
||||||
DMARES(rx1),
|
|
||||||
};
|
|
||||||
|
|
||||||
return imx_add_platform_device("imx-ssi", data->id,
|
|
||||||
res, ARRAY_SIZE(res),
|
|
||||||
pdata, sizeof(*pdata));
|
|
||||||
}
|
|
|
@ -1,92 +0,0 @@
|
||||||
// SPDX-License-Identifier: GPL-2.0-only
|
|
||||||
/*
|
|
||||||
* Copyright (C) 2009-2010 Pengutronix
|
|
||||||
* Uwe Kleine-Koenig <u.kleine-koenig@pengutronix.de>
|
|
||||||
*/
|
|
||||||
#include "../hardware.h"
|
|
||||||
#include "devices-common.h"
|
|
||||||
|
|
||||||
#define imx_imx_uart_3irq_data_entry(soc, _id, _hwid, _size) \
|
|
||||||
[_id] = { \
|
|
||||||
.id = _id, \
|
|
||||||
.iobase = soc ## _UART ## _hwid ## _BASE_ADDR, \
|
|
||||||
.iosize = _size, \
|
|
||||||
.irqrx = soc ## _INT_UART ## _hwid ## RX, \
|
|
||||||
.irqtx = soc ## _INT_UART ## _hwid ## TX, \
|
|
||||||
.irqrts = soc ## _INT_UART ## _hwid ## RTS, \
|
|
||||||
}
|
|
||||||
|
|
||||||
#define imx_imx_uart_1irq_data_entry(soc, _id, _hwid, _size) \
|
|
||||||
[_id] = { \
|
|
||||||
.id = _id, \
|
|
||||||
.iobase = soc ## _UART ## _hwid ## _BASE_ADDR, \
|
|
||||||
.iosize = _size, \
|
|
||||||
.irq = soc ## _INT_UART ## _hwid, \
|
|
||||||
}
|
|
||||||
|
|
||||||
#ifdef CONFIG_SOC_IMX21
|
|
||||||
const struct imx_imx_uart_1irq_data imx21_imx_uart_data[] __initconst = {
|
|
||||||
#define imx21_imx_uart_data_entry(_id, _hwid) \
|
|
||||||
imx_imx_uart_1irq_data_entry(MX21, _id, _hwid, SZ_4K)
|
|
||||||
imx21_imx_uart_data_entry(0, 1),
|
|
||||||
imx21_imx_uart_data_entry(1, 2),
|
|
||||||
imx21_imx_uart_data_entry(2, 3),
|
|
||||||
imx21_imx_uart_data_entry(3, 4),
|
|
||||||
};
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef CONFIG_SOC_IMX27
|
|
||||||
const struct imx_imx_uart_1irq_data imx27_imx_uart_data[] __initconst = {
|
|
||||||
#define imx27_imx_uart_data_entry(_id, _hwid) \
|
|
||||||
imx_imx_uart_1irq_data_entry(MX27, _id, _hwid, SZ_4K)
|
|
||||||
imx27_imx_uart_data_entry(0, 1),
|
|
||||||
imx27_imx_uart_data_entry(1, 2),
|
|
||||||
imx27_imx_uart_data_entry(2, 3),
|
|
||||||
imx27_imx_uart_data_entry(3, 4),
|
|
||||||
imx27_imx_uart_data_entry(4, 5),
|
|
||||||
imx27_imx_uart_data_entry(5, 6),
|
|
||||||
};
|
|
||||||
#endif /* ifdef CONFIG_SOC_IMX27 */
|
|
||||||
|
|
||||||
#ifdef CONFIG_SOC_IMX31
|
|
||||||
const struct imx_imx_uart_1irq_data imx31_imx_uart_data[] __initconst = {
|
|
||||||
#define imx31_imx_uart_data_entry(_id, _hwid) \
|
|
||||||
imx_imx_uart_1irq_data_entry(MX31, _id, _hwid, SZ_4K)
|
|
||||||
imx31_imx_uart_data_entry(0, 1),
|
|
||||||
imx31_imx_uart_data_entry(1, 2),
|
|
||||||
imx31_imx_uart_data_entry(2, 3),
|
|
||||||
imx31_imx_uart_data_entry(3, 4),
|
|
||||||
imx31_imx_uart_data_entry(4, 5),
|
|
||||||
};
|
|
||||||
#endif /* ifdef CONFIG_SOC_IMX31 */
|
|
||||||
|
|
||||||
#ifdef CONFIG_SOC_IMX35
|
|
||||||
const struct imx_imx_uart_1irq_data imx35_imx_uart_data[] __initconst = {
|
|
||||||
#define imx35_imx_uart_data_entry(_id, _hwid) \
|
|
||||||
imx_imx_uart_1irq_data_entry(MX35, _id, _hwid, SZ_16K)
|
|
||||||
imx35_imx_uart_data_entry(0, 1),
|
|
||||||
imx35_imx_uart_data_entry(1, 2),
|
|
||||||
imx35_imx_uart_data_entry(2, 3),
|
|
||||||
};
|
|
||||||
#endif /* ifdef CONFIG_SOC_IMX35 */
|
|
||||||
|
|
||||||
struct platform_device *__init imx_add_imx_uart_1irq(
|
|
||||||
const struct imx_imx_uart_1irq_data *data,
|
|
||||||
const struct imxuart_platform_data *pdata)
|
|
||||||
{
|
|
||||||
struct resource res[] = {
|
|
||||||
{
|
|
||||||
.start = data->iobase,
|
|
||||||
.end = data->iobase + data->iosize - 1,
|
|
||||||
.flags = IORESOURCE_MEM,
|
|
||||||
}, {
|
|
||||||
.start = data->irq,
|
|
||||||
.end = data->irq,
|
|
||||||
.flags = IORESOURCE_IRQ,
|
|
||||||
},
|
|
||||||
};
|
|
||||||
|
|
||||||
/* i.mx21 type uart runs on all i.mx except i.mx1 */
|
|
||||||
return imx_add_platform_device("imx21-uart", data->id,
|
|
||||||
res, ARRAY_SIZE(res), pdata, sizeof(*pdata));
|
|
||||||
}
|
|
|
@ -1,52 +0,0 @@
|
||||||
// SPDX-License-Identifier: GPL-2.0-only
|
|
||||||
/*
|
|
||||||
* Copyright (C) 2010 Pengutronix
|
|
||||||
* Uwe Kleine-Koenig <u.kleine-koenig@pengutronix.de>
|
|
||||||
*/
|
|
||||||
#include <linux/sizes.h>
|
|
||||||
|
|
||||||
#include "../hardware.h"
|
|
||||||
#include "devices-common.h"
|
|
||||||
|
|
||||||
#define imx_imx2_wdt_data_entry_single(soc, _id, _hwid, _size) \
|
|
||||||
{ \
|
|
||||||
.id = _id, \
|
|
||||||
.iobase = soc ## _WDOG ## _hwid ## _BASE_ADDR, \
|
|
||||||
.iosize = _size, \
|
|
||||||
}
|
|
||||||
#define imx_imx2_wdt_data_entry(soc, _id, _hwid, _size) \
|
|
||||||
[_id] = imx_imx2_wdt_data_entry_single(soc, _id, _hwid, _size)
|
|
||||||
|
|
||||||
#ifdef CONFIG_SOC_IMX21
|
|
||||||
const struct imx_imx2_wdt_data imx21_imx2_wdt_data __initconst =
|
|
||||||
imx_imx2_wdt_data_entry_single(MX21, 0, , SZ_4K);
|
|
||||||
#endif /* ifdef CONFIG_SOC_IMX21 */
|
|
||||||
|
|
||||||
#ifdef CONFIG_SOC_IMX27
|
|
||||||
const struct imx_imx2_wdt_data imx27_imx2_wdt_data __initconst =
|
|
||||||
imx_imx2_wdt_data_entry_single(MX27, 0, , SZ_4K);
|
|
||||||
#endif /* ifdef CONFIG_SOC_IMX27 */
|
|
||||||
|
|
||||||
#ifdef CONFIG_SOC_IMX31
|
|
||||||
const struct imx_imx2_wdt_data imx31_imx2_wdt_data __initconst =
|
|
||||||
imx_imx2_wdt_data_entry_single(MX31, 0, , SZ_16K);
|
|
||||||
#endif /* ifdef CONFIG_SOC_IMX31 */
|
|
||||||
|
|
||||||
#ifdef CONFIG_SOC_IMX35
|
|
||||||
const struct imx_imx2_wdt_data imx35_imx2_wdt_data __initconst =
|
|
||||||
imx_imx2_wdt_data_entry_single(MX35, 0, , SZ_16K);
|
|
||||||
#endif /* ifdef CONFIG_SOC_IMX35 */
|
|
||||||
|
|
||||||
struct platform_device *__init imx_add_imx2_wdt(
|
|
||||||
const struct imx_imx2_wdt_data *data)
|
|
||||||
{
|
|
||||||
struct resource res[] = {
|
|
||||||
{
|
|
||||||
.start = data->iobase,
|
|
||||||
.end = data->iobase + data->iosize - 1,
|
|
||||||
.flags = IORESOURCE_MEM,
|
|
||||||
},
|
|
||||||
};
|
|
||||||
return imx_add_platform_device("imx2-wdt", data->id,
|
|
||||||
res, ARRAY_SIZE(res), NULL, 0);
|
|
||||||
}
|
|
|
@ -1,38 +0,0 @@
|
||||||
// SPDX-License-Identifier: GPL-2.0-only
|
|
||||||
/*
|
|
||||||
* Copyright (C) 2010 Pengutronix
|
|
||||||
* Uwe Kleine-Koenig <u.kleine-koenig@pengutronix.de>
|
|
||||||
*/
|
|
||||||
#include "../hardware.h"
|
|
||||||
#include "devices-common.h"
|
|
||||||
|
|
||||||
#define imx_imx21_hcd_data_entry_single(soc) \
|
|
||||||
{ \
|
|
||||||
.iobase = soc ## _USBOTG_BASE_ADDR, \
|
|
||||||
.irq = soc ## _INT_USBHOST, \
|
|
||||||
}
|
|
||||||
|
|
||||||
#ifdef CONFIG_SOC_IMX21
|
|
||||||
const struct imx_imx21_hcd_data imx21_imx21_hcd_data __initconst =
|
|
||||||
imx_imx21_hcd_data_entry_single(MX21);
|
|
||||||
#endif /* ifdef CONFIG_SOC_IMX21 */
|
|
||||||
|
|
||||||
struct platform_device *__init imx_add_imx21_hcd(
|
|
||||||
const struct imx_imx21_hcd_data *data,
|
|
||||||
const struct mx21_usbh_platform_data *pdata)
|
|
||||||
{
|
|
||||||
struct resource res[] = {
|
|
||||||
{
|
|
||||||
.start = data->iobase,
|
|
||||||
.end = data->iobase + SZ_8K - 1,
|
|
||||||
.flags = IORESOURCE_MEM,
|
|
||||||
}, {
|
|
||||||
.start = data->irq,
|
|
||||||
.end = data->irq,
|
|
||||||
.flags = IORESOURCE_IRQ,
|
|
||||||
},
|
|
||||||
};
|
|
||||||
return imx_add_platform_device_dmamask("imx21-hcd", 0,
|
|
||||||
res, ARRAY_SIZE(res),
|
|
||||||
pdata, sizeof(*pdata), DMA_BIT_MASK(32));
|
|
||||||
}
|
|
|
@ -1,34 +0,0 @@
|
||||||
// SPDX-License-Identifier: GPL-2.0-only
|
|
||||||
/*
|
|
||||||
* Copyright (C) 2012 Vista Silicon
|
|
||||||
* Javier Martin <javier.martin@vista-silicon.com>
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include "../hardware.h"
|
|
||||||
#include "devices-common.h"
|
|
||||||
|
|
||||||
#ifdef CONFIG_SOC_IMX27
|
|
||||||
const struct imx_imx27_coda_data imx27_coda_data __initconst = {
|
|
||||||
.iobase = MX27_VPU_BASE_ADDR,
|
|
||||||
.iosize = SZ_512,
|
|
||||||
.irq = MX27_INT_VPU,
|
|
||||||
};
|
|
||||||
#endif
|
|
||||||
|
|
||||||
struct platform_device *__init imx_add_imx27_coda(
|
|
||||||
const struct imx_imx27_coda_data *data)
|
|
||||||
{
|
|
||||||
struct resource res[] = {
|
|
||||||
{
|
|
||||||
.start = data->iobase,
|
|
||||||
.end = data->iobase + data->iosize - 1,
|
|
||||||
.flags = IORESOURCE_MEM,
|
|
||||||
}, {
|
|
||||||
.start = data->irq,
|
|
||||||
.end = data->irq,
|
|
||||||
.flags = IORESOURCE_IRQ,
|
|
||||||
},
|
|
||||||
};
|
|
||||||
return imx_add_platform_device_dmamask("coda-imx27", 0, res, 2, NULL,
|
|
||||||
0, DMA_BIT_MASK(32));
|
|
||||||
}
|
|
|
@ -1,127 +0,0 @@
|
||||||
// SPDX-License-Identifier: GPL-2.0-only
|
|
||||||
/*
|
|
||||||
* Copyright (C) 2011 Pengutronix
|
|
||||||
* Uwe Kleine-Koenig <u.kleine-koenig@pengutronix.de>
|
|
||||||
*/
|
|
||||||
#include <linux/dma-mapping.h>
|
|
||||||
|
|
||||||
#include "../hardware.h"
|
|
||||||
#include "devices-common.h"
|
|
||||||
|
|
||||||
#define imx_ipu_core_entry_single(soc) \
|
|
||||||
{ \
|
|
||||||
.iobase = soc ## _IPU_CTRL_BASE_ADDR, \
|
|
||||||
.synirq = soc ## _INT_IPU_SYN, \
|
|
||||||
.errirq = soc ## _INT_IPU_ERR, \
|
|
||||||
}
|
|
||||||
|
|
||||||
#ifdef CONFIG_SOC_IMX31
|
|
||||||
const struct imx_ipu_core_data imx31_ipu_core_data __initconst =
|
|
||||||
imx_ipu_core_entry_single(MX31);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef CONFIG_SOC_IMX35
|
|
||||||
const struct imx_ipu_core_data imx35_ipu_core_data __initconst =
|
|
||||||
imx_ipu_core_entry_single(MX35);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
static struct platform_device *imx_ipu_coredev __initdata;
|
|
||||||
|
|
||||||
struct platform_device *__init imx_add_ipu_core(
|
|
||||||
const struct imx_ipu_core_data *data)
|
|
||||||
{
|
|
||||||
/* The resource order is important! */
|
|
||||||
struct resource res[] = {
|
|
||||||
{
|
|
||||||
.start = data->iobase,
|
|
||||||
.end = data->iobase + 0x5f,
|
|
||||||
.flags = IORESOURCE_MEM,
|
|
||||||
}, {
|
|
||||||
.start = data->iobase + 0x88,
|
|
||||||
.end = data->iobase + 0xb3,
|
|
||||||
.flags = IORESOURCE_MEM,
|
|
||||||
}, {
|
|
||||||
.start = data->synirq,
|
|
||||||
.end = data->synirq,
|
|
||||||
.flags = IORESOURCE_IRQ,
|
|
||||||
}, {
|
|
||||||
.start = data->errirq,
|
|
||||||
.end = data->errirq,
|
|
||||||
.flags = IORESOURCE_IRQ,
|
|
||||||
},
|
|
||||||
};
|
|
||||||
|
|
||||||
return imx_ipu_coredev = imx_add_platform_device("ipu-core", -1,
|
|
||||||
res, ARRAY_SIZE(res), NULL, 0);
|
|
||||||
}
|
|
||||||
|
|
||||||
struct platform_device *__init imx_alloc_mx3_camera(
|
|
||||||
const struct imx_ipu_core_data *data,
|
|
||||||
const struct mx3_camera_pdata *pdata)
|
|
||||||
{
|
|
||||||
struct resource res[] = {
|
|
||||||
{
|
|
||||||
.start = data->iobase + 0x60,
|
|
||||||
.end = data->iobase + 0x87,
|
|
||||||
.flags = IORESOURCE_MEM,
|
|
||||||
},
|
|
||||||
};
|
|
||||||
int ret = -ENOMEM;
|
|
||||||
struct platform_device *pdev;
|
|
||||||
|
|
||||||
if (IS_ERR_OR_NULL(imx_ipu_coredev))
|
|
||||||
return ERR_PTR(-ENODEV);
|
|
||||||
|
|
||||||
pdev = platform_device_alloc("mx3-camera", 0);
|
|
||||||
if (!pdev)
|
|
||||||
return ERR_PTR(-ENOMEM);
|
|
||||||
|
|
||||||
pdev->dev.dma_mask = kmalloc(sizeof(*pdev->dev.dma_mask), GFP_KERNEL);
|
|
||||||
if (!pdev->dev.dma_mask)
|
|
||||||
goto err;
|
|
||||||
|
|
||||||
*pdev->dev.dma_mask = DMA_BIT_MASK(32);
|
|
||||||
pdev->dev.coherent_dma_mask = DMA_BIT_MASK(32);
|
|
||||||
|
|
||||||
ret = platform_device_add_resources(pdev, res, ARRAY_SIZE(res));
|
|
||||||
if (ret)
|
|
||||||
goto err;
|
|
||||||
|
|
||||||
if (pdata) {
|
|
||||||
struct mx3_camera_pdata *copied_pdata;
|
|
||||||
|
|
||||||
ret = platform_device_add_data(pdev, pdata, sizeof(*pdata));
|
|
||||||
if (ret) {
|
|
||||||
err:
|
|
||||||
kfree(pdev->dev.dma_mask);
|
|
||||||
platform_device_put(pdev);
|
|
||||||
return ERR_PTR(-ENODEV);
|
|
||||||
}
|
|
||||||
copied_pdata = dev_get_platdata(&pdev->dev);
|
|
||||||
copied_pdata->dma_dev = &imx_ipu_coredev->dev;
|
|
||||||
}
|
|
||||||
|
|
||||||
return pdev;
|
|
||||||
}
|
|
||||||
|
|
||||||
struct platform_device *__init imx_add_mx3_sdc_fb(
|
|
||||||
const struct imx_ipu_core_data *data,
|
|
||||||
struct mx3fb_platform_data *pdata)
|
|
||||||
{
|
|
||||||
struct resource res[] = {
|
|
||||||
{
|
|
||||||
.start = data->iobase + 0xb4,
|
|
||||||
.end = data->iobase + 0x1bf,
|
|
||||||
.flags = IORESOURCE_MEM,
|
|
||||||
},
|
|
||||||
};
|
|
||||||
|
|
||||||
if (IS_ERR_OR_NULL(imx_ipu_coredev))
|
|
||||||
return ERR_PTR(-ENODEV);
|
|
||||||
|
|
||||||
pdata->dma_dev = &imx_ipu_coredev->dev;
|
|
||||||
|
|
||||||
return imx_add_platform_device_dmamask("mx3_sdc_fb", -1,
|
|
||||||
res, ARRAY_SIZE(res), pdata, sizeof(*pdata),
|
|
||||||
DMA_BIT_MASK(32));
|
|
||||||
}
|
|
|
@ -1,59 +0,0 @@
|
||||||
// SPDX-License-Identifier: GPL-2.0-only
|
|
||||||
/*
|
|
||||||
* Copyright (C) 2010 Pengutronix
|
|
||||||
* Uwe Kleine-Koenig <u.kleine-koenig@pengutronix.de>
|
|
||||||
*/
|
|
||||||
#include "../hardware.h"
|
|
||||||
#include "devices-common.h"
|
|
||||||
|
|
||||||
#define imx_mx2_camera_data_entry_single(soc, _devid) \
|
|
||||||
{ \
|
|
||||||
.devid = _devid, \
|
|
||||||
.iobasecsi = soc ## _CSI_BASE_ADDR, \
|
|
||||||
.iosizecsi = SZ_4K, \
|
|
||||||
.irqcsi = soc ## _INT_CSI, \
|
|
||||||
}
|
|
||||||
#define imx_mx2_camera_data_entry_single_emma(soc, _devid) \
|
|
||||||
{ \
|
|
||||||
.devid = _devid, \
|
|
||||||
.iobasecsi = soc ## _CSI_BASE_ADDR, \
|
|
||||||
.iosizecsi = SZ_32, \
|
|
||||||
.irqcsi = soc ## _INT_CSI, \
|
|
||||||
.iobaseemmaprp = soc ## _EMMAPRP_BASE_ADDR, \
|
|
||||||
.iosizeemmaprp = SZ_32, \
|
|
||||||
.irqemmaprp = soc ## _INT_EMMAPRP, \
|
|
||||||
}
|
|
||||||
|
|
||||||
#ifdef CONFIG_SOC_IMX27
|
|
||||||
const struct imx_mx2_camera_data imx27_mx2_camera_data __initconst =
|
|
||||||
imx_mx2_camera_data_entry_single_emma(MX27, "imx27-camera");
|
|
||||||
#endif /* ifdef CONFIG_SOC_IMX27 */
|
|
||||||
|
|
||||||
struct platform_device *__init imx_add_mx2_camera(
|
|
||||||
const struct imx_mx2_camera_data *data,
|
|
||||||
const struct mx2_camera_platform_data *pdata)
|
|
||||||
{
|
|
||||||
struct resource res[] = {
|
|
||||||
{
|
|
||||||
.start = data->iobasecsi,
|
|
||||||
.end = data->iobasecsi + data->iosizecsi - 1,
|
|
||||||
.flags = IORESOURCE_MEM,
|
|
||||||
}, {
|
|
||||||
.start = data->irqcsi,
|
|
||||||
.end = data->irqcsi,
|
|
||||||
.flags = IORESOURCE_IRQ,
|
|
||||||
}, {
|
|
||||||
.start = data->iobaseemmaprp,
|
|
||||||
.end = data->iobaseemmaprp + data->iosizeemmaprp - 1,
|
|
||||||
.flags = IORESOURCE_MEM,
|
|
||||||
}, {
|
|
||||||
.start = data->irqemmaprp,
|
|
||||||
.end = data->irqemmaprp,
|
|
||||||
.flags = IORESOURCE_IRQ,
|
|
||||||
},
|
|
||||||
};
|
|
||||||
return imx_add_platform_device_dmamask(data->devid, 0,
|
|
||||||
res, data->iobaseemmaprp ? 4 : 2,
|
|
||||||
pdata, sizeof(*pdata), DMA_BIT_MASK(32));
|
|
||||||
}
|
|
||||||
|
|
|
@ -1,37 +0,0 @@
|
||||||
// SPDX-License-Identifier: GPL-2.0-only
|
|
||||||
/*
|
|
||||||
* Copyright (C) 2010 Pengutronix
|
|
||||||
* Uwe Kleine-Koenig <u.kleine-koenig@pengutronix.de>
|
|
||||||
*/
|
|
||||||
#include "../hardware.h"
|
|
||||||
#include "devices-common.h"
|
|
||||||
|
|
||||||
#define imx_mx2_emmaprp_data_entry_single(soc) \
|
|
||||||
{ \
|
|
||||||
.iobase = soc ## _EMMAPRP_BASE_ADDR, \
|
|
||||||
.iosize = SZ_256, \
|
|
||||||
.irq = soc ## _INT_EMMAPRP, \
|
|
||||||
}
|
|
||||||
|
|
||||||
#ifdef CONFIG_SOC_IMX27
|
|
||||||
const struct imx_mx2_emma_data imx27_mx2_emmaprp_data __initconst =
|
|
||||||
imx_mx2_emmaprp_data_entry_single(MX27);
|
|
||||||
#endif /* ifdef CONFIG_SOC_IMX27 */
|
|
||||||
|
|
||||||
struct platform_device *__init imx_add_mx2_emmaprp(
|
|
||||||
const struct imx_mx2_emma_data *data)
|
|
||||||
{
|
|
||||||
struct resource res[] = {
|
|
||||||
{
|
|
||||||
.start = data->iobase,
|
|
||||||
.end = data->iobase + data->iosize - 1,
|
|
||||||
.flags = IORESOURCE_MEM,
|
|
||||||
}, {
|
|
||||||
.start = data->irq,
|
|
||||||
.end = data->irq,
|
|
||||||
.flags = IORESOURCE_IRQ,
|
|
||||||
},
|
|
||||||
};
|
|
||||||
return imx_add_platform_device_dmamask("m2m-emmaprp", 0,
|
|
||||||
res, 2, NULL, 0, DMA_BIT_MASK(32));
|
|
||||||
}
|
|
|
@ -1,61 +0,0 @@
|
||||||
// SPDX-License-Identifier: GPL-2.0-only
|
|
||||||
/*
|
|
||||||
* Copyright (C) 2010 Pengutronix
|
|
||||||
* Uwe Kleine-Koenig <u.kleine-koenig@pengutronix.de>
|
|
||||||
*/
|
|
||||||
#include <linux/dma-mapping.h>
|
|
||||||
|
|
||||||
#include "../hardware.h"
|
|
||||||
#include "devices-common.h"
|
|
||||||
|
|
||||||
#define imx_mxc_ehci_data_entry_single(soc, _id, hs) \
|
|
||||||
{ \
|
|
||||||
.id = _id, \
|
|
||||||
.iobase = soc ## _USB_ ## hs ## _BASE_ADDR, \
|
|
||||||
.irq = soc ## _INT_USB_ ## hs, \
|
|
||||||
}
|
|
||||||
|
|
||||||
#ifdef CONFIG_SOC_IMX27
|
|
||||||
const struct imx_mxc_ehci_data imx27_mxc_ehci_otg_data __initconst =
|
|
||||||
imx_mxc_ehci_data_entry_single(MX27, 0, OTG);
|
|
||||||
const struct imx_mxc_ehci_data imx27_mxc_ehci_hs_data[] __initconst = {
|
|
||||||
imx_mxc_ehci_data_entry_single(MX27, 1, HS1),
|
|
||||||
imx_mxc_ehci_data_entry_single(MX27, 2, HS2),
|
|
||||||
};
|
|
||||||
#endif /* ifdef CONFIG_SOC_IMX27 */
|
|
||||||
|
|
||||||
#ifdef CONFIG_SOC_IMX31
|
|
||||||
const struct imx_mxc_ehci_data imx31_mxc_ehci_otg_data __initconst =
|
|
||||||
imx_mxc_ehci_data_entry_single(MX31, 0, OTG);
|
|
||||||
const struct imx_mxc_ehci_data imx31_mxc_ehci_hs_data[] __initconst = {
|
|
||||||
imx_mxc_ehci_data_entry_single(MX31, 1, HS1),
|
|
||||||
imx_mxc_ehci_data_entry_single(MX31, 2, HS2),
|
|
||||||
};
|
|
||||||
#endif /* ifdef CONFIG_SOC_IMX31 */
|
|
||||||
|
|
||||||
#ifdef CONFIG_SOC_IMX35
|
|
||||||
const struct imx_mxc_ehci_data imx35_mxc_ehci_otg_data __initconst =
|
|
||||||
imx_mxc_ehci_data_entry_single(MX35, 0, OTG);
|
|
||||||
const struct imx_mxc_ehci_data imx35_mxc_ehci_hs_data __initconst =
|
|
||||||
imx_mxc_ehci_data_entry_single(MX35, 1, HS);
|
|
||||||
#endif /* ifdef CONFIG_SOC_IMX35 */
|
|
||||||
|
|
||||||
struct platform_device *__init imx_add_mxc_ehci(
|
|
||||||
const struct imx_mxc_ehci_data *data,
|
|
||||||
const struct mxc_usbh_platform_data *pdata)
|
|
||||||
{
|
|
||||||
struct resource res[] = {
|
|
||||||
{
|
|
||||||
.start = data->iobase,
|
|
||||||
.end = data->iobase + SZ_512 - 1,
|
|
||||||
.flags = IORESOURCE_MEM,
|
|
||||||
}, {
|
|
||||||
.start = data->irq,
|
|
||||||
.end = data->irq,
|
|
||||||
.flags = IORESOURCE_IRQ,
|
|
||||||
},
|
|
||||||
};
|
|
||||||
return imx_add_platform_device_dmamask("mxc-ehci", data->id,
|
|
||||||
res, ARRAY_SIZE(res),
|
|
||||||
pdata, sizeof(*pdata), DMA_BIT_MASK(32));
|
|
||||||
}
|
|
|
@ -1,72 +0,0 @@
|
||||||
// SPDX-License-Identifier: GPL-2.0-only
|
|
||||||
/*
|
|
||||||
* Copyright (C) 2010 Pengutronix
|
|
||||||
* Uwe Kleine-Koenig <u.kleine-koenig@pengutronix.de>
|
|
||||||
*/
|
|
||||||
#include <linux/dma-mapping.h>
|
|
||||||
|
|
||||||
#include "../hardware.h"
|
|
||||||
#include "devices-common.h"
|
|
||||||
|
|
||||||
#define imx_mxc_mmc_data_entry_single(soc, _devid, _id, _hwid, _size) \
|
|
||||||
{ \
|
|
||||||
.devid = _devid, \
|
|
||||||
.id = _id, \
|
|
||||||
.iobase = soc ## _SDHC ## _hwid ## _BASE_ADDR, \
|
|
||||||
.iosize = _size, \
|
|
||||||
.irq = soc ## _INT_SDHC ## _hwid, \
|
|
||||||
.dmareq = soc ## _DMA_REQ_SDHC ## _hwid, \
|
|
||||||
}
|
|
||||||
#define imx_mxc_mmc_data_entry(soc, _devid, _id, _hwid, _size) \
|
|
||||||
[_id] = imx_mxc_mmc_data_entry_single(soc, _devid, _id, _hwid, _size)
|
|
||||||
|
|
||||||
#ifdef CONFIG_SOC_IMX21
|
|
||||||
const struct imx_mxc_mmc_data imx21_mxc_mmc_data[] __initconst = {
|
|
||||||
#define imx21_mxc_mmc_data_entry(_id, _hwid) \
|
|
||||||
imx_mxc_mmc_data_entry(MX21, "imx21-mmc", _id, _hwid, SZ_4K)
|
|
||||||
imx21_mxc_mmc_data_entry(0, 1),
|
|
||||||
imx21_mxc_mmc_data_entry(1, 2),
|
|
||||||
};
|
|
||||||
#endif /* ifdef CONFIG_SOC_IMX21 */
|
|
||||||
|
|
||||||
#ifdef CONFIG_SOC_IMX27
|
|
||||||
const struct imx_mxc_mmc_data imx27_mxc_mmc_data[] __initconst = {
|
|
||||||
#define imx27_mxc_mmc_data_entry(_id, _hwid) \
|
|
||||||
imx_mxc_mmc_data_entry(MX27, "imx21-mmc", _id, _hwid, SZ_4K)
|
|
||||||
imx27_mxc_mmc_data_entry(0, 1),
|
|
||||||
imx27_mxc_mmc_data_entry(1, 2),
|
|
||||||
};
|
|
||||||
#endif /* ifdef CONFIG_SOC_IMX27 */
|
|
||||||
|
|
||||||
#ifdef CONFIG_SOC_IMX31
|
|
||||||
const struct imx_mxc_mmc_data imx31_mxc_mmc_data[] __initconst = {
|
|
||||||
#define imx31_mxc_mmc_data_entry(_id, _hwid) \
|
|
||||||
imx_mxc_mmc_data_entry(MX31, "imx31-mmc", _id, _hwid, SZ_16K)
|
|
||||||
imx31_mxc_mmc_data_entry(0, 1),
|
|
||||||
imx31_mxc_mmc_data_entry(1, 2),
|
|
||||||
};
|
|
||||||
#endif /* ifdef CONFIG_SOC_IMX31 */
|
|
||||||
|
|
||||||
struct platform_device *__init imx_add_mxc_mmc(
|
|
||||||
const struct imx_mxc_mmc_data *data,
|
|
||||||
const struct imxmmc_platform_data *pdata)
|
|
||||||
{
|
|
||||||
struct resource res[] = {
|
|
||||||
{
|
|
||||||
.start = data->iobase,
|
|
||||||
.end = data->iobase + data->iosize - 1,
|
|
||||||
.flags = IORESOURCE_MEM,
|
|
||||||
}, {
|
|
||||||
.start = data->irq,
|
|
||||||
.end = data->irq,
|
|
||||||
.flags = IORESOURCE_IRQ,
|
|
||||||
}, {
|
|
||||||
.start = data->dmareq,
|
|
||||||
.end = data->dmareq,
|
|
||||||
.flags = IORESOURCE_DMA,
|
|
||||||
},
|
|
||||||
};
|
|
||||||
return imx_add_platform_device_dmamask(data->devid, data->id,
|
|
||||||
res, ARRAY_SIZE(res),
|
|
||||||
pdata, sizeof(*pdata), DMA_BIT_MASK(32));
|
|
||||||
}
|
|
|
@ -1,72 +0,0 @@
|
||||||
// SPDX-License-Identifier: GPL-2.0-only
|
|
||||||
/*
|
|
||||||
* Copyright (C) 2009-2010 Pengutronix
|
|
||||||
* Uwe Kleine-Koenig <u.kleine-koenig@pengutronix.de>
|
|
||||||
*/
|
|
||||||
#include <linux/sizes.h>
|
|
||||||
|
|
||||||
#include "../hardware.h"
|
|
||||||
#include "devices-common.h"
|
|
||||||
|
|
||||||
#define imx_mxc_nand_data_entry_single(soc, _devid, _size) \
|
|
||||||
{ \
|
|
||||||
.devid = _devid, \
|
|
||||||
.iobase = soc ## _NFC_BASE_ADDR, \
|
|
||||||
.iosize = _size, \
|
|
||||||
.irq = soc ## _INT_NFC \
|
|
||||||
}
|
|
||||||
|
|
||||||
#define imx_mxc_nandv3_data_entry_single(soc, _devid, _size) \
|
|
||||||
{ \
|
|
||||||
.devid = _devid, \
|
|
||||||
.id = -1, \
|
|
||||||
.iobase = soc ## _NFC_BASE_ADDR, \
|
|
||||||
.iosize = _size, \
|
|
||||||
.axibase = soc ## _NFC_AXI_BASE_ADDR, \
|
|
||||||
.irq = soc ## _INT_NFC \
|
|
||||||
}
|
|
||||||
|
|
||||||
#ifdef CONFIG_SOC_IMX21
|
|
||||||
const struct imx_mxc_nand_data imx21_mxc_nand_data __initconst =
|
|
||||||
imx_mxc_nand_data_entry_single(MX21, "imx21-nand", SZ_4K);
|
|
||||||
#endif /* ifdef CONFIG_SOC_IMX21 */
|
|
||||||
|
|
||||||
#ifdef CONFIG_SOC_IMX27
|
|
||||||
const struct imx_mxc_nand_data imx27_mxc_nand_data __initconst =
|
|
||||||
imx_mxc_nand_data_entry_single(MX27, "imx27-nand", SZ_4K);
|
|
||||||
#endif /* ifdef CONFIG_SOC_IMX27 */
|
|
||||||
|
|
||||||
#ifdef CONFIG_SOC_IMX31
|
|
||||||
const struct imx_mxc_nand_data imx31_mxc_nand_data __initconst =
|
|
||||||
imx_mxc_nand_data_entry_single(MX31, "imx27-nand", SZ_4K);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef CONFIG_SOC_IMX35
|
|
||||||
const struct imx_mxc_nand_data imx35_mxc_nand_data __initconst =
|
|
||||||
imx_mxc_nand_data_entry_single(MX35, "imx25-nand", SZ_8K);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
struct platform_device *__init imx_add_mxc_nand(
|
|
||||||
const struct imx_mxc_nand_data *data,
|
|
||||||
const struct mxc_nand_platform_data *pdata)
|
|
||||||
{
|
|
||||||
/* AXI has to come first, that's how the mxc_nand driver expect it */
|
|
||||||
struct resource res[] = {
|
|
||||||
{
|
|
||||||
.start = data->iobase,
|
|
||||||
.end = data->iobase + data->iosize - 1,
|
|
||||||
.flags = IORESOURCE_MEM,
|
|
||||||
}, {
|
|
||||||
.start = data->irq,
|
|
||||||
.end = data->irq,
|
|
||||||
.flags = IORESOURCE_IRQ,
|
|
||||||
}, {
|
|
||||||
.start = data->axibase,
|
|
||||||
.end = data->axibase + SZ_16K - 1,
|
|
||||||
.flags = IORESOURCE_MEM,
|
|
||||||
},
|
|
||||||
};
|
|
||||||
return imx_add_platform_device(data->devid, data->id,
|
|
||||||
res, ARRAY_SIZE(res) - !data->axibase,
|
|
||||||
pdata, sizeof(*pdata));
|
|
||||||
}
|
|
|
@ -1,43 +0,0 @@
|
||||||
// SPDX-License-Identifier: GPL-2.0-only
|
|
||||||
/*
|
|
||||||
* Copyright (C) 2010-2011 Pengutronix
|
|
||||||
* Uwe Kleine-Koenig <u.kleine-koenig@pengutronix.de>
|
|
||||||
*/
|
|
||||||
#include "../hardware.h"
|
|
||||||
#include "devices-common.h"
|
|
||||||
|
|
||||||
#define imx_mxc_rtc_data_entry_single(soc, _devid) \
|
|
||||||
{ \
|
|
||||||
.devid = _devid, \
|
|
||||||
.iobase = soc ## _RTC_BASE_ADDR, \
|
|
||||||
.irq = soc ## _INT_RTC, \
|
|
||||||
}
|
|
||||||
|
|
||||||
#ifdef CONFIG_SOC_IMX31
|
|
||||||
const struct imx_mxc_rtc_data imx31_mxc_rtc_data __initconst =
|
|
||||||
imx_mxc_rtc_data_entry_single(MX31, "imx21-rtc");
|
|
||||||
#endif /* ifdef CONFIG_SOC_IMX31 */
|
|
||||||
|
|
||||||
#ifdef CONFIG_SOC_IMX35
|
|
||||||
const struct imx_mxc_rtc_data imx35_mxc_rtc_data __initconst =
|
|
||||||
imx_mxc_rtc_data_entry_single(MX35, "imx21-rtc");
|
|
||||||
#endif /* ifdef CONFIG_SOC_IMX35 */
|
|
||||||
|
|
||||||
struct platform_device *__init imx_add_mxc_rtc(
|
|
||||||
const struct imx_mxc_rtc_data *data)
|
|
||||||
{
|
|
||||||
struct resource res[] = {
|
|
||||||
{
|
|
||||||
.start = data->iobase,
|
|
||||||
.end = data->iobase + SZ_16K - 1,
|
|
||||||
.flags = IORESOURCE_MEM,
|
|
||||||
}, {
|
|
||||||
.start = data->irq,
|
|
||||||
.end = data->irq,
|
|
||||||
.flags = IORESOURCE_IRQ,
|
|
||||||
},
|
|
||||||
};
|
|
||||||
|
|
||||||
return imx_add_platform_device(data->devid, -1,
|
|
||||||
res, ARRAY_SIZE(res), NULL, 0);
|
|
||||||
}
|
|
|
@ -1,47 +0,0 @@
|
||||||
// SPDX-License-Identifier: GPL-2.0-only
|
|
||||||
/*
|
|
||||||
* Copyright (C) 2010 Pengutronix
|
|
||||||
* Uwe Kleine-Koenig <u.kleine-koenig@pengutronix.de>
|
|
||||||
*/
|
|
||||||
#include "../hardware.h"
|
|
||||||
#include "devices-common.h"
|
|
||||||
|
|
||||||
#define imx_mxc_w1_data_entry_single(soc) \
|
|
||||||
{ \
|
|
||||||
.iobase = soc ## _OWIRE_BASE_ADDR, \
|
|
||||||
}
|
|
||||||
|
|
||||||
#ifdef CONFIG_SOC_IMX21
|
|
||||||
const struct imx_mxc_w1_data imx21_mxc_w1_data __initconst =
|
|
||||||
imx_mxc_w1_data_entry_single(MX21);
|
|
||||||
#endif /* ifdef CONFIG_SOC_IMX21 */
|
|
||||||
|
|
||||||
#ifdef CONFIG_SOC_IMX27
|
|
||||||
const struct imx_mxc_w1_data imx27_mxc_w1_data __initconst =
|
|
||||||
imx_mxc_w1_data_entry_single(MX27);
|
|
||||||
#endif /* ifdef CONFIG_SOC_IMX27 */
|
|
||||||
|
|
||||||
#ifdef CONFIG_SOC_IMX31
|
|
||||||
const struct imx_mxc_w1_data imx31_mxc_w1_data __initconst =
|
|
||||||
imx_mxc_w1_data_entry_single(MX31);
|
|
||||||
#endif /* ifdef CONFIG_SOC_IMX31 */
|
|
||||||
|
|
||||||
#ifdef CONFIG_SOC_IMX35
|
|
||||||
const struct imx_mxc_w1_data imx35_mxc_w1_data __initconst =
|
|
||||||
imx_mxc_w1_data_entry_single(MX35);
|
|
||||||
#endif /* ifdef CONFIG_SOC_IMX35 */
|
|
||||||
|
|
||||||
struct platform_device *__init imx_add_mxc_w1(
|
|
||||||
const struct imx_mxc_w1_data *data)
|
|
||||||
{
|
|
||||||
struct resource res[] = {
|
|
||||||
{
|
|
||||||
.start = data->iobase,
|
|
||||||
.end = data->iobase + SZ_4K - 1,
|
|
||||||
.flags = IORESOURCE_MEM,
|
|
||||||
},
|
|
||||||
};
|
|
||||||
|
|
||||||
return imx_add_platform_device("mxc_w1", 0,
|
|
||||||
res, ARRAY_SIZE(res), NULL, 0);
|
|
||||||
}
|
|
|
@ -1,45 +0,0 @@
|
||||||
// SPDX-License-Identifier: GPL-2.0-only
|
|
||||||
#include "../hardware.h"
|
|
||||||
#include "devices-common.h"
|
|
||||||
|
|
||||||
#define imx_pata_imx_data_entry_single(soc, _size) \
|
|
||||||
{ \
|
|
||||||
.iobase = soc ## _ATA_BASE_ADDR, \
|
|
||||||
.iosize = _size, \
|
|
||||||
.irq = soc ## _INT_ATA, \
|
|
||||||
}
|
|
||||||
|
|
||||||
#ifdef CONFIG_SOC_IMX27
|
|
||||||
const struct imx_pata_imx_data imx27_pata_imx_data __initconst =
|
|
||||||
imx_pata_imx_data_entry_single(MX27, SZ_4K);
|
|
||||||
#endif /* ifdef CONFIG_SOC_IMX27 */
|
|
||||||
|
|
||||||
#ifdef CONFIG_SOC_IMX31
|
|
||||||
const struct imx_pata_imx_data imx31_pata_imx_data __initconst =
|
|
||||||
imx_pata_imx_data_entry_single(MX31, SZ_16K);
|
|
||||||
#endif /* ifdef CONFIG_SOC_IMX31 */
|
|
||||||
|
|
||||||
#ifdef CONFIG_SOC_IMX35
|
|
||||||
const struct imx_pata_imx_data imx35_pata_imx_data __initconst =
|
|
||||||
imx_pata_imx_data_entry_single(MX35, SZ_16K);
|
|
||||||
#endif /* ifdef CONFIG_SOC_IMX35 */
|
|
||||||
|
|
||||||
struct platform_device *__init imx_add_pata_imx(
|
|
||||||
const struct imx_pata_imx_data *data)
|
|
||||||
{
|
|
||||||
struct resource res[] = {
|
|
||||||
{
|
|
||||||
.start = data->iobase,
|
|
||||||
.end = data->iobase + data->iosize - 1,
|
|
||||||
.flags = IORESOURCE_MEM,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
.start = data->irq,
|
|
||||||
.end = data->irq,
|
|
||||||
.flags = IORESOURCE_IRQ,
|
|
||||||
},
|
|
||||||
};
|
|
||||||
return imx_add_platform_device("pata_imx", -1,
|
|
||||||
res, ARRAY_SIZE(res), NULL, 0);
|
|
||||||
}
|
|
||||||
|
|
|
@ -1,64 +0,0 @@
|
||||||
// SPDX-License-Identifier: GPL-2.0-only
|
|
||||||
/*
|
|
||||||
* Copyright (C) 2010 Pengutronix, Wolfram Sang <kernel@pengutronix.de>
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include <linux/platform_data/mmc-esdhc-imx.h>
|
|
||||||
|
|
||||||
#include "../hardware.h"
|
|
||||||
#include "devices-common.h"
|
|
||||||
|
|
||||||
#define imx_sdhci_esdhc_imx_data_entry_single(soc, _devid, _id, hwid) \
|
|
||||||
{ \
|
|
||||||
.devid = _devid, \
|
|
||||||
.id = _id, \
|
|
||||||
.iobase = soc ## _ESDHC ## hwid ## _BASE_ADDR, \
|
|
||||||
.irq = soc ## _INT_ESDHC ## hwid, \
|
|
||||||
}
|
|
||||||
|
|
||||||
#define imx_sdhci_esdhc_imx_data_entry(soc, devid, id, hwid) \
|
|
||||||
[id] = imx_sdhci_esdhc_imx_data_entry_single(soc, devid, id, hwid)
|
|
||||||
|
|
||||||
#ifdef CONFIG_SOC_IMX35
|
|
||||||
const struct imx_sdhci_esdhc_imx_data
|
|
||||||
imx35_sdhci_esdhc_imx_data[] __initconst = {
|
|
||||||
#define imx35_sdhci_esdhc_imx_data_entry(_id, _hwid) \
|
|
||||||
imx_sdhci_esdhc_imx_data_entry(MX35, "sdhci-esdhc-imx35", _id, _hwid)
|
|
||||||
imx35_sdhci_esdhc_imx_data_entry(0, 1),
|
|
||||||
imx35_sdhci_esdhc_imx_data_entry(1, 2),
|
|
||||||
imx35_sdhci_esdhc_imx_data_entry(2, 3),
|
|
||||||
};
|
|
||||||
#endif /* ifdef CONFIG_SOC_IMX35 */
|
|
||||||
|
|
||||||
static const struct esdhc_platform_data default_esdhc_pdata __initconst = {
|
|
||||||
.wp_type = ESDHC_WP_NONE,
|
|
||||||
.cd_type = ESDHC_CD_NONE,
|
|
||||||
};
|
|
||||||
|
|
||||||
struct platform_device *__init imx_add_sdhci_esdhc_imx(
|
|
||||||
const struct imx_sdhci_esdhc_imx_data *data,
|
|
||||||
const struct esdhc_platform_data *pdata)
|
|
||||||
{
|
|
||||||
struct resource res[] = {
|
|
||||||
{
|
|
||||||
.start = data->iobase,
|
|
||||||
.end = data->iobase + SZ_16K - 1,
|
|
||||||
.flags = IORESOURCE_MEM,
|
|
||||||
}, {
|
|
||||||
.start = data->irq,
|
|
||||||
.end = data->irq,
|
|
||||||
.flags = IORESOURCE_IRQ,
|
|
||||||
},
|
|
||||||
};
|
|
||||||
|
|
||||||
/*
|
|
||||||
* If machine does not provide pdata, use the default one
|
|
||||||
* which means no WP/CD support
|
|
||||||
*/
|
|
||||||
if (!pdata)
|
|
||||||
pdata = &default_esdhc_pdata;
|
|
||||||
|
|
||||||
return imx_add_platform_device_dmamask(data->devid, data->id, res,
|
|
||||||
ARRAY_SIZE(res), pdata, sizeof(*pdata),
|
|
||||||
DMA_BIT_MASK(32));
|
|
||||||
}
|
|
|
@ -1,78 +0,0 @@
|
||||||
// SPDX-License-Identifier: GPL-2.0-only
|
|
||||||
/*
|
|
||||||
* Copyright (C) 2009-2010 Pengutronix
|
|
||||||
* Uwe Kleine-Koenig <u.kleine-koenig@pengutronix.de>
|
|
||||||
*/
|
|
||||||
#include <linux/gpio/machine.h>
|
|
||||||
#include "../hardware.h"
|
|
||||||
#include "devices-common.h"
|
|
||||||
|
|
||||||
#define imx_spi_imx_data_entry_single(soc, type, _devid, _id, hwid, _size) \
|
|
||||||
{ \
|
|
||||||
.devid = _devid, \
|
|
||||||
.id = _id, \
|
|
||||||
.iobase = soc ## _ ## type ## hwid ## _BASE_ADDR, \
|
|
||||||
.iosize = _size, \
|
|
||||||
.irq = soc ## _INT_ ## type ## hwid, \
|
|
||||||
}
|
|
||||||
|
|
||||||
#define imx_spi_imx_data_entry(soc, type, devid, id, hwid, size) \
|
|
||||||
[id] = imx_spi_imx_data_entry_single(soc, type, devid, id, hwid, size)
|
|
||||||
|
|
||||||
#ifdef CONFIG_SOC_IMX21
|
|
||||||
const struct imx_spi_imx_data imx21_cspi_data[] __initconst = {
|
|
||||||
#define imx21_cspi_data_entry(_id, _hwid) \
|
|
||||||
imx_spi_imx_data_entry(MX21, CSPI, "imx21-cspi", _id, _hwid, SZ_4K)
|
|
||||||
imx21_cspi_data_entry(0, 1),
|
|
||||||
imx21_cspi_data_entry(1, 2),
|
|
||||||
};
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef CONFIG_SOC_IMX27
|
|
||||||
const struct imx_spi_imx_data imx27_cspi_data[] __initconst = {
|
|
||||||
#define imx27_cspi_data_entry(_id, _hwid) \
|
|
||||||
imx_spi_imx_data_entry(MX27, CSPI, "imx27-cspi", _id, _hwid, SZ_4K)
|
|
||||||
imx27_cspi_data_entry(0, 1),
|
|
||||||
imx27_cspi_data_entry(1, 2),
|
|
||||||
imx27_cspi_data_entry(2, 3),
|
|
||||||
};
|
|
||||||
#endif /* ifdef CONFIG_SOC_IMX27 */
|
|
||||||
|
|
||||||
#ifdef CONFIG_SOC_IMX31
|
|
||||||
const struct imx_spi_imx_data imx31_cspi_data[] __initconst = {
|
|
||||||
#define imx31_cspi_data_entry(_id, _hwid) \
|
|
||||||
imx_spi_imx_data_entry(MX31, CSPI, "imx31-cspi", _id, _hwid, SZ_4K)
|
|
||||||
imx31_cspi_data_entry(0, 1),
|
|
||||||
imx31_cspi_data_entry(1, 2),
|
|
||||||
imx31_cspi_data_entry(2, 3),
|
|
||||||
};
|
|
||||||
#endif /* ifdef CONFIG_SOC_IMX31 */
|
|
||||||
|
|
||||||
#ifdef CONFIG_SOC_IMX35
|
|
||||||
const struct imx_spi_imx_data imx35_cspi_data[] __initconst = {
|
|
||||||
#define imx35_cspi_data_entry(_id, _hwid) \
|
|
||||||
imx_spi_imx_data_entry(MX35, CSPI, "imx35-cspi", _id, _hwid, SZ_4K)
|
|
||||||
imx35_cspi_data_entry(0, 1),
|
|
||||||
imx35_cspi_data_entry(1, 2),
|
|
||||||
};
|
|
||||||
#endif /* ifdef CONFIG_SOC_IMX35 */
|
|
||||||
|
|
||||||
struct platform_device *__init imx_add_spi_imx(
|
|
||||||
const struct imx_spi_imx_data *data, struct gpiod_lookup_table *gtable)
|
|
||||||
{
|
|
||||||
struct resource res[] = {
|
|
||||||
{
|
|
||||||
.start = data->iobase,
|
|
||||||
.end = data->iobase + data->iosize - 1,
|
|
||||||
.flags = IORESOURCE_MEM,
|
|
||||||
}, {
|
|
||||||
.start = data->irq,
|
|
||||||
.end = data->irq,
|
|
||||||
.flags = IORESOURCE_IRQ,
|
|
||||||
},
|
|
||||||
};
|
|
||||||
if (gtable)
|
|
||||||
gpiod_add_lookup_table(gtable);
|
|
||||||
return imx_add_platform_device(data->devid, data->id,
|
|
||||||
res, ARRAY_SIZE(res), NULL, 0);
|
|
||||||
}
|
|
|
@ -14,7 +14,6 @@
|
||||||
#include <asm/mach/time.h>
|
#include <asm/mach/time.h>
|
||||||
|
|
||||||
#include "common.h"
|
#include "common.h"
|
||||||
#include "devices/devices-common.h"
|
|
||||||
#include "hardware.h"
|
#include "hardware.h"
|
||||||
#include "mx27.h"
|
#include "mx27.h"
|
||||||
|
|
||||||
|
|
|
@ -19,7 +19,6 @@
|
||||||
|
|
||||||
#include "common.h"
|
#include "common.h"
|
||||||
#include "crmregs-imx3.h"
|
#include "crmregs-imx3.h"
|
||||||
#include "devices/devices-common.h"
|
|
||||||
#include "hardware.h"
|
#include "hardware.h"
|
||||||
|
|
||||||
void __iomem *mx3_ccm_base;
|
void __iomem *mx3_ccm_base;
|
||||||
|
|
Loading…
Reference in a new issue