• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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 
23 static struct sdhci_pci_data mrfld_sdhci_pci_data = {
24 	.rst_n_gpio	= -EINVAL,
25 	.cd_gpio	= INTEL_MRFLD_SD_CD_GPIO,
26 };
27 
28 static struct sdhci_pci_data *
mrfld_sdhci_pci_get_data(struct pci_dev * pdev,int slotno)29 mrfld_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 
mrfld_sd_init(void)39 static 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 }
47 arch_initcall(mrfld_sd_init);
48