linux/arch/x86/platform/intel-mid/device_libs/platform_mrfld_sd.c
<<
>>
Prefs
   1/*
   2 * SDHCI platform data initilisation file
   3 *
   4 * (C) Copyright 2016 Intel Corporation
   5 * Author: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
   6 *
   7 * This program is free software; you can redistribute it and/or
   8 * modify it under the terms of the GNU General Public License
   9 * as published by the Free Software Foundation; version 2
  10 * of the License.
  11 */
  12
  13#include <linux/init.h>
  14#include <linux/pci.h>
  15
  16#include <linux/mmc/sdhci-pci-data.h>
  17
  18#include <asm/intel-mid.h>
  19
  20#define INTEL_MRFLD_SD                  2
  21#define INTEL_MRFLD_SD_CD_GPIO          77
  22
  23static struct sdhci_pci_data mrfld_sdhci_pci_data = {
  24        .rst_n_gpio     = -EINVAL,
  25        .cd_gpio        = INTEL_MRFLD_SD_CD_GPIO,
  26};
  27
  28static struct sdhci_pci_data *
  29mrfld_sdhci_pci_get_data(struct pci_dev *pdev, int slotno)
  30{
  31        unsigned int func = PCI_FUNC(pdev->devfn);
  32
  33        if (func == INTEL_MRFLD_SD)
  34                return &mrfld_sdhci_pci_data;
  35
  36        return NULL;
  37}
  38
  39static int __init mrfld_sd_init(void)
  40{
  41        if (intel_mid_identify_cpu() != INTEL_MID_CPU_CHIP_TANGIER)
  42                return -ENODEV;
  43
  44        sdhci_pci_get_data = mrfld_sdhci_pci_get_data;
  45        return 0;
  46}
  47arch_initcall(mrfld_sd_init);
  48