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-sx1-mmc.c (1380B)


      1// SPDX-License-Identifier: GPL-2.0-only
      2/*
      3 * linux/arch/arm/mach-omap1/board-sx1-mmc.c
      4 *
      5 * Copyright (C) 2007 Instituto Nokia de Tecnologia - INdT
      6 * Author: Carlos Eduardo Aguiar <carlos.aguiar@indt.org.br>
      7 *
      8 * This code is based on linux/arch/arm/mach-omap1/board-h2-mmc.c, which is:
      9 * Copyright (C) 2007 Instituto Nokia de Tecnologia - INdT
     10 */
     11
     12#include <linux/gpio.h>
     13#include <linux/platform_device.h>
     14
     15#include "hardware.h"
     16#include "board-sx1.h"
     17#include "mmc.h"
     18
     19#if IS_ENABLED(CONFIG_MMC_OMAP)
     20
     21static int mmc_set_power(struct device *dev, int slot, int power_on,
     22				int vdd)
     23{
     24	int err;
     25	u8 dat = 0;
     26
     27	err = sx1_i2c_read_byte(SOFIA_I2C_ADDR, SOFIA_POWER1_REG, &dat);
     28	if (err < 0)
     29		return err;
     30
     31	if (power_on)
     32		dat |= SOFIA_MMC_POWER;
     33	else
     34		dat &= ~SOFIA_MMC_POWER;
     35
     36	return sx1_i2c_write_byte(SOFIA_I2C_ADDR, SOFIA_POWER1_REG, dat);
     37}
     38
     39/* Cover switch is at OMAP_MPUIO(3) */
     40static struct omap_mmc_platform_data mmc1_data = {
     41	.nr_slots                       = 1,
     42	.slots[0]       = {
     43		.set_power              = mmc_set_power,
     44		.ocr_mask               = MMC_VDD_32_33 | MMC_VDD_33_34,
     45		.name                   = "mmcblk",
     46	},
     47};
     48
     49static struct omap_mmc_platform_data *mmc_data[OMAP15XX_NR_MMC];
     50
     51void __init sx1_mmc_init(void)
     52{
     53	mmc_data[0] = &mmc1_data;
     54	omap1_init_mmc(mmc_data, OMAP15XX_NR_MMC);
     55}
     56
     57#else
     58
     59void __init sx1_mmc_init(void)
     60{
     61}
     62
     63#endif