0001
0002
0003
0004
0005
0006
0007
0008
0009
0010 #ifndef _ASM_ARCH_PCMCIA
0011 #define _ASM_ARCH_PCMCIA
0012
0013
0014 #include <linux/clk.h>
0015 #include <linux/cpufreq.h>
0016 #include <pcmcia/cistpl.h>
0017 #include <pcmcia/soc_common.h>
0018
0019 struct device;
0020 struct gpio_desc;
0021 struct pcmcia_low_level;
0022 struct regulator;
0023
0024 struct skt_dev_info {
0025 int nskt;
0026 struct soc_pcmcia_socket skt[];
0027 };
0028
0029 struct soc_pcmcia_timing {
0030 unsigned short io;
0031 unsigned short mem;
0032 unsigned short attr;
0033 };
0034
0035 extern void soc_common_pcmcia_get_timing(struct soc_pcmcia_socket *, struct soc_pcmcia_timing *);
0036
0037 void soc_pcmcia_init_one(struct soc_pcmcia_socket *skt,
0038 const struct pcmcia_low_level *ops, struct device *dev);
0039 void soc_pcmcia_remove_one(struct soc_pcmcia_socket *skt);
0040 int soc_pcmcia_add_one(struct soc_pcmcia_socket *skt);
0041 int soc_pcmcia_request_gpiods(struct soc_pcmcia_socket *skt);
0042
0043 void soc_common_cf_socket_state(struct soc_pcmcia_socket *skt,
0044 struct pcmcia_state *state);
0045
0046 int soc_pcmcia_regulator_set(struct soc_pcmcia_socket *skt,
0047 struct soc_pcmcia_regulator *r, int v);
0048
0049 #ifdef CONFIG_PCMCIA_DEBUG
0050
0051 extern void soc_pcmcia_debug(struct soc_pcmcia_socket *skt, const char *func,
0052 int lvl, const char *fmt, ...);
0053
0054 #define debug(skt, lvl, fmt, arg...) \
0055 soc_pcmcia_debug(skt, __func__, lvl, fmt , ## arg)
0056
0057 #else
0058 #define debug(skt, lvl, fmt, arg...) do { } while (0)
0059 #endif
0060
0061
0062
0063
0064
0065
0066
0067
0068
0069
0070
0071
0072
0073
0074
0075
0076
0077
0078
0079 #define SOC_PCMCIA_IO_ACCESS (165)
0080 #define SOC_PCMCIA_5V_MEM_ACCESS (150)
0081 #define SOC_PCMCIA_3V_MEM_ACCESS (300)
0082 #define SOC_PCMCIA_ATTR_MEM_ACCESS (300)
0083
0084
0085
0086
0087
0088 #define SOC_PCMCIA_POLL_PERIOD (2*HZ)
0089
0090
0091
0092
0093
0094
0095
0096
0097 #define iostschg bvd1
0098 #define iospkr bvd2
0099
0100 #endif