diff options
Diffstat (limited to 'arch/arm/mach-pxa')
-rw-r--r-- | arch/arm/mach-pxa/akita-ioexp.c | 2 | ||||
-rw-r--r-- | arch/arm/mach-pxa/pxa25x.c | 9 | ||||
-rw-r--r-- | arch/arm/mach-pxa/pxa27x.c | 6 | ||||
-rw-r--r-- | arch/arm/mach-pxa/pxa3xx.c | 2 | ||||
-rw-r--r-- | arch/arm/mach-pxa/ssp.c | 2 |
5 files changed, 17 insertions, 4 deletions
diff --git a/arch/arm/mach-pxa/akita-ioexp.c b/arch/arm/mach-pxa/akita-ioexp.c index 12d2fe0ceff6..254892ac30cd 100644 --- a/arch/arm/mach-pxa/akita-ioexp.c +++ b/arch/arm/mach-pxa/akita-ioexp.c | |||
@@ -29,7 +29,7 @@ | |||
29 | #define MAX7310_TIMEOUT 0x04 | 29 | #define MAX7310_TIMEOUT 0x04 |
30 | 30 | ||
31 | /* Addresses to scan */ | 31 | /* Addresses to scan */ |
32 | static unsigned short normal_i2c[] = { 0x18, I2C_CLIENT_END }; | 32 | static const unsigned short normal_i2c[] = { 0x18, I2C_CLIENT_END }; |
33 | 33 | ||
34 | /* I2C Magic */ | 34 | /* I2C Magic */ |
35 | I2C_CLIENT_INSMOD; | 35 | I2C_CLIENT_INSMOD; |
diff --git a/arch/arm/mach-pxa/pxa25x.c b/arch/arm/mach-pxa/pxa25x.c index 9732d5d9466b..006a6e09589c 100644 --- a/arch/arm/mach-pxa/pxa25x.c +++ b/arch/arm/mach-pxa/pxa25x.c | |||
@@ -111,11 +111,14 @@ static const struct clkops clk_pxa25x_lcd_ops = { | |||
111 | * 95.842MHz -> MMC 19.169MHz, I2C 31.949MHz, FICP 47.923MHz, USB 47.923MHz | 111 | * 95.842MHz -> MMC 19.169MHz, I2C 31.949MHz, FICP 47.923MHz, USB 47.923MHz |
112 | * 147.456MHz -> UART 14.7456MHz, AC97 12.288MHz, I2S 5.672MHz (allegedly) | 112 | * 147.456MHz -> UART 14.7456MHz, AC97 12.288MHz, I2S 5.672MHz (allegedly) |
113 | */ | 113 | */ |
114 | static struct clk pxa25x_hwuart_clk = | ||
115 | INIT_CKEN("UARTCLK", HWUART, 14745600, 1, &pxa_device_hwuart.dev) | ||
116 | ; | ||
117 | |||
114 | static struct clk pxa25x_clks[] = { | 118 | static struct clk pxa25x_clks[] = { |
115 | INIT_CK("LCDCLK", LCD, &clk_pxa25x_lcd_ops, &pxa_device_fb.dev), | 119 | INIT_CK("LCDCLK", LCD, &clk_pxa25x_lcd_ops, &pxa_device_fb.dev), |
116 | INIT_CKEN("UARTCLK", FFUART, 14745600, 1, &pxa_device_ffuart.dev), | 120 | INIT_CKEN("UARTCLK", FFUART, 14745600, 1, &pxa_device_ffuart.dev), |
117 | INIT_CKEN("UARTCLK", BTUART, 14745600, 1, &pxa_device_btuart.dev), | 121 | INIT_CKEN("UARTCLK", BTUART, 14745600, 1, &pxa_device_btuart.dev), |
118 | INIT_CKEN("UARTCLK", BTUART, 14745600, 1, &pxa_device_btuart.dev), | ||
119 | INIT_CKEN("UARTCLK", STUART, 14745600, 1, NULL), | 122 | INIT_CKEN("UARTCLK", STUART, 14745600, 1, NULL), |
120 | INIT_CKEN("UDCCLK", USB, 47923000, 5, &pxa_device_udc.dev), | 123 | INIT_CKEN("UDCCLK", USB, 47923000, 5, &pxa_device_udc.dev), |
121 | INIT_CKEN("MMCCLK", MMC, 19169000, 0, &pxa_device_mci.dev), | 124 | INIT_CKEN("MMCCLK", MMC, 19169000, 0, &pxa_device_mci.dev), |
@@ -303,6 +306,10 @@ static int __init pxa25x_init(void) | |||
303 | { | 306 | { |
304 | int ret = 0; | 307 | int ret = 0; |
305 | 308 | ||
309 | /* Only add HWUART for PXA255/26x; PXA210/250/27x do not have it. */ | ||
310 | if (cpu_is_pxa25x()) | ||
311 | clks_register(&pxa25x_hwuart_clk, 1); | ||
312 | |||
306 | if (cpu_is_pxa21x() || cpu_is_pxa25x()) { | 313 | if (cpu_is_pxa21x() || cpu_is_pxa25x()) { |
307 | clks_register(pxa25x_clks, ARRAY_SIZE(pxa25x_clks)); | 314 | clks_register(pxa25x_clks, ARRAY_SIZE(pxa25x_clks)); |
308 | 315 | ||
diff --git a/arch/arm/mach-pxa/pxa27x.c b/arch/arm/mach-pxa/pxa27x.c index 8e126e6b74c3..57efebdc4324 100644 --- a/arch/arm/mach-pxa/pxa27x.c +++ b/arch/arm/mach-pxa/pxa27x.c | |||
@@ -24,6 +24,7 @@ | |||
24 | #include <asm/arch/ohci.h> | 24 | #include <asm/arch/ohci.h> |
25 | #include <asm/arch/pm.h> | 25 | #include <asm/arch/pm.h> |
26 | #include <asm/arch/dma.h> | 26 | #include <asm/arch/dma.h> |
27 | #include <asm/arch/i2c.h> | ||
27 | 28 | ||
28 | #include "generic.h" | 29 | #include "generic.h" |
29 | #include "devices.h" | 30 | #include "devices.h" |
@@ -423,6 +424,11 @@ struct platform_device pxa27x_device_i2c_power = { | |||
423 | .num_resources = ARRAY_SIZE(i2c_power_resources), | 424 | .num_resources = ARRAY_SIZE(i2c_power_resources), |
424 | }; | 425 | }; |
425 | 426 | ||
427 | void __init pxa_set_i2c_power_info(struct i2c_pxa_platform_data *info) | ||
428 | { | ||
429 | pxa27x_device_i2c_power.dev.platform_data = info; | ||
430 | } | ||
431 | |||
426 | static struct platform_device *devices[] __initdata = { | 432 | static struct platform_device *devices[] __initdata = { |
427 | &pxa_device_mci, | 433 | &pxa_device_mci, |
428 | &pxa_device_udc, | 434 | &pxa_device_udc, |
diff --git a/arch/arm/mach-pxa/pxa3xx.c b/arch/arm/mach-pxa/pxa3xx.c index 61d9c9d69e6b..37e93f9ba8fc 100644 --- a/arch/arm/mach-pxa/pxa3xx.c +++ b/arch/arm/mach-pxa/pxa3xx.c | |||
@@ -86,7 +86,7 @@ unsigned int pxa3xx_get_clk_frequency_khz(int info) | |||
86 | HSS / 1000000, (HSS % 1000000) / 10000); | 86 | HSS / 1000000, (HSS % 1000000) / 10000); |
87 | } | 87 | } |
88 | 88 | ||
89 | return CLK; | 89 | return CLK / 1000; |
90 | } | 90 | } |
91 | 91 | ||
92 | /* | 92 | /* |
diff --git a/arch/arm/mach-pxa/ssp.c b/arch/arm/mach-pxa/ssp.c index 422afee88169..b2eb38543d1c 100644 --- a/arch/arm/mach-pxa/ssp.c +++ b/arch/arm/mach-pxa/ssp.c | |||
@@ -67,7 +67,7 @@ static int use_count[PXA_SSP_PORTS] = {0, 0, 0}; | |||
67 | 67 | ||
68 | static irqreturn_t ssp_interrupt(int irq, void *dev_id) | 68 | static irqreturn_t ssp_interrupt(int irq, void *dev_id) |
69 | { | 69 | { |
70 | struct ssp_dev *dev = (struct ssp_dev*) dev_id; | 70 | struct ssp_dev *dev = dev_id; |
71 | unsigned int status = SSSR_P(dev->port); | 71 | unsigned int status = SSSR_P(dev->port); |
72 | 72 | ||
73 | SSSR_P(dev->port) = status; /* clear status bits */ | 73 | SSSR_P(dev->port) = status; /* clear status bits */ |