FILE
sdhci.h
File preview with syntax highlighting.
linux-6.19.14/arch/arm/mach-s3c/sdhci.h
1/* SPDX-License-Identifier: GPL-2.0 */ 2/* 3 * Copyright (c) 2011 Samsung Electronics Co., Ltd. 4 * http://www.samsung.com 5 * 6 * Copyright 2008 Openmoko, Inc. 7 * Copyright 2008 Simtec Electronics 8 * http://armlinux.simtec.co.uk/ 9 * Ben Dooks <ben@simtec.co.uk> 10 * 11 * S3C Platform - SDHCI (HSMMC) platform data definitions 12 */ 13 14#ifndef __PLAT_S3C_SDHCI_H 15#define __PLAT_S3C_SDHCI_H __FILE__ 16 17#include <linux/platform_data/mmc-sdhci-s3c.h> 18#include "devs.h" 19 20/* s3c_sdhci_set_platdata() - common helper for setting SDHCI platform data 21 * @pd: The default platform data for this device. 22 * @set: Pointer to the platform data to fill in. 23 */ 24extern void s3c_sdhci_set_platdata(struct s3c_sdhci_platdata *pd, 25 struct s3c_sdhci_platdata *set); 26 27/** 28 * s3c_sdhci0_set_platdata - Set platform data for S3C SDHCI device. 29 * @pd: Platform data to register to device. 30 * 31 * Register the given platform data for use withe S3C SDHCI device. 32 * The call will copy the platform data, so the board definitions can 33 * make the structure itself __initdata. 34 */ 35extern void s3c_sdhci0_set_platdata(struct s3c_sdhci_platdata *pd); 36extern void s3c_sdhci1_set_platdata(struct s3c_sdhci_platdata *pd); 37extern void s3c_sdhci2_set_platdata(struct s3c_sdhci_platdata *pd); 38extern void s3c_sdhci3_set_platdata(struct s3c_sdhci_platdata *pd); 39 40/* Default platform data, exported so that per-cpu initialisation can 41 * set the correct one when there are more than one cpu type selected. 42*/ 43 44extern struct s3c_sdhci_platdata s3c_hsmmc0_def_platdata; 45extern struct s3c_sdhci_platdata s3c_hsmmc1_def_platdata; 46extern struct s3c_sdhci_platdata s3c_hsmmc2_def_platdata; 47extern struct s3c_sdhci_platdata s3c_hsmmc3_def_platdata; 48 49/* Helper function availability */ 50 51extern void s3c64xx_setup_sdhci0_cfg_gpio(struct platform_device *, int w); 52extern void s3c64xx_setup_sdhci1_cfg_gpio(struct platform_device *, int w); 53extern void s3c64xx_setup_sdhci2_cfg_gpio(struct platform_device *, int w); 54 55/* S3C64XX SDHCI setup */ 56 57#ifdef CONFIG_S3C64XX_SETUP_SDHCI 58static inline void s3c6400_default_sdhci0(void) 59{ 60#ifdef CONFIG_S3C_DEV_HSMMC 61 s3c_hsmmc0_def_platdata.cfg_gpio = s3c64xx_setup_sdhci0_cfg_gpio; 62#endif 63} 64 65static inline void s3c6400_default_sdhci1(void) 66{ 67#ifdef CONFIG_S3C_DEV_HSMMC1 68 s3c_hsmmc1_def_platdata.cfg_gpio = s3c64xx_setup_sdhci1_cfg_gpio; 69#endif 70} 71 72static inline void s3c6400_default_sdhci2(void) 73{ 74#ifdef CONFIG_S3C_DEV_HSMMC2 75 s3c_hsmmc2_def_platdata.cfg_gpio = s3c64xx_setup_sdhci2_cfg_gpio; 76#endif 77} 78 79static inline void s3c6410_default_sdhci0(void) 80{ 81#ifdef CONFIG_S3C_DEV_HSMMC 82 s3c_hsmmc0_def_platdata.cfg_gpio = s3c64xx_setup_sdhci0_cfg_gpio; 83#endif 84} 85 86static inline void s3c6410_default_sdhci1(void) 87{ 88#ifdef CONFIG_S3C_DEV_HSMMC1 89 s3c_hsmmc1_def_platdata.cfg_gpio = s3c64xx_setup_sdhci1_cfg_gpio; 90#endif 91} 92 93static inline void s3c6410_default_sdhci2(void) 94{ 95#ifdef CONFIG_S3C_DEV_HSMMC2 96 s3c_hsmmc2_def_platdata.cfg_gpio = s3c64xx_setup_sdhci2_cfg_gpio; 97#endif 98} 99 100#else 101static inline void s3c6410_default_sdhci0(void) { } 102static inline void s3c6410_default_sdhci1(void) { } 103static inline void s3c6410_default_sdhci2(void) { } 104static inline void s3c6400_default_sdhci0(void) { } 105static inline void s3c6400_default_sdhci1(void) { } 106static inline void s3c6400_default_sdhci2(void) { } 107 108#endif /* CONFIG_S3C64XX_SETUP_SDHCI */ 109 110static inline void s3c_sdhci_setname(int id, char *name) 111{ 112 switch (id) { 113#ifdef CONFIG_S3C_DEV_HSMMC 114 case 0: 115 s3c_device_hsmmc0.name = name; 116 break; 117#endif 118#ifdef CONFIG_S3C_DEV_HSMMC1 119 case 1: 120 s3c_device_hsmmc1.name = name; 121 break; 122#endif 123#ifdef CONFIG_S3C_DEV_HSMMC2 124 case 2: 125 s3c_device_hsmmc2.name = name; 126 break; 127#endif 128#ifdef CONFIG_S3C_DEV_HSMMC3 129 case 3: 130 s3c_device_hsmmc3.name = name; 131 break; 132#endif 133 default: 134 break; 135 } 136} 137#endif /* __PLAT_S3C_SDHCI_H */
~/
Read-only file preview.