root/arch/arm/mach-omap1/board-h3-mmc.c

/* [<][>][^][v][top][bottom][index][help] */

DEFINITIONS

This source file includes following definitions.
  1. mmc_set_power
  2. h3_mmc_init
  3. h3_mmc_init

   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 
  22 static 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  */
  34 static 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 
  43 static struct omap_mmc_platform_data *mmc_data[OMAP16XX_NR_MMC];
  44 
  45 void __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 
  60 void __init h3_mmc_init(void)
  61 {
  62 }
  63 
  64 #endif

/* [<][>][^][v][top][bottom][index][help] */