185940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson/*
285940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson * Copyright (C) 2010,2011 Google, Inc.
385940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson *
485940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson * Author:
585940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson *	Colin Cross <ccross@android.com>
685940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson *	Erik Gilling <ccross@android.com>
785940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson *
885940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson * This software is licensed under the terms of the GNU General Public
985940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson * License version 2, as published by the Free Software Foundation, and
1085940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson * may be copied, distributed, and modified under those terms.
1185940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson *
1285940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson * This program is distributed in the hope that it will be useful,
1385940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson * but WITHOUT ANY WARRANTY; without even the implied warranty of
1485940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
1585940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson * GNU General Public License for more details.
1685940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson *
1785940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson */
1885940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson
1985940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson
2085940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson#include <linux/resource.h>
2185940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson#include <linux/platform_device.h>
2285940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson#include <linux/dma-mapping.h>
2385940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson#include <linux/fsl_devices.h>
2485940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson#include <linux/serial_8250.h>
2578702e43c1cadd600e35374411caba82ad9354b6Colin Cross#include <linux/i2c-tegra.h>
2685940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson#include <asm/pmu.h>
2785940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson#include <mach/irqs.h>
2885940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson#include <mach/iomap.h>
2985940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson#include <mach/dma.h>
30681e6edc25a452e26e263386caaa4afb02b5f131Colin Cross#include <mach/usb_phy.h>
31d8e9c00e38f6947cef7f5466a0a3d369461ab97fOlof Johansson
32681e6edc25a452e26e263386caaa4afb02b5f131Colin Cross#include "gpio-names.h"
33d8e9c00e38f6947cef7f5466a0a3d369461ab97fOlof Johansson#include "devices.h"
3485940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson
35940dd96fe9dec5b6ba4bb7ebc33212ff66db243cStephen Warrenstatic struct resource gpio_resource[] = {
36940dd96fe9dec5b6ba4bb7ebc33212ff66db243cStephen Warren	[0] = {
37940dd96fe9dec5b6ba4bb7ebc33212ff66db243cStephen Warren		.start	= TEGRA_GPIO_BASE,
38940dd96fe9dec5b6ba4bb7ebc33212ff66db243cStephen Warren		.end	= TEGRA_GPIO_BASE + TEGRA_GPIO_SIZE-1,
39940dd96fe9dec5b6ba4bb7ebc33212ff66db243cStephen Warren		.flags	= IORESOURCE_MEM,
40940dd96fe9dec5b6ba4bb7ebc33212ff66db243cStephen Warren	},
41940dd96fe9dec5b6ba4bb7ebc33212ff66db243cStephen Warren	[1] = {
42940dd96fe9dec5b6ba4bb7ebc33212ff66db243cStephen Warren		.start	= INT_GPIO1,
43940dd96fe9dec5b6ba4bb7ebc33212ff66db243cStephen Warren		.end	= INT_GPIO1,
44940dd96fe9dec5b6ba4bb7ebc33212ff66db243cStephen Warren		.flags	= IORESOURCE_IRQ,
45940dd96fe9dec5b6ba4bb7ebc33212ff66db243cStephen Warren	},
46940dd96fe9dec5b6ba4bb7ebc33212ff66db243cStephen Warren	[2] = {
47940dd96fe9dec5b6ba4bb7ebc33212ff66db243cStephen Warren		.start	= INT_GPIO2,
48940dd96fe9dec5b6ba4bb7ebc33212ff66db243cStephen Warren		.end	= INT_GPIO2,
49940dd96fe9dec5b6ba4bb7ebc33212ff66db243cStephen Warren		.flags	= IORESOURCE_IRQ,
50940dd96fe9dec5b6ba4bb7ebc33212ff66db243cStephen Warren	},
51940dd96fe9dec5b6ba4bb7ebc33212ff66db243cStephen Warren	[3] = {
52940dd96fe9dec5b6ba4bb7ebc33212ff66db243cStephen Warren		.start	= INT_GPIO3,
53940dd96fe9dec5b6ba4bb7ebc33212ff66db243cStephen Warren		.end	= INT_GPIO3,
54940dd96fe9dec5b6ba4bb7ebc33212ff66db243cStephen Warren		.flags	= IORESOURCE_IRQ,
55940dd96fe9dec5b6ba4bb7ebc33212ff66db243cStephen Warren	},
56940dd96fe9dec5b6ba4bb7ebc33212ff66db243cStephen Warren	[4] = {
57940dd96fe9dec5b6ba4bb7ebc33212ff66db243cStephen Warren		.start	= INT_GPIO4,
58940dd96fe9dec5b6ba4bb7ebc33212ff66db243cStephen Warren		.end	= INT_GPIO4,
59940dd96fe9dec5b6ba4bb7ebc33212ff66db243cStephen Warren		.flags	= IORESOURCE_IRQ,
60940dd96fe9dec5b6ba4bb7ebc33212ff66db243cStephen Warren	},
61940dd96fe9dec5b6ba4bb7ebc33212ff66db243cStephen Warren	[5] = {
62940dd96fe9dec5b6ba4bb7ebc33212ff66db243cStephen Warren		.start	= INT_GPIO5,
63940dd96fe9dec5b6ba4bb7ebc33212ff66db243cStephen Warren		.end	= INT_GPIO5,
64940dd96fe9dec5b6ba4bb7ebc33212ff66db243cStephen Warren		.flags	= IORESOURCE_IRQ,
65940dd96fe9dec5b6ba4bb7ebc33212ff66db243cStephen Warren	},
66940dd96fe9dec5b6ba4bb7ebc33212ff66db243cStephen Warren	[6] = {
67940dd96fe9dec5b6ba4bb7ebc33212ff66db243cStephen Warren		.start	= INT_GPIO6,
68940dd96fe9dec5b6ba4bb7ebc33212ff66db243cStephen Warren		.end	= INT_GPIO6,
69940dd96fe9dec5b6ba4bb7ebc33212ff66db243cStephen Warren		.flags	= IORESOURCE_IRQ,
70940dd96fe9dec5b6ba4bb7ebc33212ff66db243cStephen Warren	},
71940dd96fe9dec5b6ba4bb7ebc33212ff66db243cStephen Warren	[7] = {
72940dd96fe9dec5b6ba4bb7ebc33212ff66db243cStephen Warren		.start	= INT_GPIO7,
73940dd96fe9dec5b6ba4bb7ebc33212ff66db243cStephen Warren		.end	= INT_GPIO7,
74940dd96fe9dec5b6ba4bb7ebc33212ff66db243cStephen Warren		.flags	= IORESOURCE_IRQ,
75940dd96fe9dec5b6ba4bb7ebc33212ff66db243cStephen Warren	},
76940dd96fe9dec5b6ba4bb7ebc33212ff66db243cStephen Warren};
77940dd96fe9dec5b6ba4bb7ebc33212ff66db243cStephen Warren
78940dd96fe9dec5b6ba4bb7ebc33212ff66db243cStephen Warrenstruct platform_device tegra_gpio_device = {
79940dd96fe9dec5b6ba4bb7ebc33212ff66db243cStephen Warren	.name		= "tegra-gpio",
80940dd96fe9dec5b6ba4bb7ebc33212ff66db243cStephen Warren	.id		= -1,
81940dd96fe9dec5b6ba4bb7ebc33212ff66db243cStephen Warren	.resource	= gpio_resource,
82940dd96fe9dec5b6ba4bb7ebc33212ff66db243cStephen Warren	.num_resources	= ARRAY_SIZE(gpio_resource),
83940dd96fe9dec5b6ba4bb7ebc33212ff66db243cStephen Warren};
84940dd96fe9dec5b6ba4bb7ebc33212ff66db243cStephen Warren
85940dd96fe9dec5b6ba4bb7ebc33212ff66db243cStephen Warrenstatic struct resource pinmux_resource[] = {
86940dd96fe9dec5b6ba4bb7ebc33212ff66db243cStephen Warren	[0] = {
87940dd96fe9dec5b6ba4bb7ebc33212ff66db243cStephen Warren		/* Tri-state registers */
88940dd96fe9dec5b6ba4bb7ebc33212ff66db243cStephen Warren		.start	= TEGRA_APB_MISC_BASE + 0x14,
89940dd96fe9dec5b6ba4bb7ebc33212ff66db243cStephen Warren		.end	= TEGRA_APB_MISC_BASE + 0x20 + 3,
90940dd96fe9dec5b6ba4bb7ebc33212ff66db243cStephen Warren		.flags	= IORESOURCE_MEM,
91940dd96fe9dec5b6ba4bb7ebc33212ff66db243cStephen Warren	},
92940dd96fe9dec5b6ba4bb7ebc33212ff66db243cStephen Warren	[1] = {
93940dd96fe9dec5b6ba4bb7ebc33212ff66db243cStephen Warren		/* Mux registers */
94940dd96fe9dec5b6ba4bb7ebc33212ff66db243cStephen Warren		.start	= TEGRA_APB_MISC_BASE + 0x80,
95940dd96fe9dec5b6ba4bb7ebc33212ff66db243cStephen Warren		.end	= TEGRA_APB_MISC_BASE + 0x9c + 3,
96940dd96fe9dec5b6ba4bb7ebc33212ff66db243cStephen Warren		.flags	= IORESOURCE_MEM,
97940dd96fe9dec5b6ba4bb7ebc33212ff66db243cStephen Warren	},
98940dd96fe9dec5b6ba4bb7ebc33212ff66db243cStephen Warren	[2] = {
99940dd96fe9dec5b6ba4bb7ebc33212ff66db243cStephen Warren		/* Pull-up/down registers */
100940dd96fe9dec5b6ba4bb7ebc33212ff66db243cStephen Warren		.start	= TEGRA_APB_MISC_BASE + 0xa0,
101940dd96fe9dec5b6ba4bb7ebc33212ff66db243cStephen Warren		.end	= TEGRA_APB_MISC_BASE + 0xb0 + 3,
102940dd96fe9dec5b6ba4bb7ebc33212ff66db243cStephen Warren		.flags	= IORESOURCE_MEM,
103940dd96fe9dec5b6ba4bb7ebc33212ff66db243cStephen Warren	},
104940dd96fe9dec5b6ba4bb7ebc33212ff66db243cStephen Warren	[3] = {
105940dd96fe9dec5b6ba4bb7ebc33212ff66db243cStephen Warren		/* Pad control registers */
106940dd96fe9dec5b6ba4bb7ebc33212ff66db243cStephen Warren		.start	= TEGRA_APB_MISC_BASE + 0x868,
107940dd96fe9dec5b6ba4bb7ebc33212ff66db243cStephen Warren		.end	= TEGRA_APB_MISC_BASE + 0x90c + 3,
108940dd96fe9dec5b6ba4bb7ebc33212ff66db243cStephen Warren		.flags	= IORESOURCE_MEM,
109940dd96fe9dec5b6ba4bb7ebc33212ff66db243cStephen Warren	},
110940dd96fe9dec5b6ba4bb7ebc33212ff66db243cStephen Warren};
111940dd96fe9dec5b6ba4bb7ebc33212ff66db243cStephen Warren
112940dd96fe9dec5b6ba4bb7ebc33212ff66db243cStephen Warrenstruct platform_device tegra_pinmux_device = {
113940dd96fe9dec5b6ba4bb7ebc33212ff66db243cStephen Warren	.name		= "tegra-pinmux",
114940dd96fe9dec5b6ba4bb7ebc33212ff66db243cStephen Warren	.id		= -1,
115940dd96fe9dec5b6ba4bb7ebc33212ff66db243cStephen Warren	.resource	= pinmux_resource,
116940dd96fe9dec5b6ba4bb7ebc33212ff66db243cStephen Warren	.num_resources	= ARRAY_SIZE(pinmux_resource),
117940dd96fe9dec5b6ba4bb7ebc33212ff66db243cStephen Warren};
118940dd96fe9dec5b6ba4bb7ebc33212ff66db243cStephen Warren
11985940b4a1761aa5ab8d0ac1557756953788af155Olof Johanssonstatic struct resource i2c_resource1[] = {
12085940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson	[0] = {
12185940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson		.start	= INT_I2C,
12285940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson		.end	= INT_I2C,
12385940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson		.flags	= IORESOURCE_IRQ,
12485940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson	},
12585940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson	[1] = {
12685940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson		.start	= TEGRA_I2C_BASE,
12785940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson		.end	= TEGRA_I2C_BASE + TEGRA_I2C_SIZE-1,
12885940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson		.flags	= IORESOURCE_MEM,
12985940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson	},
13085940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson};
13185940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson
13285940b4a1761aa5ab8d0ac1557756953788af155Olof Johanssonstatic struct resource i2c_resource2[] = {
13385940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson	[0] = {
13485940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson		.start	= INT_I2C2,
13585940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson		.end	= INT_I2C2,
13685940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson		.flags	= IORESOURCE_IRQ,
13785940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson	},
13885940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson	[1] = {
13985940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson		.start	= TEGRA_I2C2_BASE,
14085940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson		.end	= TEGRA_I2C2_BASE + TEGRA_I2C2_SIZE-1,
14185940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson		.flags	= IORESOURCE_MEM,
14285940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson	},
14385940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson};
14485940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson
14585940b4a1761aa5ab8d0ac1557756953788af155Olof Johanssonstatic struct resource i2c_resource3[] = {
14685940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson	[0] = {
14785940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson		.start	= INT_I2C3,
14885940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson		.end	= INT_I2C3,
14985940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson		.flags	= IORESOURCE_IRQ,
15085940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson	},
15185940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson	[1] = {
15285940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson		.start	= TEGRA_I2C3_BASE,
15385940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson		.end	= TEGRA_I2C3_BASE + TEGRA_I2C3_SIZE-1,
15485940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson		.flags	= IORESOURCE_MEM,
15585940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson	},
15685940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson};
15785940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson
15885940b4a1761aa5ab8d0ac1557756953788af155Olof Johanssonstatic struct resource i2c_resource4[] = {
15985940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson	[0] = {
16085940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson		.start	= INT_DVC,
16185940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson		.end	= INT_DVC,
16285940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson		.flags	= IORESOURCE_IRQ,
16385940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson	},
16485940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson	[1] = {
16585940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson		.start	= TEGRA_DVC_BASE,
16685940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson		.end	= TEGRA_DVC_BASE + TEGRA_DVC_SIZE-1,
16785940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson		.flags	= IORESOURCE_MEM,
16885940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson	},
16985940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson};
17085940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson
17178702e43c1cadd600e35374411caba82ad9354b6Colin Crossstatic struct tegra_i2c_platform_data tegra_i2c1_platform_data = {
17278702e43c1cadd600e35374411caba82ad9354b6Colin Cross	.bus_clk_rate   = 400000,
17378702e43c1cadd600e35374411caba82ad9354b6Colin Cross};
17478702e43c1cadd600e35374411caba82ad9354b6Colin Cross
17578702e43c1cadd600e35374411caba82ad9354b6Colin Crossstatic struct tegra_i2c_platform_data tegra_i2c2_platform_data = {
17678702e43c1cadd600e35374411caba82ad9354b6Colin Cross	.bus_clk_rate   = 400000,
17778702e43c1cadd600e35374411caba82ad9354b6Colin Cross};
17878702e43c1cadd600e35374411caba82ad9354b6Colin Cross
17978702e43c1cadd600e35374411caba82ad9354b6Colin Crossstatic struct tegra_i2c_platform_data tegra_i2c3_platform_data = {
18078702e43c1cadd600e35374411caba82ad9354b6Colin Cross	.bus_clk_rate   = 400000,
18178702e43c1cadd600e35374411caba82ad9354b6Colin Cross};
18278702e43c1cadd600e35374411caba82ad9354b6Colin Cross
18378702e43c1cadd600e35374411caba82ad9354b6Colin Crossstatic struct tegra_i2c_platform_data tegra_dvc_platform_data = {
18478702e43c1cadd600e35374411caba82ad9354b6Colin Cross	.bus_clk_rate   = 400000,
18578702e43c1cadd600e35374411caba82ad9354b6Colin Cross};
18678702e43c1cadd600e35374411caba82ad9354b6Colin Cross
18785940b4a1761aa5ab8d0ac1557756953788af155Olof Johanssonstruct platform_device tegra_i2c_device1 = {
18885940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson	.name		= "tegra-i2c",
18985940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson	.id		= 0,
19085940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson	.resource	= i2c_resource1,
19185940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson	.num_resources	= ARRAY_SIZE(i2c_resource1),
19285940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson	.dev = {
19378702e43c1cadd600e35374411caba82ad9354b6Colin Cross		.platform_data = &tegra_i2c1_platform_data,
19485940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson	},
19585940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson};
19685940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson
19785940b4a1761aa5ab8d0ac1557756953788af155Olof Johanssonstruct platform_device tegra_i2c_device2 = {
19885940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson	.name		= "tegra-i2c",
19985940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson	.id		= 1,
20085940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson	.resource	= i2c_resource2,
20185940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson	.num_resources	= ARRAY_SIZE(i2c_resource2),
20285940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson	.dev = {
20378702e43c1cadd600e35374411caba82ad9354b6Colin Cross		.platform_data = &tegra_i2c2_platform_data,
20485940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson	},
20585940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson};
20685940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson
20785940b4a1761aa5ab8d0ac1557756953788af155Olof Johanssonstruct platform_device tegra_i2c_device3 = {
20885940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson	.name		= "tegra-i2c",
20985940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson	.id		= 2,
21085940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson	.resource	= i2c_resource3,
21185940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson	.num_resources	= ARRAY_SIZE(i2c_resource3),
21285940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson	.dev = {
21378702e43c1cadd600e35374411caba82ad9354b6Colin Cross		.platform_data = &tegra_i2c3_platform_data,
21485940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson	},
21585940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson};
21685940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson
21785940b4a1761aa5ab8d0ac1557756953788af155Olof Johanssonstruct platform_device tegra_i2c_device4 = {
21885940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson	.name		= "tegra-i2c",
21985940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson	.id		= 3,
22085940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson	.resource	= i2c_resource4,
22185940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson	.num_resources	= ARRAY_SIZE(i2c_resource4),
22285940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson	.dev = {
22378702e43c1cadd600e35374411caba82ad9354b6Colin Cross		.platform_data = &tegra_dvc_platform_data,
22485940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson	},
22585940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson};
22685940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson
22785940b4a1761aa5ab8d0ac1557756953788af155Olof Johanssonstatic struct resource spi_resource1[] = {
22885940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson	[0] = {
22985940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson		.start	= INT_S_LINK1,
23085940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson		.end	= INT_S_LINK1,
23185940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson		.flags	= IORESOURCE_IRQ,
23285940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson	},
23385940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson	[1] = {
23485940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson		.start	= TEGRA_SPI1_BASE,
23585940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson		.end	= TEGRA_SPI1_BASE + TEGRA_SPI1_SIZE-1,
23685940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson		.flags	= IORESOURCE_MEM,
23785940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson	},
23885940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson};
23985940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson
24085940b4a1761aa5ab8d0ac1557756953788af155Olof Johanssonstatic struct resource spi_resource2[] = {
24185940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson	[0] = {
24285940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson		.start	= INT_SPI_2,
24385940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson		.end	= INT_SPI_2,
24485940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson		.flags	= IORESOURCE_IRQ,
24585940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson	},
24685940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson	[1] = {
24785940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson		.start	= TEGRA_SPI2_BASE,
24885940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson		.end	= TEGRA_SPI2_BASE + TEGRA_SPI2_SIZE-1,
24985940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson		.flags	= IORESOURCE_MEM,
25085940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson	},
25185940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson};
25285940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson
25385940b4a1761aa5ab8d0ac1557756953788af155Olof Johanssonstatic struct resource spi_resource3[] = {
25485940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson	[0] = {
25585940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson		.start	= INT_SPI_3,
25685940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson		.end	= INT_SPI_3,
25785940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson		.flags	= IORESOURCE_IRQ,
25885940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson	},
25985940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson	[1] = {
26085940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson		.start	= TEGRA_SPI3_BASE,
26185940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson		.end	= TEGRA_SPI3_BASE + TEGRA_SPI3_SIZE-1,
26285940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson		.flags	= IORESOURCE_MEM,
26385940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson	},
26485940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson};
26585940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson
26685940b4a1761aa5ab8d0ac1557756953788af155Olof Johanssonstatic struct resource spi_resource4[] = {
26785940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson	[0] = {
26885940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson		.start	= INT_SPI_4,
26985940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson		.end	= INT_SPI_4,
27085940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson		.flags	= IORESOURCE_IRQ,
27185940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson	},
27285940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson	[1] = {
27385940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson		.start	= TEGRA_SPI4_BASE,
27485940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson		.end	= TEGRA_SPI4_BASE + TEGRA_SPI4_SIZE-1,
27585940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson		.flags	= IORESOURCE_MEM,
27685940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson	},
27785940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson};
27885940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson
27985940b4a1761aa5ab8d0ac1557756953788af155Olof Johanssonstruct platform_device tegra_spi_device1 = {
28085940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson	.name		= "spi_tegra",
28185940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson	.id		= 0,
28285940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson	.resource	= spi_resource1,
28385940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson	.num_resources	= ARRAY_SIZE(spi_resource1),
28485940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson	.dev		= {
28585940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson		.coherent_dma_mask	= 0xffffffff,
28685940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson	},
28785940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson};
28885940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson
28985940b4a1761aa5ab8d0ac1557756953788af155Olof Johanssonstruct platform_device tegra_spi_device2 = {
29085940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson	.name		= "spi_tegra",
29185940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson	.id		= 1,
29285940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson	.resource	= spi_resource2,
29385940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson	.num_resources	= ARRAY_SIZE(spi_resource2),
29485940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson	.dev		= {
29585940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson		.coherent_dma_mask	= 0xffffffff,
29685940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson	},
29785940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson};
29885940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson
29985940b4a1761aa5ab8d0ac1557756953788af155Olof Johanssonstruct platform_device tegra_spi_device3 = {
30085940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson	.name		= "spi_tegra",
30185940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson	.id		= 2,
30285940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson	.resource	= spi_resource3,
30385940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson	.num_resources	= ARRAY_SIZE(spi_resource3),
30485940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson	.dev		= {
30585940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson		.coherent_dma_mask	= 0xffffffff,
30685940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson	},
30785940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson};
30885940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson
30985940b4a1761aa5ab8d0ac1557756953788af155Olof Johanssonstruct platform_device tegra_spi_device4 = {
31085940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson	.name		= "spi_tegra",
31185940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson	.id		= 3,
31285940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson	.resource	= spi_resource4,
31385940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson	.num_resources	= ARRAY_SIZE(spi_resource4),
31485940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson	.dev		= {
31585940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson		.coherent_dma_mask	= 0xffffffff,
31685940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson	},
31785940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson};
31885940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson
31985940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson
32085940b4a1761aa5ab8d0ac1557756953788af155Olof Johanssonstatic struct resource sdhci_resource1[] = {
32185940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson	[0] = {
32285940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson		.start	= INT_SDMMC1,
32385940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson		.end	= INT_SDMMC1,
32485940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson		.flags	= IORESOURCE_IRQ,
32585940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson	},
32685940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson	[1] = {
32785940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson		.start	= TEGRA_SDMMC1_BASE,
32885940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson		.end	= TEGRA_SDMMC1_BASE + TEGRA_SDMMC1_SIZE-1,
32985940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson		.flags	= IORESOURCE_MEM,
33085940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson	},
33185940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson};
33285940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson
33385940b4a1761aa5ab8d0ac1557756953788af155Olof Johanssonstatic struct resource sdhci_resource2[] = {
33485940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson	[0] = {
33585940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson		.start	= INT_SDMMC2,
33685940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson		.end	= INT_SDMMC2,
33785940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson		.flags	= IORESOURCE_IRQ,
33885940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson	},
33985940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson	[1] = {
34085940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson		.start	= TEGRA_SDMMC2_BASE,
34185940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson		.end	= TEGRA_SDMMC2_BASE + TEGRA_SDMMC2_SIZE-1,
34285940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson		.flags	= IORESOURCE_MEM,
34385940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson	},
34485940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson};
34585940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson
34685940b4a1761aa5ab8d0ac1557756953788af155Olof Johanssonstatic struct resource sdhci_resource3[] = {
34785940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson	[0] = {
34885940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson		.start	= INT_SDMMC3,
34985940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson		.end	= INT_SDMMC3,
35085940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson		.flags	= IORESOURCE_IRQ,
35185940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson	},
35285940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson	[1] = {
35385940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson		.start	= TEGRA_SDMMC3_BASE,
35485940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson		.end	= TEGRA_SDMMC3_BASE + TEGRA_SDMMC3_SIZE-1,
35585940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson		.flags	= IORESOURCE_MEM,
35685940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson	},
35785940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson};
35885940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson
35985940b4a1761aa5ab8d0ac1557756953788af155Olof Johanssonstatic struct resource sdhci_resource4[] = {
36085940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson	[0] = {
36185940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson		.start	= INT_SDMMC4,
36285940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson		.end	= INT_SDMMC4,
36385940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson		.flags	= IORESOURCE_IRQ,
36485940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson	},
36585940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson	[1] = {
36685940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson		.start	= TEGRA_SDMMC4_BASE,
36785940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson		.end	= TEGRA_SDMMC4_BASE + TEGRA_SDMMC4_SIZE-1,
36885940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson		.flags	= IORESOURCE_MEM,
36985940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson	},
37085940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson};
37185940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson
37285940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson/* board files should fill in platform_data register the devices themselvs.
37385940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson * See board-harmony.c for an example
37485940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson */
37585940b4a1761aa5ab8d0ac1557756953788af155Olof Johanssonstruct platform_device tegra_sdhci_device1 = {
37685940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson	.name		= "sdhci-tegra",
37785940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson	.id		= 0,
37885940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson	.resource	= sdhci_resource1,
37985940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson	.num_resources	= ARRAY_SIZE(sdhci_resource1),
38085940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson};
38185940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson
38285940b4a1761aa5ab8d0ac1557756953788af155Olof Johanssonstruct platform_device tegra_sdhci_device2 = {
38385940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson	.name		= "sdhci-tegra",
38485940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson	.id		= 1,
38585940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson	.resource	= sdhci_resource2,
38685940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson	.num_resources	= ARRAY_SIZE(sdhci_resource2),
38785940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson};
38885940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson
38985940b4a1761aa5ab8d0ac1557756953788af155Olof Johanssonstruct platform_device tegra_sdhci_device3 = {
39085940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson	.name		= "sdhci-tegra",
39185940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson	.id		= 2,
39285940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson	.resource	= sdhci_resource3,
39385940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson	.num_resources	= ARRAY_SIZE(sdhci_resource3),
39485940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson};
39585940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson
39685940b4a1761aa5ab8d0ac1557756953788af155Olof Johanssonstruct platform_device tegra_sdhci_device4 = {
39785940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson	.name		= "sdhci-tegra",
39885940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson	.id		= 3,
39985940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson	.resource	= sdhci_resource4,
40085940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson	.num_resources	= ARRAY_SIZE(sdhci_resource4),
40185940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson};
40285940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson
40385940b4a1761aa5ab8d0ac1557756953788af155Olof Johanssonstatic struct resource tegra_usb1_resources[] = {
40485940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson	[0] = {
40585940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson		.start	= TEGRA_USB_BASE,
40685940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson		.end	= TEGRA_USB_BASE + TEGRA_USB_SIZE - 1,
40785940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson		.flags	= IORESOURCE_MEM,
40885940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson	},
40985940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson	[1] = {
41085940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson		.start	= INT_USB,
41185940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson		.end	= INT_USB,
41285940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson		.flags	= IORESOURCE_IRQ,
41385940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson	},
41485940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson};
41585940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson
41685940b4a1761aa5ab8d0ac1557756953788af155Olof Johanssonstatic struct resource tegra_usb2_resources[] = {
41785940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson	[0] = {
41885940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson		.start	= TEGRA_USB2_BASE,
41985940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson		.end	= TEGRA_USB2_BASE + TEGRA_USB2_SIZE - 1,
42085940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson		.flags	= IORESOURCE_MEM,
42185940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson	},
42285940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson	[1] = {
42385940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson		.start	= INT_USB2,
42485940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson		.end	= INT_USB2,
42585940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson		.flags	= IORESOURCE_IRQ,
42685940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson	},
42785940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson};
42885940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson
42985940b4a1761aa5ab8d0ac1557756953788af155Olof Johanssonstatic struct resource tegra_usb3_resources[] = {
43085940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson	[0] = {
43185940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson		.start	= TEGRA_USB3_BASE,
43285940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson		.end	= TEGRA_USB3_BASE + TEGRA_USB3_SIZE - 1,
43385940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson		.flags	= IORESOURCE_MEM,
43485940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson	},
43585940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson	[1] = {
43685940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson		.start	= INT_USB3,
43785940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson		.end	= INT_USB3,
43885940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson		.flags	= IORESOURCE_IRQ,
43985940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson	},
44085940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson};
44185940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson
442681e6edc25a452e26e263386caaa4afb02b5f131Colin Crossstatic struct tegra_ulpi_config tegra_ehci2_ulpi_phy_config = {
443681e6edc25a452e26e263386caaa4afb02b5f131Colin Cross	/* All existing boards use GPIO PV0 for phy reset */
444681e6edc25a452e26e263386caaa4afb02b5f131Colin Cross	.reset_gpio = TEGRA_GPIO_PV0,
445681e6edc25a452e26e263386caaa4afb02b5f131Colin Cross	.clk = "cdev2",
446681e6edc25a452e26e263386caaa4afb02b5f131Colin Cross};
447681e6edc25a452e26e263386caaa4afb02b5f131Colin Cross
4488c3ec84102d171a24f050a086bfc546e9de93f9fStephen Warrenstruct tegra_ehci_platform_data tegra_ehci1_pdata = {
449681e6edc25a452e26e263386caaa4afb02b5f131Colin Cross	.operating_mode = TEGRA_USB_OTG,
450681e6edc25a452e26e263386caaa4afb02b5f131Colin Cross	.power_down_on_bus_suspend = 1,
451681e6edc25a452e26e263386caaa4afb02b5f131Colin Cross};
452681e6edc25a452e26e263386caaa4afb02b5f131Colin Cross
4538c3ec84102d171a24f050a086bfc546e9de93f9fStephen Warrenstruct tegra_ehci_platform_data tegra_ehci2_pdata = {
454681e6edc25a452e26e263386caaa4afb02b5f131Colin Cross	.phy_config = &tegra_ehci2_ulpi_phy_config,
455681e6edc25a452e26e263386caaa4afb02b5f131Colin Cross	.operating_mode = TEGRA_USB_HOST,
456681e6edc25a452e26e263386caaa4afb02b5f131Colin Cross	.power_down_on_bus_suspend = 1,
457681e6edc25a452e26e263386caaa4afb02b5f131Colin Cross};
458681e6edc25a452e26e263386caaa4afb02b5f131Colin Cross
4598c3ec84102d171a24f050a086bfc546e9de93f9fStephen Warrenstruct tegra_ehci_platform_data tegra_ehci3_pdata = {
460681e6edc25a452e26e263386caaa4afb02b5f131Colin Cross	.operating_mode = TEGRA_USB_HOST,
461681e6edc25a452e26e263386caaa4afb02b5f131Colin Cross	.power_down_on_bus_suspend = 1,
462681e6edc25a452e26e263386caaa4afb02b5f131Colin Cross};
463681e6edc25a452e26e263386caaa4afb02b5f131Colin Cross
46485940b4a1761aa5ab8d0ac1557756953788af155Olof Johanssonstatic u64 tegra_ehci_dmamask = DMA_BIT_MASK(32);
46585940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson
46685940b4a1761aa5ab8d0ac1557756953788af155Olof Johanssonstruct platform_device tegra_ehci1_device = {
46785940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson	.name	= "tegra-ehci",
46885940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson	.id	= 0,
46985940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson	.dev	= {
47085940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson		.dma_mask	= &tegra_ehci_dmamask,
47185940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson		.coherent_dma_mask = DMA_BIT_MASK(32),
472681e6edc25a452e26e263386caaa4afb02b5f131Colin Cross		.platform_data = &tegra_ehci1_pdata,
47385940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson	},
47485940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson	.resource = tegra_usb1_resources,
47585940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson	.num_resources = ARRAY_SIZE(tegra_usb1_resources),
47685940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson};
47785940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson
47885940b4a1761aa5ab8d0ac1557756953788af155Olof Johanssonstruct platform_device tegra_ehci2_device = {
47985940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson	.name	= "tegra-ehci",
48085940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson	.id	= 1,
48185940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson	.dev	= {
48285940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson		.dma_mask	= &tegra_ehci_dmamask,
48385940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson		.coherent_dma_mask = DMA_BIT_MASK(32),
484681e6edc25a452e26e263386caaa4afb02b5f131Colin Cross		.platform_data = &tegra_ehci2_pdata,
48585940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson	},
48685940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson	.resource = tegra_usb2_resources,
48785940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson	.num_resources = ARRAY_SIZE(tegra_usb2_resources),
48885940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson};
48985940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson
49085940b4a1761aa5ab8d0ac1557756953788af155Olof Johanssonstruct platform_device tegra_ehci3_device = {
49185940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson	.name	= "tegra-ehci",
49285940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson	.id	= 2,
49385940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson	.dev	= {
49485940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson		.dma_mask	= &tegra_ehci_dmamask,
49585940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson		.coherent_dma_mask = DMA_BIT_MASK(32),
496681e6edc25a452e26e263386caaa4afb02b5f131Colin Cross		.platform_data = &tegra_ehci3_pdata,
49785940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson	},
49885940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson	.resource = tegra_usb3_resources,
49985940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson	.num_resources = ARRAY_SIZE(tegra_usb3_resources),
50085940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson};
50185940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson
50285940b4a1761aa5ab8d0ac1557756953788af155Olof Johanssonstatic struct resource tegra_pmu_resources[] = {
50385940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson	[0] = {
50485940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson		.start	= INT_CPU0_PMU_INTR,
50585940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson		.end	= INT_CPU0_PMU_INTR,
50685940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson		.flags	= IORESOURCE_IRQ,
50785940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson	},
50885940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson	[1] = {
50985940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson		.start	= INT_CPU1_PMU_INTR,
51085940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson		.end	= INT_CPU1_PMU_INTR,
51185940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson		.flags	= IORESOURCE_IRQ,
51285940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson	},
51385940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson};
51485940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson
51585940b4a1761aa5ab8d0ac1557756953788af155Olof Johanssonstruct platform_device tegra_pmu_device = {
51685940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson	.name		= "arm-pmu",
51785940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson	.id		= ARM_PMU_DEVICE_CPU,
51885940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson	.num_resources	= ARRAY_SIZE(tegra_pmu_resources),
51985940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson	.resource	= tegra_pmu_resources,
52085940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson};
52185940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson
52285940b4a1761aa5ab8d0ac1557756953788af155Olof Johanssonstatic struct resource tegra_uarta_resources[] = {
52385940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson	[0] = {
52485940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson		.start	= TEGRA_UARTA_BASE,
52585940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson		.end	= TEGRA_UARTA_BASE + TEGRA_UARTA_SIZE - 1,
52685940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson		.flags	= IORESOURCE_MEM,
52785940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson	},
52885940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson	[1] = {
52985940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson		.start	= INT_UARTA,
53085940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson		.end	= INT_UARTA,
53185940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson		.flags	= IORESOURCE_IRQ,
53285940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson	},
53385940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson};
53485940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson
53585940b4a1761aa5ab8d0ac1557756953788af155Olof Johanssonstatic struct resource tegra_uartb_resources[] = {
53685940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson	[0] = {
53785940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson		.start	= TEGRA_UARTB_BASE,
53885940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson		.end	= TEGRA_UARTB_BASE + TEGRA_UARTB_SIZE - 1,
53985940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson		.flags	= IORESOURCE_MEM,
54085940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson	},
54185940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson	[1] = {
54285940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson		.start	= INT_UARTB,
54385940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson		.end	= INT_UARTB,
54485940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson		.flags	= IORESOURCE_IRQ,
54585940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson	},
54685940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson};
54785940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson
54885940b4a1761aa5ab8d0ac1557756953788af155Olof Johanssonstatic struct resource tegra_uartc_resources[] = {
54985940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson	[0] = {
55085940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson		.start	= TEGRA_UARTC_BASE,
55185940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson		.end	= TEGRA_UARTC_BASE + TEGRA_UARTC_SIZE - 1,
55285940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson		.flags	= IORESOURCE_MEM,
55385940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson	},
55485940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson	[1] = {
55585940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson		.start	= INT_UARTC,
55685940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson		.end	= INT_UARTC,
55785940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson		.flags	= IORESOURCE_IRQ,
55885940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson	},
55985940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson};
56085940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson
56185940b4a1761aa5ab8d0ac1557756953788af155Olof Johanssonstatic struct resource tegra_uartd_resources[] = {
56285940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson	[0] = {
56385940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson		.start	= TEGRA_UARTD_BASE,
56485940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson		.end	= TEGRA_UARTD_BASE + TEGRA_UARTD_SIZE - 1,
56585940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson		.flags	= IORESOURCE_MEM,
56685940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson	},
56785940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson	[1] = {
56885940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson		.start	= INT_UARTD,
56985940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson		.end	= INT_UARTD,
57085940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson		.flags	= IORESOURCE_IRQ,
57185940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson	},
57285940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson};
57385940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson
57485940b4a1761aa5ab8d0ac1557756953788af155Olof Johanssonstatic struct resource tegra_uarte_resources[] = {
57585940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson	[0] = {
57685940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson		.start	= TEGRA_UARTE_BASE,
57785940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson		.end	= TEGRA_UARTE_BASE + TEGRA_UARTE_SIZE - 1,
57885940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson		.flags	= IORESOURCE_MEM,
57985940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson	},
58085940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson	[1] = {
58185940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson		.start	= INT_UARTE,
58285940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson		.end	= INT_UARTE,
58385940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson		.flags	= IORESOURCE_IRQ,
58485940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson	},
58585940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson};
58685940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson
58785940b4a1761aa5ab8d0ac1557756953788af155Olof Johanssonstruct platform_device tegra_uarta_device = {
58885940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson	.name	= "tegra_uart",
58985940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson	.id	= 0,
59085940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson	.num_resources	= ARRAY_SIZE(tegra_uarta_resources),
59185940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson	.resource	= tegra_uarta_resources,
59285940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson	.dev	= {
59385940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson		.coherent_dma_mask	= DMA_BIT_MASK(32),
59485940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson	},
59585940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson};
59685940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson
59785940b4a1761aa5ab8d0ac1557756953788af155Olof Johanssonstruct platform_device tegra_uartb_device = {
59885940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson	.name	= "tegra_uart",
59985940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson	.id	= 1,
60085940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson	.num_resources	= ARRAY_SIZE(tegra_uartb_resources),
60185940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson	.resource	= tegra_uartb_resources,
60285940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson	.dev	= {
60385940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson		.coherent_dma_mask	= DMA_BIT_MASK(32),
60485940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson	},
60585940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson};
60685940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson
60785940b4a1761aa5ab8d0ac1557756953788af155Olof Johanssonstruct platform_device tegra_uartc_device = {
60885940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson	.name	= "tegra_uart",
60985940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson	.id	= 2,
61085940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson	.num_resources	= ARRAY_SIZE(tegra_uartc_resources),
61185940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson	.resource	= tegra_uartc_resources,
61285940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson	.dev	= {
61385940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson		.coherent_dma_mask	= DMA_BIT_MASK(32),
61485940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson	},
61585940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson};
61685940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson
61785940b4a1761aa5ab8d0ac1557756953788af155Olof Johanssonstruct platform_device tegra_uartd_device = {
61885940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson	.name	= "tegra_uart",
61985940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson	.id	= 3,
62085940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson	.num_resources	= ARRAY_SIZE(tegra_uartd_resources),
62185940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson	.resource	= tegra_uartd_resources,
62285940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson	.dev	= {
62385940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson		.coherent_dma_mask	= DMA_BIT_MASK(32),
62485940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson	},
62585940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson};
62685940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson
62785940b4a1761aa5ab8d0ac1557756953788af155Olof Johanssonstruct platform_device tegra_uarte_device = {
62885940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson	.name	= "tegra_uart",
62985940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson	.id	= 4,
63085940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson	.num_resources	= ARRAY_SIZE(tegra_uarte_resources),
63185940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson	.resource	= tegra_uarte_resources,
63285940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson	.dev	= {
63385940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson		.coherent_dma_mask	= DMA_BIT_MASK(32),
63485940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson	},
63585940b4a1761aa5ab8d0ac1557756953788af155Olof Johansson};
636b9652c2d127e994748d4bffc45369ed423d5ae8dStephen Warren
637b9652c2d127e994748d4bffc45369ed423d5ae8dStephen Warrenstatic struct resource i2s_resource1[] = {
638b9652c2d127e994748d4bffc45369ed423d5ae8dStephen Warren	[0] = {
639b9652c2d127e994748d4bffc45369ed423d5ae8dStephen Warren		.start	= INT_I2S1,
640b9652c2d127e994748d4bffc45369ed423d5ae8dStephen Warren		.end	= INT_I2S1,
641b9652c2d127e994748d4bffc45369ed423d5ae8dStephen Warren		.flags	= IORESOURCE_IRQ
642b9652c2d127e994748d4bffc45369ed423d5ae8dStephen Warren	},
643b9652c2d127e994748d4bffc45369ed423d5ae8dStephen Warren	[1] = {
644b9652c2d127e994748d4bffc45369ed423d5ae8dStephen Warren		.start	= TEGRA_DMA_REQ_SEL_I2S_1,
645b9652c2d127e994748d4bffc45369ed423d5ae8dStephen Warren		.end	= TEGRA_DMA_REQ_SEL_I2S_1,
646b9652c2d127e994748d4bffc45369ed423d5ae8dStephen Warren		.flags	= IORESOURCE_DMA
647b9652c2d127e994748d4bffc45369ed423d5ae8dStephen Warren	},
648b9652c2d127e994748d4bffc45369ed423d5ae8dStephen Warren	[2] = {
649b9652c2d127e994748d4bffc45369ed423d5ae8dStephen Warren		.start	= TEGRA_I2S1_BASE,
650b9652c2d127e994748d4bffc45369ed423d5ae8dStephen Warren		.end	= TEGRA_I2S1_BASE + TEGRA_I2S1_SIZE - 1,
651b9652c2d127e994748d4bffc45369ed423d5ae8dStephen Warren		.flags	= IORESOURCE_MEM
652b9652c2d127e994748d4bffc45369ed423d5ae8dStephen Warren	}
653b9652c2d127e994748d4bffc45369ed423d5ae8dStephen Warren};
654b9652c2d127e994748d4bffc45369ed423d5ae8dStephen Warren
655b9652c2d127e994748d4bffc45369ed423d5ae8dStephen Warrenstatic struct resource i2s_resource2[] = {
656b9652c2d127e994748d4bffc45369ed423d5ae8dStephen Warren	[0] = {
657b9652c2d127e994748d4bffc45369ed423d5ae8dStephen Warren		.start	= INT_I2S2,
658b9652c2d127e994748d4bffc45369ed423d5ae8dStephen Warren		.end	= INT_I2S2,
659b9652c2d127e994748d4bffc45369ed423d5ae8dStephen Warren		.flags	= IORESOURCE_IRQ
660b9652c2d127e994748d4bffc45369ed423d5ae8dStephen Warren	},
661b9652c2d127e994748d4bffc45369ed423d5ae8dStephen Warren	[1] = {
662b9652c2d127e994748d4bffc45369ed423d5ae8dStephen Warren		.start	= TEGRA_DMA_REQ_SEL_I2S2_1,
663b9652c2d127e994748d4bffc45369ed423d5ae8dStephen Warren		.end	= TEGRA_DMA_REQ_SEL_I2S2_1,
664b9652c2d127e994748d4bffc45369ed423d5ae8dStephen Warren		.flags	= IORESOURCE_DMA
665b9652c2d127e994748d4bffc45369ed423d5ae8dStephen Warren	},
666b9652c2d127e994748d4bffc45369ed423d5ae8dStephen Warren	[2] = {
667b9652c2d127e994748d4bffc45369ed423d5ae8dStephen Warren		.start	= TEGRA_I2S2_BASE,
668b9652c2d127e994748d4bffc45369ed423d5ae8dStephen Warren		.end	= TEGRA_I2S2_BASE + TEGRA_I2S2_SIZE - 1,
669b9652c2d127e994748d4bffc45369ed423d5ae8dStephen Warren		.flags	= IORESOURCE_MEM
670b9652c2d127e994748d4bffc45369ed423d5ae8dStephen Warren	}
671b9652c2d127e994748d4bffc45369ed423d5ae8dStephen Warren};
672b9652c2d127e994748d4bffc45369ed423d5ae8dStephen Warren
673b9652c2d127e994748d4bffc45369ed423d5ae8dStephen Warrenstruct platform_device tegra_i2s_device1 = {
674b9652c2d127e994748d4bffc45369ed423d5ae8dStephen Warren	.name		= "tegra-i2s",
675b9652c2d127e994748d4bffc45369ed423d5ae8dStephen Warren	.id		= 0,
676b9652c2d127e994748d4bffc45369ed423d5ae8dStephen Warren	.resource	= i2s_resource1,
677b9652c2d127e994748d4bffc45369ed423d5ae8dStephen Warren	.num_resources	= ARRAY_SIZE(i2s_resource1),
678b9652c2d127e994748d4bffc45369ed423d5ae8dStephen Warren};
679b9652c2d127e994748d4bffc45369ed423d5ae8dStephen Warren
680b9652c2d127e994748d4bffc45369ed423d5ae8dStephen Warrenstruct platform_device tegra_i2s_device2 = {
681b9652c2d127e994748d4bffc45369ed423d5ae8dStephen Warren	.name		= "tegra-i2s",
682b9652c2d127e994748d4bffc45369ed423d5ae8dStephen Warren	.id		= 1,
683b9652c2d127e994748d4bffc45369ed423d5ae8dStephen Warren	.resource	= i2s_resource2,
684b9652c2d127e994748d4bffc45369ed423d5ae8dStephen Warren	.num_resources	= ARRAY_SIZE(i2s_resource2),
685b9652c2d127e994748d4bffc45369ed423d5ae8dStephen Warren};
686b9652c2d127e994748d4bffc45369ed423d5ae8dStephen Warren
687b9652c2d127e994748d4bffc45369ed423d5ae8dStephen Warrenstatic struct resource tegra_das_resources[] = {
688b9652c2d127e994748d4bffc45369ed423d5ae8dStephen Warren	[0] = {
689b9652c2d127e994748d4bffc45369ed423d5ae8dStephen Warren		.start = TEGRA_APB_MISC_DAS_BASE,
690b9652c2d127e994748d4bffc45369ed423d5ae8dStephen Warren		.end = TEGRA_APB_MISC_DAS_BASE + TEGRA_APB_MISC_DAS_SIZE - 1,
691b9652c2d127e994748d4bffc45369ed423d5ae8dStephen Warren		.flags = IORESOURCE_MEM,
692b9652c2d127e994748d4bffc45369ed423d5ae8dStephen Warren	},
693b9652c2d127e994748d4bffc45369ed423d5ae8dStephen Warren};
694b9652c2d127e994748d4bffc45369ed423d5ae8dStephen Warren
695b9652c2d127e994748d4bffc45369ed423d5ae8dStephen Warrenstruct platform_device tegra_das_device = {
696b9652c2d127e994748d4bffc45369ed423d5ae8dStephen Warren	.name		= "tegra-das",
697b9652c2d127e994748d4bffc45369ed423d5ae8dStephen Warren	.id		= -1,
698b9652c2d127e994748d4bffc45369ed423d5ae8dStephen Warren	.num_resources	= ARRAY_SIZE(tegra_das_resources),
699b9652c2d127e994748d4bffc45369ed423d5ae8dStephen Warren	.resource	= tegra_das_resources,
700b9652c2d127e994748d4bffc45369ed423d5ae8dStephen Warren};
701b9652c2d127e994748d4bffc45369ed423d5ae8dStephen Warren
702b9652c2d127e994748d4bffc45369ed423d5ae8dStephen Warrenstruct platform_device tegra_pcm_device = {
703b9652c2d127e994748d4bffc45369ed423d5ae8dStephen Warren	.name = "tegra-pcm-audio",
704b9652c2d127e994748d4bffc45369ed423d5ae8dStephen Warren	.id = -1,
705b9652c2d127e994748d4bffc45369ed423d5ae8dStephen Warren};
706