diff options
-rw-r--r-- | arch/arm/mach-pxa/mfp.c | 111 | ||||
-rw-r--r-- | include/asm-arm/arch-pxa/mfp.h | 14 |
2 files changed, 0 insertions, 125 deletions
diff --git a/arch/arm/mach-pxa/mfp.c b/arch/arm/mach-pxa/mfp.c index 436f96574964..785ae0ddb84f 100644 --- a/arch/arm/mach-pxa/mfp.c +++ b/arch/arm/mach-pxa/mfp.c | |||
@@ -96,117 +96,6 @@ void pxa3xx_mfp_write(int mfp, unsigned long val) | |||
96 | spin_unlock_irqrestore(&mfp_spin_lock, flags); | 96 | spin_unlock_irqrestore(&mfp_spin_lock, flags); |
97 | } | 97 | } |
98 | 98 | ||
99 | void pxa3xx_mfp_set_afds(int mfp, int af, int ds) | ||
100 | { | ||
101 | uint32_t mfpr_off, mfpr_val; | ||
102 | unsigned long flags; | ||
103 | |||
104 | BUG_ON(mfp >= MFP_PIN_MAX); | ||
105 | |||
106 | spin_lock_irqsave(&mfp_spin_lock, flags); | ||
107 | mfpr_off = mfp_table[mfp].mfpr_off; | ||
108 | |||
109 | mfpr_val = mfpr_readl(mfpr_off); | ||
110 | mfpr_val &= ~(MFPR_AF_MASK | MFPR_DRV_MASK); | ||
111 | mfpr_val |= (((af & 0x7) << MFPR_ALT_OFFSET) | | ||
112 | ((ds & 0x7) << MFPR_DRV_OFFSET)); | ||
113 | |||
114 | mfpr_writel(mfpr_off, mfpr_val); | ||
115 | mfpr_sync(); | ||
116 | |||
117 | spin_unlock_irqrestore(&mfp_spin_lock, flags); | ||
118 | } | ||
119 | |||
120 | void pxa3xx_mfp_set_rdh(int mfp, int rdh) | ||
121 | { | ||
122 | uint32_t mfpr_off, mfpr_val; | ||
123 | unsigned long flags; | ||
124 | |||
125 | BUG_ON(mfp >= MFP_PIN_MAX); | ||
126 | |||
127 | spin_lock_irqsave(&mfp_spin_lock, flags); | ||
128 | |||
129 | mfpr_off = mfp_table[mfp].mfpr_off; | ||
130 | |||
131 | mfpr_val = mfpr_readl(mfpr_off); | ||
132 | mfpr_val &= ~MFPR_RDH_MASK; | ||
133 | |||
134 | if (likely(rdh)) | ||
135 | mfpr_val |= (1u << MFPR_SS_OFFSET); | ||
136 | |||
137 | mfpr_writel(mfpr_off, mfpr_val); | ||
138 | mfpr_sync(); | ||
139 | |||
140 | spin_unlock_irqrestore(&mfp_spin_lock, flags); | ||
141 | } | ||
142 | |||
143 | void pxa3xx_mfp_set_lpm(int mfp, int lpm) | ||
144 | { | ||
145 | uint32_t mfpr_off, mfpr_val; | ||
146 | unsigned long flags; | ||
147 | |||
148 | BUG_ON(mfp >= MFP_PIN_MAX); | ||
149 | |||
150 | spin_lock_irqsave(&mfp_spin_lock, flags); | ||
151 | |||
152 | mfpr_off = mfp_table[mfp].mfpr_off; | ||
153 | mfpr_val = mfpr_readl(mfpr_off); | ||
154 | mfpr_val &= ~MFPR_LPM_MASK; | ||
155 | |||
156 | if (lpm & 0x1) mfpr_val |= 1u << MFPR_SON_OFFSET; | ||
157 | if (lpm & 0x2) mfpr_val |= 1u << MFPR_SD_OFFSET; | ||
158 | if (lpm & 0x4) mfpr_val |= 1u << MFPR_PU_OFFSET; | ||
159 | if (lpm & 0x8) mfpr_val |= 1u << MFPR_PD_OFFSET; | ||
160 | if (lpm &0x10) mfpr_val |= 1u << MFPR_PS_OFFSET; | ||
161 | |||
162 | mfpr_writel(mfpr_off, mfpr_val); | ||
163 | mfpr_sync(); | ||
164 | |||
165 | spin_unlock_irqrestore(&mfp_spin_lock, flags); | ||
166 | } | ||
167 | |||
168 | void pxa3xx_mfp_set_pull(int mfp, int pull) | ||
169 | { | ||
170 | uint32_t mfpr_off, mfpr_val; | ||
171 | unsigned long flags; | ||
172 | |||
173 | BUG_ON(mfp >= MFP_PIN_MAX); | ||
174 | |||
175 | spin_lock_irqsave(&mfp_spin_lock, flags); | ||
176 | |||
177 | mfpr_off = mfp_table[mfp].mfpr_off; | ||
178 | mfpr_val = mfpr_readl(mfpr_off); | ||
179 | mfpr_val &= ~MFPR_PULL_MASK; | ||
180 | mfpr_val |= ((pull & 0x7u) << MFPR_PD_OFFSET); | ||
181 | |||
182 | mfpr_writel(mfpr_off, mfpr_val); | ||
183 | mfpr_sync(); | ||
184 | |||
185 | spin_unlock_irqrestore(&mfp_spin_lock, flags); | ||
186 | } | ||
187 | |||
188 | void pxa3xx_mfp_set_edge(int mfp, int edge) | ||
189 | { | ||
190 | uint32_t mfpr_off, mfpr_val; | ||
191 | unsigned long flags; | ||
192 | |||
193 | BUG_ON(mfp >= MFP_PIN_MAX); | ||
194 | |||
195 | spin_lock_irqsave(&mfp_spin_lock, flags); | ||
196 | |||
197 | mfpr_off = mfp_table[mfp].mfpr_off; | ||
198 | mfpr_val = mfpr_readl(mfpr_off); | ||
199 | |||
200 | mfpr_val &= ~MFPR_EDGE_MASK; | ||
201 | mfpr_val |= (edge & 0x3u) << MFPR_ERE_OFFSET; | ||
202 | mfpr_val |= (!edge & 0x1) << MFPR_EC_OFFSET; | ||
203 | |||
204 | mfpr_writel(mfpr_off, mfpr_val); | ||
205 | mfpr_sync(); | ||
206 | |||
207 | spin_unlock_irqrestore(&mfp_spin_lock, flags); | ||
208 | } | ||
209 | |||
210 | void __init pxa3xx_mfp_init_addr(struct pxa3xx_mfp_addr_map *map) | 99 | void __init pxa3xx_mfp_init_addr(struct pxa3xx_mfp_addr_map *map) |
211 | { | 100 | { |
212 | struct pxa3xx_mfp_addr_map *p; | 101 | struct pxa3xx_mfp_addr_map *p; |
diff --git a/include/asm-arm/arch-pxa/mfp.h b/include/asm-arm/arch-pxa/mfp.h index 7de234b0cca7..60fbed1b2e89 100644 --- a/include/asm-arm/arch-pxa/mfp.h +++ b/include/asm-arm/arch-pxa/mfp.h | |||
@@ -419,20 +419,6 @@ unsigned long pxa3xx_mfp_read(int mfp); | |||
419 | void pxa3xx_mfp_write(int mfp, unsigned long mfpr_val); | 419 | void pxa3xx_mfp_write(int mfp, unsigned long mfpr_val); |
420 | 420 | ||
421 | /* | 421 | /* |
422 | * pxa3xx_mfp_set_afds - set MFP alternate function and drive strength | ||
423 | * pxa3xx_mfp_set_rdh - set MFP release delay hold on/off | ||
424 | * pxa3xx_mfp_set_lpm - set MFP low power mode state | ||
425 | * pxa3xx_mfp_set_edge - set MFP edge detection in low power mode | ||
426 | * | ||
427 | * use these functions to override/change the default configuration | ||
428 | * done by pxa3xx_mfp_set_config(s) | ||
429 | */ | ||
430 | void pxa3xx_mfp_set_afds(int mfp, int af, int ds); | ||
431 | void pxa3xx_mfp_set_rdh(int mfp, int rdh); | ||
432 | void pxa3xx_mfp_set_lpm(int mfp, int lpm); | ||
433 | void pxa3xx_mfp_set_edge(int mfp, int edge); | ||
434 | |||
435 | /* | ||
436 | * pxa3xx_mfp_config - configure the MFPR registers | 422 | * pxa3xx_mfp_config - configure the MFPR registers |
437 | * | 423 | * |
438 | * used by board specific initialization code | 424 | * used by board specific initialization code |