diff options
author | Russell King - ARM Linux <linux@arm.linux.org.uk> | 2009-03-29 14:42:44 -0400 |
---|---|---|
committer | Dominik Brodowski <linux@dominikbrodowski.net> | 2009-11-09 02:30:11 -0500 |
commit | 701a5dc05ad99a06958b3f97cb69d99b47cebee3 (patch) | |
tree | f91ab0cb2179fa771dfb3c9929bc09c7580ec3f8 /drivers/pcmcia/sa1100_jornada720.c | |
parent | da4f007375197d6683461b995d404b01a7fdf2f5 (diff) |
PCMCIA: sa1111: wrap soc_pcmcia_socket to contain sa1111 specific data
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Signed-off-by: Dominik Brodowski <linux@dominikbrodowski.net>
Diffstat (limited to 'drivers/pcmcia/sa1100_jornada720.c')
-rw-r--r-- | drivers/pcmcia/sa1100_jornada720.c | 20 |
1 files changed, 14 insertions, 6 deletions
diff --git a/drivers/pcmcia/sa1100_jornada720.c b/drivers/pcmcia/sa1100_jornada720.c index 7eedb42f800c..4a32f4f1a717 100644 --- a/drivers/pcmcia/sa1100_jornada720.c +++ b/drivers/pcmcia/sa1100_jornada720.c | |||
@@ -24,6 +24,7 @@ | |||
24 | 24 | ||
25 | static int jornada720_pcmcia_hw_init(struct soc_pcmcia_socket *skt) | 25 | static int jornada720_pcmcia_hw_init(struct soc_pcmcia_socket *skt) |
26 | { | 26 | { |
27 | struct sa1111_pcmcia_socket *s = to_skt(skt); | ||
27 | unsigned int pin = GPIO_A0 | GPIO_A1 | GPIO_A2 | GPIO_A3; | 28 | unsigned int pin = GPIO_A0 | GPIO_A1 | GPIO_A2 | GPIO_A3; |
28 | 29 | ||
29 | /* | 30 | /* |
@@ -31,9 +32,9 @@ static int jornada720_pcmcia_hw_init(struct soc_pcmcia_socket *skt) | |||
31 | */ | 32 | */ |
32 | GRER |= 0x00000002; | 33 | GRER |= 0x00000002; |
33 | /* Set GPIO_A<3:1> to be outputs for PCMCIA/CF power controller: */ | 34 | /* Set GPIO_A<3:1> to be outputs for PCMCIA/CF power controller: */ |
34 | sa1111_set_io_dir(SA1111_DEV(skt->dev), pin, 0, 0); | 35 | sa1111_set_io_dir(s->dev, pin, 0, 0); |
35 | sa1111_set_io(SA1111_DEV(skt->dev), pin, 0); | 36 | sa1111_set_io(s->dev, pin, 0); |
36 | sa1111_set_sleep_io(SA1111_DEV(skt->dev), pin, 0); | 37 | sa1111_set_sleep_io(s->dev, pin, 0); |
37 | 38 | ||
38 | return sa1111_pcmcia_hw_init(skt); | 39 | return sa1111_pcmcia_hw_init(skt); |
39 | } | 40 | } |
@@ -41,6 +42,7 @@ static int jornada720_pcmcia_hw_init(struct soc_pcmcia_socket *skt) | |||
41 | static int | 42 | static int |
42 | jornada720_pcmcia_configure_socket(struct soc_pcmcia_socket *skt, const socket_state_t *state) | 43 | jornada720_pcmcia_configure_socket(struct soc_pcmcia_socket *skt, const socket_state_t *state) |
43 | { | 44 | { |
45 | struct sa1111_pcmcia_socket *s = to_skt(skt); | ||
44 | unsigned int pa_dwr_mask, pa_dwr_set; | 46 | unsigned int pa_dwr_mask, pa_dwr_set; |
45 | int ret; | 47 | int ret; |
46 | 48 | ||
@@ -97,7 +99,7 @@ jornada720_pcmcia_configure_socket(struct soc_pcmcia_socket *skt, const socket_s | |||
97 | unsigned long flags; | 99 | unsigned long flags; |
98 | 100 | ||
99 | local_irq_save(flags); | 101 | local_irq_save(flags); |
100 | sa1111_set_io(SA1111_DEV(skt->dev), pa_dwr_mask, pa_dwr_set); | 102 | sa1111_set_io(s->dev, pa_dwr_mask, pa_dwr_set); |
101 | local_irq_restore(flags); | 103 | local_irq_restore(flags); |
102 | } | 104 | } |
103 | 105 | ||
@@ -113,14 +115,20 @@ static struct pcmcia_low_level jornada720_pcmcia_ops = { | |||
113 | 115 | ||
114 | .socket_init = sa1111_pcmcia_socket_init, | 116 | .socket_init = sa1111_pcmcia_socket_init, |
115 | .socket_suspend = sa1111_pcmcia_socket_suspend, | 117 | .socket_suspend = sa1111_pcmcia_socket_suspend, |
118 | |||
119 | .first = 0, | ||
120 | .nr = 2, | ||
116 | }; | 121 | }; |
117 | 122 | ||
118 | int __devinit pcmcia_jornada720_init(struct device *dev) | 123 | int __devinit pcmcia_jornada720_init(struct device *dev) |
119 | { | 124 | { |
120 | int ret = -ENODEV; | 125 | int ret = -ENODEV; |
121 | 126 | ||
122 | if (machine_is_jornada720()) | 127 | if (machine_is_jornada720()) { |
123 | ret = sa11xx_drv_pcmcia_probe(dev, &jornada720_pcmcia_ops, 0, 2); | 128 | sa11xx_drv_pcmcia_ops(&jornada720_pcmcia_ops); |
129 | ret = sa1111_pcmcia_add(dev, &jornada720_pcmcia_ops, | ||
130 | sa11xx_drv_pcmcia_add_one); | ||
131 | } | ||
124 | 132 | ||
125 | return ret; | 133 | return ret; |
126 | } | 134 | } |