diff options
Diffstat (limited to 'arch')
| -rw-r--r-- | arch/arm/mach-pxa/pxa3xx.c | 37 |
1 files changed, 30 insertions, 7 deletions
diff --git a/arch/arm/mach-pxa/pxa3xx.c b/arch/arm/mach-pxa/pxa3xx.c index 5da798282a54..61d9c9d69e6b 100644 --- a/arch/arm/mach-pxa/pxa3xx.c +++ b/arch/arm/mach-pxa/pxa3xx.c | |||
| @@ -150,22 +150,45 @@ static void clk_pxa3xx_cken_disable(struct clk *clk) | |||
| 150 | local_irq_enable(); | 150 | local_irq_enable(); |
| 151 | } | 151 | } |
| 152 | 152 | ||
| 153 | static const struct clkops clk_pxa3xx_cken_ops = { | ||
| 154 | .enable = clk_pxa3xx_cken_enable, | ||
| 155 | .disable = clk_pxa3xx_cken_disable, | ||
| 156 | }; | ||
| 157 | |||
| 153 | static const struct clkops clk_pxa3xx_hsio_ops = { | 158 | static const struct clkops clk_pxa3xx_hsio_ops = { |
| 154 | .enable = clk_pxa3xx_cken_enable, | 159 | .enable = clk_pxa3xx_cken_enable, |
| 155 | .disable = clk_pxa3xx_cken_disable, | 160 | .disable = clk_pxa3xx_cken_disable, |
| 156 | .getrate = clk_pxa3xx_hsio_getrate, | 161 | .getrate = clk_pxa3xx_hsio_getrate, |
| 157 | }; | 162 | }; |
| 158 | 163 | ||
| 164 | #define PXA3xx_CKEN(_name, _cken, _rate, _delay, _dev) \ | ||
| 165 | { \ | ||
| 166 | .name = _name, \ | ||
| 167 | .dev = _dev, \ | ||
| 168 | .ops = &clk_pxa3xx_cken_ops, \ | ||
| 169 | .rate = _rate, \ | ||
| 170 | .cken = CKEN_##_cken, \ | ||
| 171 | .delay = _delay, \ | ||
| 172 | } | ||
| 173 | |||
| 174 | #define PXA3xx_CK(_name, _cken, _ops, _dev) \ | ||
| 175 | { \ | ||
| 176 | .name = _name, \ | ||
| 177 | .dev = _dev, \ | ||
| 178 | .ops = _ops, \ | ||
| 179 | .cken = CKEN_##_cken, \ | ||
| 180 | } | ||
| 181 | |||
| 159 | static struct clk pxa3xx_clks[] = { | 182 | static struct clk pxa3xx_clks[] = { |
| 160 | INIT_CK("LCDCLK", LCD, &clk_pxa3xx_hsio_ops, &pxa_device_fb.dev), | 183 | PXA3xx_CK("LCDCLK", LCD, &clk_pxa3xx_hsio_ops, &pxa_device_fb.dev), |
| 161 | INIT_CK("CAMCLK", CAMERA, &clk_pxa3xx_hsio_ops, NULL), | 184 | PXA3xx_CK("CAMCLK", CAMERA, &clk_pxa3xx_hsio_ops, NULL), |
| 162 | 185 | ||
| 163 | INIT_CKEN("UARTCLK", FFUART, 14857000, 1, &pxa_device_ffuart.dev), | 186 | PXA3xx_CKEN("UARTCLK", FFUART, 14857000, 1, &pxa_device_ffuart.dev), |
| 164 | INIT_CKEN("UARTCLK", BTUART, 14857000, 1, &pxa_device_btuart.dev), | 187 | PXA3xx_CKEN("UARTCLK", BTUART, 14857000, 1, &pxa_device_btuart.dev), |
| 165 | INIT_CKEN("UARTCLK", STUART, 14857000, 1, NULL), | 188 | PXA3xx_CKEN("UARTCLK", STUART, 14857000, 1, NULL), |
| 166 | 189 | ||
| 167 | INIT_CKEN("I2CCLK", I2C, 32842000, 0, &pxa_device_i2c.dev), | 190 | PXA3xx_CKEN("I2CCLK", I2C, 32842000, 0, &pxa_device_i2c.dev), |
| 168 | INIT_CKEN("UDCCLK", UDC, 48000000, 5, &pxa_device_udc.dev), | 191 | PXA3xx_CKEN("UDCCLK", UDC, 48000000, 5, &pxa_device_udc.dev), |
| 169 | }; | 192 | }; |
| 170 | 193 | ||
| 171 | void __init pxa3xx_init_irq(void) | 194 | void __init pxa3xx_init_irq(void) |
