rtc: tps80031: register as mfd sub device
[linux-2.6.git] / arch / arm / mach-tegra / board-p1852-sdhci.c
1 /*
2  * arch/arm/mach-tegra/board-p1852-sdhci.c
3  *
4  * Copyright (C) 2010 Google, Inc.
5  *
6  * Copyright (c) 2012, NVIDIA Corporation. All rights reserved.
7  *
8  * This software is licensed under the terms of the GNU General Public
9  * License version 2, as published by the Free Software Foundation, and
10  * may be copied, distributed, and modified under those terms.
11  *
12  * This program is distributed in the hope that it will be useful,
13  * but WITHOUT ANY WARRANTY; without even the implied warranty of
14  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15  * GNU General Public License for more details.
16  *
17  */
18
19 #include <linux/resource.h>
20 #include <linux/platform_device.h>
21 #include <linux/wlan_plat.h>
22 #include <linux/delay.h>
23 #include <linux/gpio.h>
24 #include <linux/clk.h>
25 #include <linux/err.h>
26 #include <linux/mmc/host.h>
27
28 #include <asm/mach-types.h>
29 #include <mach/irqs.h>
30 #include <mach/iomap.h>
31 #include <mach/sdhci.h>
32
33 #include "gpio-names.h"
34 #include "board.h"
35 #include "board-p1852.h"
36 #include "devices.h"
37
38 #define P1852_SD1_CD TEGRA_GPIO_PV2
39
40 static struct tegra_sdhci_platform_data tegra_sdhci_platform_data1 = {
41         .cd_gpio = P1852_SD1_CD,
42         .wp_gpio = -1,
43         .power_gpio = -1,
44         .is_8bit = false,
45 };
46
47 static struct tegra_sdhci_platform_data tegra_sdhci_platform_data2 = {
48         .cd_gpio = -1,
49         .wp_gpio = -1,
50         .power_gpio = -1,
51         .is_8bit = true,
52 };
53
54 static struct tegra_sdhci_platform_data tegra_sdhci_platform_data4 = {
55         .cd_gpio = -1,
56         .wp_gpio = -1,
57         .power_gpio = -1,
58         .is_8bit = true,
59 };
60
61 int __init p1852_sdhci_init(void)
62 {
63         tegra_sdhci_device1.dev.platform_data = &tegra_sdhci_platform_data1;
64         tegra_sdhci_device2.dev.platform_data = &tegra_sdhci_platform_data2;
65         tegra_sdhci_device4.dev.platform_data = &tegra_sdhci_platform_data4;
66
67         platform_device_register(&tegra_sdhci_device1);
68         platform_device_register(&tegra_sdhci_device2);
69         platform_device_register(&tegra_sdhci_device4);
70
71         return 0;
72 }