Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit f02726a7 authored by Mike Rapoport's avatar Mike Rapoport
Browse files

ARM: tegra: trimslice: enable MMC/SD slots



TrimSlice has MicroSD and standard MMC/SD slots.
Register sdhci devices and enable GPIOs for MMC/SD slot.

Signed-off-by: default avatarMike Rapoport <mike@compulab.co.il>
parent d5fdafd3
Loading
Loading
Loading
Loading
+9 −0
Original line number Original line Diff line number Diff line
@@ -16,8 +16,11 @@


#include <linux/kernel.h>
#include <linux/kernel.h>
#include <linux/init.h>
#include <linux/init.h>

#include <mach/pinmux.h>
#include <mach/pinmux.h>
#include <mach/gpio.h>


#include "gpio-names.h"
#include "board-trimslice.h"
#include "board-trimslice.h"


static __initdata struct tegra_pingroup_config trimslice_pinmux[] = {
static __initdata struct tegra_pingroup_config trimslice_pinmux[] = {
@@ -139,7 +142,13 @@ static __initdata struct tegra_pingroup_config trimslice_pinmux[] = {
	{TEGRA_PINGROUP_XM2D,  TEGRA_MUX_NONE,          TEGRA_PUPD_NORMAL,      TEGRA_TRI_NORMAL},
	{TEGRA_PINGROUP_XM2D,  TEGRA_MUX_NONE,          TEGRA_PUPD_NORMAL,      TEGRA_TRI_NORMAL},
};
};


static struct tegra_gpio_table gpio_table[] = {
	{ .gpio = TRIMSLICE_GPIO_SD4_CD, .enable = true	}, /* mmc4 cd */
	{ .gpio = TRIMSLICE_GPIO_SD4_WP, .enable = true	}, /* mmc4 wp */
};

void __init trimslice_pinmux_init(void)
void __init trimslice_pinmux_init(void)
{
{
	tegra_pinmux_config_table(trimslice_pinmux, ARRAY_SIZE(trimslice_pinmux));
	tegra_pinmux_config_table(trimslice_pinmux, ARRAY_SIZE(trimslice_pinmux));
	tegra_gpio_config(gpio_table, ARRAY_SIZE(gpio_table));
}
}
+19 −0
Original line number Original line Diff line number Diff line
@@ -29,9 +29,12 @@
#include <asm/setup.h>
#include <asm/setup.h>


#include <mach/iomap.h>
#include <mach/iomap.h>
#include <mach/sdhci.h>


#include "board.h"
#include "board.h"
#include "clock.h"
#include "clock.h"
#include "devices.h"
#include "gpio-names.h"


#include "board-trimslice.h"
#include "board-trimslice.h"


@@ -56,9 +59,22 @@ static struct platform_device debug_uart = {
		.platform_data	= debug_uart_platform_data,
		.platform_data	= debug_uart_platform_data,
	},
	},
};
};
static struct tegra_sdhci_platform_data sdhci_pdata1 = {
	.cd_gpio	= -1,
	.wp_gpio	= -1,
	.power_gpio	= -1,
};

static struct tegra_sdhci_platform_data sdhci_pdata4 = {
	.cd_gpio	= TRIMSLICE_GPIO_SD4_CD,
	.wp_gpio	= TRIMSLICE_GPIO_SD4_WP,
	.power_gpio	= -1,
};


static struct platform_device *trimslice_devices[] __initdata = {
static struct platform_device *trimslice_devices[] __initdata = {
	&debug_uart,
	&debug_uart,
	&tegra_sdhci_device1,
	&tegra_sdhci_device4,
};
};


static void __init tegra_trimslice_fixup(struct machine_desc *desc,
static void __init tegra_trimslice_fixup(struct machine_desc *desc,
@@ -92,6 +108,9 @@ static void __init tegra_trimslice_init(void)


	trimslice_pinmux_init();
	trimslice_pinmux_init();


	tegra_sdhci_device1.dev.platform_data = &sdhci_pdata1;
	tegra_sdhci_device4.dev.platform_data = &sdhci_pdata4;

	platform_add_devices(trimslice_devices, ARRAY_SIZE(trimslice_devices));
	platform_add_devices(trimslice_devices, ARRAY_SIZE(trimslice_devices));
}
}


+3 −0
Original line number Original line Diff line number Diff line
@@ -17,6 +17,9 @@
#ifndef _MACH_TEGRA_BOARD_TRIMSLICE_H
#ifndef _MACH_TEGRA_BOARD_TRIMSLICE_H
#define _MACH_TEGRA_BOARD_TRIMSLICE_H
#define _MACH_TEGRA_BOARD_TRIMSLICE_H


#define TRIMSLICE_GPIO_SD4_CD	TEGRA_GPIO_PP1	/* mmc4 cd */
#define TRIMSLICE_GPIO_SD4_WP	TEGRA_GPIO_PP2	/* mmc4 wp */

void trimslice_pinmux_init(void);
void trimslice_pinmux_init(void);


#endif
#endif