cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

board-h3-mmc.c (1435B)


      1// SPDX-License-Identifier: GPL-2.0-only
      2/*
      3 * linux/arch/arm/mach-omap1/board-h3-mmc.c
      4 *
      5 * Copyright (C) 2007 Instituto Nokia de Tecnologia - INdT
      6 * Author: Felipe Balbi <felipe.lima@indt.org.br>
      7 *
      8 * This code is based on linux/arch/arm/mach-omap2/board-n800-mmc.c, which is:
      9 * Copyright (C) 2006 Nokia Corporation
     10 */
     11#include <linux/gpio.h>
     12#include <linux/platform_device.h>
     13
     14#include <linux/mfd/tps65010.h>
     15
     16#include "common.h"
     17#include "board-h3.h"
     18#include "mmc.h"
     19
     20#if IS_ENABLED(CONFIG_MMC_OMAP)
     21
     22static int mmc_set_power(struct device *dev, int slot, int power_on,
     23				int vdd)
     24{
     25	gpio_set_value(H3_TPS_GPIO_MMC_PWR_EN, power_on);
     26	return 0;
     27}
     28
     29/*
     30 * H3 could use the following functions tested:
     31 * - mmc_get_cover_state that uses OMAP_MPUIO(1)
     32 * - mmc_get_wp that maybe uses OMAP_MPUIO(3)
     33 */
     34static struct omap_mmc_platform_data mmc1_data = {
     35	.nr_slots                       = 1,
     36	.slots[0]       = {
     37		.set_power              = mmc_set_power,
     38		.ocr_mask               = MMC_VDD_32_33 | MMC_VDD_33_34,
     39		.name                   = "mmcblk",
     40	},
     41};
     42
     43static struct omap_mmc_platform_data *mmc_data[OMAP16XX_NR_MMC];
     44
     45void __init h3_mmc_init(void)
     46{
     47	int ret;
     48
     49	ret = gpio_request(H3_TPS_GPIO_MMC_PWR_EN, "MMC power");
     50	if (ret < 0)
     51		return;
     52	gpio_direction_output(H3_TPS_GPIO_MMC_PWR_EN, 0);
     53
     54	mmc_data[0] = &mmc1_data;
     55	omap1_init_mmc(mmc_data, OMAP16XX_NR_MMC);
     56}
     57
     58#else
     59
     60void __init h3_mmc_init(void)
     61{
     62}
     63
     64#endif