mirror of
https://github.com/hardkernel/linux.git
synced 2026-06-11 13:27:06 +09:00
[ARM] tegra: move sdhci and i2c to generic devices.c
Change-Id: Ib8d500cb868663d851af5e849815bc2a1312f659 Signed-off-by: Erik Gilling <konkers@android.com>
This commit is contained in:
committed by
Colin Cross
parent
1104d84f0f
commit
edad4bb437
@@ -5,6 +5,7 @@ obj-y += clock.o
|
||||
obj-y += timer.o
|
||||
obj-y += gpio.o
|
||||
obj-y += pinmux.o
|
||||
obj-y += devices.o
|
||||
obj-y += powergate.o
|
||||
obj-y += suspend.o
|
||||
obj-y += fuse.o
|
||||
|
||||
216
arch/arm/mach-tegra/devices.c
Normal file
216
arch/arm/mach-tegra/devices.c
Normal file
@@ -0,0 +1,216 @@
|
||||
/*
|
||||
* arch/arm/mach-tegra/devices.c
|
||||
*
|
||||
* Copyright (C) 2010 Google, Inc.
|
||||
*
|
||||
* Author:
|
||||
* Colin Cross <ccross@android.com>
|
||||
* Erik Gilling <ccross@android.com>
|
||||
*
|
||||
* This software is licensed under the terms of the GNU General Public
|
||||
* License version 2, as published by the Free Software Foundation, and
|
||||
* may be copied, distributed, and modified under those terms.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
*/
|
||||
|
||||
|
||||
#include <linux/resource.h>
|
||||
#include <linux/platform_device.h>
|
||||
#include <mach/irqs.h>
|
||||
#include <mach/iomap.h>
|
||||
|
||||
static struct resource i2c_resource1[] = {
|
||||
[0] = {
|
||||
.start = INT_I2C,
|
||||
.end = INT_I2C,
|
||||
.flags = IORESOURCE_IRQ,
|
||||
},
|
||||
[1] = {
|
||||
.start = TEGRA_I2C_BASE,
|
||||
.end = TEGRA_I2C_BASE + TEGRA_I2C_SIZE-1,
|
||||
.flags = IORESOURCE_MEM,
|
||||
},
|
||||
};
|
||||
|
||||
static struct resource i2c_resource2[] = {
|
||||
[0] = {
|
||||
.start = INT_I2C2,
|
||||
.end = INT_I2C2,
|
||||
.flags = IORESOURCE_IRQ,
|
||||
},
|
||||
[1] = {
|
||||
.start = TEGRA_I2C2_BASE,
|
||||
.end = TEGRA_I2C2_BASE + TEGRA_I2C2_SIZE-1,
|
||||
.flags = IORESOURCE_MEM,
|
||||
},
|
||||
};
|
||||
|
||||
static struct resource i2c_resource3[] = {
|
||||
[0] = {
|
||||
.start = INT_I2C3,
|
||||
.end = INT_I2C3,
|
||||
.flags = IORESOURCE_IRQ,
|
||||
},
|
||||
[1] = {
|
||||
.start = TEGRA_I2C3_BASE,
|
||||
.end = TEGRA_I2C3_BASE + TEGRA_I2C3_SIZE-1,
|
||||
.flags = IORESOURCE_MEM,
|
||||
},
|
||||
};
|
||||
|
||||
static struct resource i2c_resource4[] = {
|
||||
[0] = {
|
||||
.start = INT_DVC,
|
||||
.end = INT_DVC,
|
||||
.flags = IORESOURCE_IRQ,
|
||||
},
|
||||
[1] = {
|
||||
.start = TEGRA_DVC_BASE,
|
||||
.end = TEGRA_DVC_BASE + TEGRA_DVC_SIZE-1,
|
||||
.flags = IORESOURCE_MEM,
|
||||
},
|
||||
};
|
||||
|
||||
static struct platform_device tegra_i2c_device1 = {
|
||||
.name = "tegra-i2c",
|
||||
.id = 0,
|
||||
.resource = i2c_resource1,
|
||||
.num_resources = ARRAY_SIZE(i2c_resource1),
|
||||
.dev = {
|
||||
.platform_data = 0,
|
||||
},
|
||||
};
|
||||
|
||||
static struct platform_device tegra_i2c_device2 = {
|
||||
.name = "tegra-i2c",
|
||||
.id = 1,
|
||||
.resource = i2c_resource2,
|
||||
.num_resources = ARRAY_SIZE(i2c_resource2),
|
||||
.dev = {
|
||||
.platform_data = 0,
|
||||
},
|
||||
};
|
||||
|
||||
static struct platform_device tegra_i2c_device3 = {
|
||||
.name = "tegra-i2c",
|
||||
.id = 2,
|
||||
.resource = i2c_resource3,
|
||||
.num_resources = ARRAY_SIZE(i2c_resource3),
|
||||
.dev = {
|
||||
.platform_data = 0,
|
||||
},
|
||||
};
|
||||
|
||||
static struct platform_device tegra_i2c_device4 = {
|
||||
.name = "tegra-i2c",
|
||||
.id = 3,
|
||||
.resource = i2c_resource4,
|
||||
.num_resources = ARRAY_SIZE(i2c_resource4),
|
||||
.dev = {
|
||||
.platform_data = 0,
|
||||
},
|
||||
};
|
||||
|
||||
static struct resource sdhci_resource1[] = {
|
||||
[0] = {
|
||||
.start = INT_SDMMC1,
|
||||
.end = INT_SDMMC1,
|
||||
.flags = IORESOURCE_IRQ,
|
||||
},
|
||||
[1] = {
|
||||
.start = TEGRA_SDMMC1_BASE,
|
||||
.end = TEGRA_SDMMC1_BASE + TEGRA_SDMMC1_SIZE-1,
|
||||
.flags = IORESOURCE_MEM,
|
||||
},
|
||||
};
|
||||
|
||||
static struct resource sdhci_resource2[] = {
|
||||
[0] = {
|
||||
.start = INT_SDMMC2,
|
||||
.end = INT_SDMMC2,
|
||||
.flags = IORESOURCE_IRQ,
|
||||
},
|
||||
[1] = {
|
||||
.start = TEGRA_SDMMC2_BASE,
|
||||
.end = TEGRA_SDMMC2_BASE + TEGRA_SDMMC2_SIZE-1,
|
||||
.flags = IORESOURCE_MEM,
|
||||
},
|
||||
};
|
||||
|
||||
static struct resource sdhci_resource3[] = {
|
||||
[0] = {
|
||||
.start = INT_SDMMC3,
|
||||
.end = INT_SDMMC3,
|
||||
.flags = IORESOURCE_IRQ,
|
||||
},
|
||||
[1] = {
|
||||
.start = TEGRA_SDMMC3_BASE,
|
||||
.end = TEGRA_SDMMC3_BASE + TEGRA_SDMMC3_SIZE-1,
|
||||
.flags = IORESOURCE_MEM,
|
||||
},
|
||||
};
|
||||
|
||||
static struct resource sdhci_resource4[] = {
|
||||
[0] = {
|
||||
.start = INT_SDMMC4,
|
||||
.end = INT_SDMMC4,
|
||||
.flags = IORESOURCE_IRQ,
|
||||
},
|
||||
[1] = {
|
||||
.start = TEGRA_SDMMC4_BASE,
|
||||
.end = TEGRA_SDMMC4_BASE + TEGRA_SDMMC4_SIZE-1,
|
||||
.flags = IORESOURCE_MEM,
|
||||
},
|
||||
};
|
||||
|
||||
|
||||
/* board files should fill in platform_data register the devices themselvs.
|
||||
* See board-harmony.c for an example
|
||||
*/
|
||||
struct platform_device tegra_sdhci_device1 = {
|
||||
.name = "sdhci-tegra",
|
||||
.id = 0,
|
||||
.resource = sdhci_resource1,
|
||||
.num_resources = ARRAY_SIZE(sdhci_resource1),
|
||||
};
|
||||
|
||||
struct platform_device tegra_sdhci_device2 = {
|
||||
.name = "sdhci-tegra",
|
||||
.id = 1,
|
||||
.resource = sdhci_resource2,
|
||||
.num_resources = ARRAY_SIZE(sdhci_resource2),
|
||||
};
|
||||
|
||||
struct platform_device tegra_sdhci_device3 = {
|
||||
.name = "sdhci-tegra",
|
||||
.id = 2,
|
||||
.resource = sdhci_resource3,
|
||||
.num_resources = ARRAY_SIZE(sdhci_resource3),
|
||||
};
|
||||
|
||||
struct platform_device tegra_sdhci_device4 = {
|
||||
.name = "sdhci-tegra",
|
||||
.id = 3,
|
||||
.resource = sdhci_resource4,
|
||||
.num_resources = ARRAY_SIZE(sdhci_resource4),
|
||||
};
|
||||
|
||||
|
||||
static struct platform_device *tegra_devices[] __initdata = {
|
||||
&tegra_i2c_device1,
|
||||
&tegra_i2c_device2,
|
||||
&tegra_i2c_device3,
|
||||
&tegra_i2c_device4,
|
||||
};
|
||||
|
||||
static int __init tegra_devices_init(void)
|
||||
{
|
||||
return platform_add_devices(tegra_devices, ARRAY_SIZE(tegra_devices));
|
||||
};
|
||||
|
||||
arch_initcall(tegra_devices_init);
|
||||
31
arch/arm/mach-tegra/devices.h
Normal file
31
arch/arm/mach-tegra/devices.h
Normal file
@@ -0,0 +1,31 @@
|
||||
/*
|
||||
* arch/arm/mach-tegra/devices.c
|
||||
*
|
||||
* Copyright (C) 2010 Google, Inc.
|
||||
*
|
||||
* Author:
|
||||
* Colin Cross <ccross@android.com>
|
||||
* Erik Gilling <ccross@android.com>
|
||||
*
|
||||
* This software is licensed under the terms of the GNU General Public
|
||||
* License version 2, as published by the Free Software Foundation, and
|
||||
* may be copied, distributed, and modified under those terms.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef __MACH_TEGRA_DEVICES_H
|
||||
#define __MACH_TEGRA_DEVICES_H
|
||||
|
||||
#include <linux/platform_device.h>
|
||||
|
||||
extern struct platform_device tegra_sdhci_device1;
|
||||
extern struct platform_device tegra_sdhci_device2;
|
||||
extern struct platform_device tegra_sdhci_device3;
|
||||
extern struct platform_device tegra_sdhci_device4;
|
||||
|
||||
#endif
|
||||
Reference in New Issue
Block a user