diff options
Diffstat (limited to 'arch/arm/plat-omap')
| -rw-r--r-- | arch/arm/plat-omap/common.c | 22 | ||||
| -rw-r--r-- | arch/arm/plat-omap/dma.c | 9 | ||||
| -rw-r--r-- | arch/arm/plat-omap/gpio.c | 6 | ||||
| -rw-r--r-- | arch/arm/plat-omap/include/plat/irqs.h | 2 | ||||
| -rw-r--r-- | arch/arm/plat-omap/include/plat/mcbsp.h | 2 | ||||
| -rw-r--r-- | arch/arm/plat-omap/include/plat/nand.h | 7 | ||||
| -rw-r--r-- | arch/arm/plat-omap/include/plat/omap44xx.h | 2 | ||||
| -rw-r--r-- | arch/arm/plat-omap/include/plat/omap_hwmod.h | 2 | ||||
| -rw-r--r-- | arch/arm/plat-omap/include/plat/usb.h | 2 |
9 files changed, 37 insertions, 17 deletions
diff --git a/arch/arm/plat-omap/common.c b/arch/arm/plat-omap/common.c index 088c1a03b946..f12f0e39ddf2 100644 --- a/arch/arm/plat-omap/common.c +++ b/arch/arm/plat-omap/common.c | |||
| @@ -44,9 +44,6 @@ | |||
| 44 | 44 | ||
| 45 | #define NO_LENGTH_CHECK 0xffffffff | 45 | #define NO_LENGTH_CHECK 0xffffffff |
| 46 | 46 | ||
| 47 | unsigned char omap_bootloader_tag[512]; | ||
| 48 | int omap_bootloader_tag_len; | ||
| 49 | |||
| 50 | struct omap_board_config_kernel *omap_board_config; | 47 | struct omap_board_config_kernel *omap_board_config; |
| 51 | int omap_board_config_size; | 48 | int omap_board_config_size; |
| 52 | 49 | ||
| @@ -100,10 +97,17 @@ EXPORT_SYMBOL(omap_get_var_config); | |||
| 100 | 97 | ||
| 101 | #include <linux/clocksource.h> | 98 | #include <linux/clocksource.h> |
| 102 | 99 | ||
| 100 | /* | ||
| 101 | * offset_32k holds the init time counter value. It is then subtracted | ||
| 102 | * from every counter read to achieve a counter that counts time from the | ||
| 103 | * kernel boot (needed for sched_clock()). | ||
| 104 | */ | ||
| 105 | static u32 offset_32k __read_mostly; | ||
| 106 | |||
| 103 | #ifdef CONFIG_ARCH_OMAP16XX | 107 | #ifdef CONFIG_ARCH_OMAP16XX |
| 104 | static cycle_t omap16xx_32k_read(struct clocksource *cs) | 108 | static cycle_t omap16xx_32k_read(struct clocksource *cs) |
| 105 | { | 109 | { |
| 106 | return omap_readl(OMAP16XX_TIMER_32K_SYNCHRONIZED); | 110 | return omap_readl(OMAP16XX_TIMER_32K_SYNCHRONIZED) - offset_32k; |
| 107 | } | 111 | } |
| 108 | #else | 112 | #else |
| 109 | #define omap16xx_32k_read NULL | 113 | #define omap16xx_32k_read NULL |
| @@ -112,7 +116,7 @@ static cycle_t omap16xx_32k_read(struct clocksource *cs) | |||
| 112 | #ifdef CONFIG_ARCH_OMAP2420 | 116 | #ifdef CONFIG_ARCH_OMAP2420 |
| 113 | static cycle_t omap2420_32k_read(struct clocksource *cs) | 117 | static cycle_t omap2420_32k_read(struct clocksource *cs) |
| 114 | { | 118 | { |
| 115 | return omap_readl(OMAP2420_32KSYNCT_BASE + 0x10); | 119 | return omap_readl(OMAP2420_32KSYNCT_BASE + 0x10) - offset_32k; |
| 116 | } | 120 | } |
| 117 | #else | 121 | #else |
| 118 | #define omap2420_32k_read NULL | 122 | #define omap2420_32k_read NULL |
| @@ -121,7 +125,7 @@ static cycle_t omap2420_32k_read(struct clocksource *cs) | |||
| 121 | #ifdef CONFIG_ARCH_OMAP2430 | 125 | #ifdef CONFIG_ARCH_OMAP2430 |
| 122 | static cycle_t omap2430_32k_read(struct clocksource *cs) | 126 | static cycle_t omap2430_32k_read(struct clocksource *cs) |
| 123 | { | 127 | { |
| 124 | return omap_readl(OMAP2430_32KSYNCT_BASE + 0x10); | 128 | return omap_readl(OMAP2430_32KSYNCT_BASE + 0x10) - offset_32k; |
| 125 | } | 129 | } |
| 126 | #else | 130 | #else |
| 127 | #define omap2430_32k_read NULL | 131 | #define omap2430_32k_read NULL |
| @@ -130,7 +134,7 @@ static cycle_t omap2430_32k_read(struct clocksource *cs) | |||
| 130 | #ifdef CONFIG_ARCH_OMAP3 | 134 | #ifdef CONFIG_ARCH_OMAP3 |
| 131 | static cycle_t omap34xx_32k_read(struct clocksource *cs) | 135 | static cycle_t omap34xx_32k_read(struct clocksource *cs) |
| 132 | { | 136 | { |
| 133 | return omap_readl(OMAP3430_32KSYNCT_BASE + 0x10); | 137 | return omap_readl(OMAP3430_32KSYNCT_BASE + 0x10) - offset_32k; |
| 134 | } | 138 | } |
| 135 | #else | 139 | #else |
| 136 | #define omap34xx_32k_read NULL | 140 | #define omap34xx_32k_read NULL |
| @@ -139,7 +143,7 @@ static cycle_t omap34xx_32k_read(struct clocksource *cs) | |||
| 139 | #ifdef CONFIG_ARCH_OMAP4 | 143 | #ifdef CONFIG_ARCH_OMAP4 |
| 140 | static cycle_t omap44xx_32k_read(struct clocksource *cs) | 144 | static cycle_t omap44xx_32k_read(struct clocksource *cs) |
| 141 | { | 145 | { |
| 142 | return omap_readl(OMAP4430_32KSYNCT_BASE + 0x10); | 146 | return omap_readl(OMAP4430_32KSYNCT_BASE + 0x10) - offset_32k; |
| 143 | } | 147 | } |
| 144 | #else | 148 | #else |
| 145 | #define omap44xx_32k_read NULL | 149 | #define omap44xx_32k_read NULL |
| @@ -227,6 +231,8 @@ static int __init omap_init_clocksource_32k(void) | |||
| 227 | clocksource_32k.mult = clocksource_hz2mult(32768, | 231 | clocksource_32k.mult = clocksource_hz2mult(32768, |
| 228 | clocksource_32k.shift); | 232 | clocksource_32k.shift); |
| 229 | 233 | ||
| 234 | offset_32k = clocksource_32k.read(&clocksource_32k); | ||
| 235 | |||
| 230 | if (clocksource_register(&clocksource_32k)) | 236 | if (clocksource_register(&clocksource_32k)) |
| 231 | printk(err, clocksource_32k.name); | 237 | printk(err, clocksource_32k.name); |
| 232 | } | 238 | } |
diff --git a/arch/arm/plat-omap/dma.c b/arch/arm/plat-omap/dma.c index 5c6c342c53f5..1d959965ff52 100644 --- a/arch/arm/plat-omap/dma.c +++ b/arch/arm/plat-omap/dma.c | |||
| @@ -937,6 +937,15 @@ void omap_start_dma(int lch) | |||
| 937 | { | 937 | { |
| 938 | u32 l; | 938 | u32 l; |
| 939 | 939 | ||
| 940 | /* | ||
| 941 | * The CPC/CDAC register needs to be initialized to zero | ||
| 942 | * before starting dma transfer. | ||
| 943 | */ | ||
| 944 | if (cpu_is_omap15xx()) | ||
| 945 | dma_write(0, CPC(lch)); | ||
| 946 | else | ||
| 947 | dma_write(0, CDAC(lch)); | ||
| 948 | |||
| 940 | if (!omap_dma_in_1510_mode() && dma_chan[lch].next_lch != -1) { | 949 | if (!omap_dma_in_1510_mode() && dma_chan[lch].next_lch != -1) { |
| 941 | int next_lch, cur_lch; | 950 | int next_lch, cur_lch; |
| 942 | char dma_chan_link_map[OMAP_DMA4_LOGICAL_DMA_CH_COUNT]; | 951 | char dma_chan_link_map[OMAP_DMA4_LOGICAL_DMA_CH_COUNT]; |
diff --git a/arch/arm/plat-omap/gpio.c b/arch/arm/plat-omap/gpio.c index 76a347b3ce07..45a225d09125 100644 --- a/arch/arm/plat-omap/gpio.c +++ b/arch/arm/plat-omap/gpio.c | |||
| @@ -798,7 +798,7 @@ static int _set_gpio_triggering(struct gpio_bank *bank, int gpio, int trigger) | |||
| 798 | case METHOD_MPUIO: | 798 | case METHOD_MPUIO: |
| 799 | reg += OMAP_MPUIO_GPIO_INT_EDGE; | 799 | reg += OMAP_MPUIO_GPIO_INT_EDGE; |
| 800 | l = __raw_readl(reg); | 800 | l = __raw_readl(reg); |
| 801 | if (trigger & IRQ_TYPE_EDGE_BOTH) | 801 | if ((trigger & IRQ_TYPE_SENSE_MASK) == IRQ_TYPE_EDGE_BOTH) |
| 802 | bank->toggle_mask |= 1 << gpio; | 802 | bank->toggle_mask |= 1 << gpio; |
| 803 | if (trigger & IRQ_TYPE_EDGE_RISING) | 803 | if (trigger & IRQ_TYPE_EDGE_RISING) |
| 804 | l |= 1 << gpio; | 804 | l |= 1 << gpio; |
| @@ -812,7 +812,7 @@ static int _set_gpio_triggering(struct gpio_bank *bank, int gpio, int trigger) | |||
| 812 | case METHOD_GPIO_1510: | 812 | case METHOD_GPIO_1510: |
| 813 | reg += OMAP1510_GPIO_INT_CONTROL; | 813 | reg += OMAP1510_GPIO_INT_CONTROL; |
| 814 | l = __raw_readl(reg); | 814 | l = __raw_readl(reg); |
| 815 | if (trigger & IRQ_TYPE_EDGE_BOTH) | 815 | if ((trigger & IRQ_TYPE_SENSE_MASK) == IRQ_TYPE_EDGE_BOTH) |
| 816 | bank->toggle_mask |= 1 << gpio; | 816 | bank->toggle_mask |= 1 << gpio; |
| 817 | if (trigger & IRQ_TYPE_EDGE_RISING) | 817 | if (trigger & IRQ_TYPE_EDGE_RISING) |
| 818 | l |= 1 << gpio; | 818 | l |= 1 << gpio; |
| @@ -846,7 +846,7 @@ static int _set_gpio_triggering(struct gpio_bank *bank, int gpio, int trigger) | |||
| 846 | case METHOD_GPIO_7XX: | 846 | case METHOD_GPIO_7XX: |
| 847 | reg += OMAP7XX_GPIO_INT_CONTROL; | 847 | reg += OMAP7XX_GPIO_INT_CONTROL; |
| 848 | l = __raw_readl(reg); | 848 | l = __raw_readl(reg); |
| 849 | if (trigger & IRQ_TYPE_EDGE_BOTH) | 849 | if ((trigger & IRQ_TYPE_SENSE_MASK) == IRQ_TYPE_EDGE_BOTH) |
| 850 | bank->toggle_mask |= 1 << gpio; | 850 | bank->toggle_mask |= 1 << gpio; |
| 851 | if (trigger & IRQ_TYPE_EDGE_RISING) | 851 | if (trigger & IRQ_TYPE_EDGE_RISING) |
| 852 | l |= 1 << gpio; | 852 | l |= 1 << gpio; |
diff --git a/arch/arm/plat-omap/include/plat/irqs.h b/arch/arm/plat-omap/include/plat/irqs.h index b65088a869e9..401701977dbb 100644 --- a/arch/arm/plat-omap/include/plat/irqs.h +++ b/arch/arm/plat-omap/include/plat/irqs.h | |||
| @@ -345,8 +345,6 @@ | |||
| 345 | #define INT_34XX_MMC3_IRQ 94 | 345 | #define INT_34XX_MMC3_IRQ 94 |
| 346 | #define INT_34XX_GPT12_IRQ 95 | 346 | #define INT_34XX_GPT12_IRQ 95 |
| 347 | 347 | ||
| 348 | #define INT_34XX_BENCH_MPU_EMUL 3 | ||
| 349 | |||
| 350 | #define INT_35XX_HECC0_IRQ 24 | 348 | #define INT_35XX_HECC0_IRQ 24 |
| 351 | #define INT_35XX_HECC1_IRQ 28 | 349 | #define INT_35XX_HECC1_IRQ 28 |
| 352 | #define INT_35XX_EMAC_C0_RXTHRESH_IRQ 67 | 350 | #define INT_35XX_EMAC_C0_RXTHRESH_IRQ 67 |
diff --git a/arch/arm/plat-omap/include/plat/mcbsp.h b/arch/arm/plat-omap/include/plat/mcbsp.h index 39748354ce45..7de903d7c1ce 100644 --- a/arch/arm/plat-omap/include/plat/mcbsp.h +++ b/arch/arm/plat-omap/include/plat/mcbsp.h | |||
| @@ -59,7 +59,7 @@ | |||
| 59 | #define OMAP44XX_MCBSP1_BASE 0x49022000 | 59 | #define OMAP44XX_MCBSP1_BASE 0x49022000 |
| 60 | #define OMAP44XX_MCBSP2_BASE 0x49024000 | 60 | #define OMAP44XX_MCBSP2_BASE 0x49024000 |
| 61 | #define OMAP44XX_MCBSP3_BASE 0x49026000 | 61 | #define OMAP44XX_MCBSP3_BASE 0x49026000 |
| 62 | #define OMAP44XX_MCBSP4_BASE 0x48074000 | 62 | #define OMAP44XX_MCBSP4_BASE 0x48096000 |
| 63 | 63 | ||
| 64 | #if defined(CONFIG_ARCH_OMAP15XX) || defined(CONFIG_ARCH_OMAP16XX) || defined(CONFIG_ARCH_OMAP730) || defined(CONFIG_ARCH_OMAP850) | 64 | #if defined(CONFIG_ARCH_OMAP15XX) || defined(CONFIG_ARCH_OMAP16XX) || defined(CONFIG_ARCH_OMAP730) || defined(CONFIG_ARCH_OMAP850) |
| 65 | 65 | ||
diff --git a/arch/arm/plat-omap/include/plat/nand.h b/arch/arm/plat-omap/include/plat/nand.h index 6ba88d2630d9..f8efd5466b1d 100644 --- a/arch/arm/plat-omap/include/plat/nand.h +++ b/arch/arm/plat-omap/include/plat/nand.h | |||
| @@ -29,4 +29,11 @@ struct omap_nand_platform_data { | |||
| 29 | /* size (4 KiB) for IO mapping */ | 29 | /* size (4 KiB) for IO mapping */ |
| 30 | #define NAND_IO_SIZE SZ_4K | 30 | #define NAND_IO_SIZE SZ_4K |
| 31 | 31 | ||
| 32 | #if defined(CONFIG_MTD_NAND_OMAP2) || defined(CONFIG_MTD_NAND_OMAP2_MODULE) | ||
| 32 | extern int gpmc_nand_init(struct omap_nand_platform_data *d); | 33 | extern int gpmc_nand_init(struct omap_nand_platform_data *d); |
| 34 | #else | ||
| 35 | static inline int gpmc_nand_init(struct omap_nand_platform_data *d) | ||
| 36 | { | ||
| 37 | return 0; | ||
| 38 | } | ||
| 39 | #endif | ||
diff --git a/arch/arm/plat-omap/include/plat/omap44xx.h b/arch/arm/plat-omap/include/plat/omap44xx.h index 2302474a3748..b3ef1a7f53cc 100644 --- a/arch/arm/plat-omap/include/plat/omap44xx.h +++ b/arch/arm/plat-omap/include/plat/omap44xx.h | |||
| @@ -32,7 +32,7 @@ | |||
| 32 | #define OMAP4430_PRM_BASE 0x4a306000 | 32 | #define OMAP4430_PRM_BASE 0x4a306000 |
| 33 | #define OMAP44XX_GPMC_BASE 0x50000000 | 33 | #define OMAP44XX_GPMC_BASE 0x50000000 |
| 34 | #define OMAP443X_SCM_BASE 0x4a002000 | 34 | #define OMAP443X_SCM_BASE 0x4a002000 |
| 35 | #define OMAP443X_CTRL_BASE OMAP443X_SCM_BASE | 35 | #define OMAP443X_CTRL_BASE 0x4a100000 |
| 36 | #define OMAP44XX_IC_BASE 0x48200000 | 36 | #define OMAP44XX_IC_BASE 0x48200000 |
| 37 | #define OMAP44XX_IVA_INTC_BASE 0x40000000 | 37 | #define OMAP44XX_IVA_INTC_BASE 0x40000000 |
| 38 | #define IRQ_SIR_IRQ 0x0040 | 38 | #define IRQ_SIR_IRQ 0x0040 |
diff --git a/arch/arm/plat-omap/include/plat/omap_hwmod.h b/arch/arm/plat-omap/include/plat/omap_hwmod.h index 440b4164f2f6..36d6ea56ab51 100644 --- a/arch/arm/plat-omap/include/plat/omap_hwmod.h +++ b/arch/arm/plat-omap/include/plat/omap_hwmod.h | |||
| @@ -294,8 +294,8 @@ struct omap_hwmod_class_sysconfig { | |||
| 294 | u16 rev_offs; | 294 | u16 rev_offs; |
| 295 | u16 sysc_offs; | 295 | u16 sysc_offs; |
| 296 | u16 syss_offs; | 296 | u16 syss_offs; |
| 297 | u16 sysc_flags; | ||
| 297 | u8 idlemodes; | 298 | u8 idlemodes; |
| 298 | u8 sysc_flags; | ||
| 299 | u8 clockact; | 299 | u8 clockact; |
| 300 | struct omap_hwmod_sysc_fields *sysc_fields; | 300 | struct omap_hwmod_sysc_fields *sysc_fields; |
| 301 | }; | 301 | }; |
diff --git a/arch/arm/plat-omap/include/plat/usb.h b/arch/arm/plat-omap/include/plat/usb.h index 568578db93b6..876ca8d5e927 100644 --- a/arch/arm/plat-omap/include/plat/usb.h +++ b/arch/arm/plat-omap/include/plat/usb.h | |||
| @@ -46,7 +46,7 @@ struct ehci_hcd_omap_platform_data { | |||
| 46 | struct omap_musb_board_data { | 46 | struct omap_musb_board_data { |
| 47 | u8 interface_type; | 47 | u8 interface_type; |
| 48 | u8 mode; | 48 | u8 mode; |
| 49 | u8 power; | 49 | u16 power; |
| 50 | }; | 50 | }; |
| 51 | 51 | ||
| 52 | enum musb_interface {MUSB_INTERFACE_ULPI, MUSB_INTERFACE_UTMI}; | 52 | enum musb_interface {MUSB_INTERFACE_ULPI, MUSB_INTERFACE_UTMI}; |
