diff options
| -rw-r--r-- | arch/arm/Kconfig | 1 | ||||
| -rw-r--r-- | arch/arm/mach-davinci/board-dm355-evm.c | 1 | ||||
| -rw-r--r-- | arch/arm/mach-davinci/board-dm365-evm.c | 11 | ||||
| -rw-r--r-- | arch/arm/mach-davinci/board-dm644x-evm.c | 1 | ||||
| -rw-r--r-- | arch/arm/mach-davinci/cp_intc.c | 11 | ||||
| -rw-r--r-- | arch/arm/mach-davinci/devices-da8xx.c | 9 | ||||
| -rw-r--r-- | arch/arm/mach-davinci/dm365.c | 1 |
7 files changed, 28 insertions, 7 deletions
diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig index 233a222752c0..4f8760d7b7a7 100644 --- a/arch/arm/Kconfig +++ b/arch/arm/Kconfig | |||
| @@ -688,6 +688,7 @@ config ARCH_DAVINCI | |||
| 688 | select HAVE_IDE | 688 | select HAVE_IDE |
| 689 | select COMMON_CLKDEV | 689 | select COMMON_CLKDEV |
| 690 | select GENERIC_ALLOCATOR | 690 | select GENERIC_ALLOCATOR |
| 691 | select ARCH_HAS_HOLES_MEMORYMODEL | ||
| 691 | help | 692 | help |
| 692 | Support for TI's DaVinci platform. | 693 | Support for TI's DaVinci platform. |
| 693 | 694 | ||
diff --git a/arch/arm/mach-davinci/board-dm355-evm.c b/arch/arm/mach-davinci/board-dm355-evm.c index a9b650dcc172..077ecf4fecda 100644 --- a/arch/arm/mach-davinci/board-dm355-evm.c +++ b/arch/arm/mach-davinci/board-dm355-evm.c | |||
| @@ -236,6 +236,7 @@ static struct vpfe_subdev_info vpfe_sub_devs[] = { | |||
| 236 | 236 | ||
| 237 | static struct vpfe_config vpfe_cfg = { | 237 | static struct vpfe_config vpfe_cfg = { |
| 238 | .num_subdevs = ARRAY_SIZE(vpfe_sub_devs), | 238 | .num_subdevs = ARRAY_SIZE(vpfe_sub_devs), |
| 239 | .i2c_adapter_id = 1, | ||
| 239 | .sub_devs = vpfe_sub_devs, | 240 | .sub_devs = vpfe_sub_devs, |
| 240 | .card_name = "DM355 EVM", | 241 | .card_name = "DM355 EVM", |
| 241 | .ccdc = "DM355 CCDC", | 242 | .ccdc = "DM355 CCDC", |
diff --git a/arch/arm/mach-davinci/board-dm365-evm.c b/arch/arm/mach-davinci/board-dm365-evm.c index 289fe1b7d25a..b476395d2cd4 100644 --- a/arch/arm/mach-davinci/board-dm365-evm.c +++ b/arch/arm/mach-davinci/board-dm365-evm.c | |||
| @@ -192,7 +192,11 @@ static struct davinci_i2c_platform_data i2c_pdata = { | |||
| 192 | .bus_delay = 0 /* usec */, | 192 | .bus_delay = 0 /* usec */, |
| 193 | }; | 193 | }; |
| 194 | 194 | ||
| 195 | #ifdef CONFIG_KEYBOARD_DAVINCI | 195 | static int dm365evm_keyscan_enable(struct device *dev) |
| 196 | { | ||
| 197 | return davinci_cfg_reg(DM365_KEYSCAN); | ||
| 198 | } | ||
| 199 | |||
| 196 | static unsigned short dm365evm_keymap[] = { | 200 | static unsigned short dm365evm_keymap[] = { |
| 197 | KEY_KP2, | 201 | KEY_KP2, |
| 198 | KEY_LEFT, | 202 | KEY_LEFT, |
| @@ -214,6 +218,7 @@ static unsigned short dm365evm_keymap[] = { | |||
| 214 | }; | 218 | }; |
| 215 | 219 | ||
| 216 | static struct davinci_ks_platform_data dm365evm_ks_data = { | 220 | static struct davinci_ks_platform_data dm365evm_ks_data = { |
| 221 | .device_enable = dm365evm_keyscan_enable, | ||
| 217 | .keymap = dm365evm_keymap, | 222 | .keymap = dm365evm_keymap, |
| 218 | .keymapsize = ARRAY_SIZE(dm365evm_keymap), | 223 | .keymapsize = ARRAY_SIZE(dm365evm_keymap), |
| 219 | .rep = 1, | 224 | .rep = 1, |
| @@ -222,7 +227,6 @@ static struct davinci_ks_platform_data dm365evm_ks_data = { | |||
| 222 | .interval = 0x2, | 227 | .interval = 0x2, |
| 223 | .matrix_type = DAVINCI_KEYSCAN_MATRIX_4X4, | 228 | .matrix_type = DAVINCI_KEYSCAN_MATRIX_4X4, |
| 224 | }; | 229 | }; |
| 225 | #endif | ||
| 226 | 230 | ||
| 227 | static int cpld_mmc_get_cd(int module) | 231 | static int cpld_mmc_get_cd(int module) |
| 228 | { | 232 | { |
| @@ -511,10 +515,7 @@ static __init void dm365_evm_init(void) | |||
| 511 | 515 | ||
| 512 | dm365_init_asp(&dm365_evm_snd_data); | 516 | dm365_init_asp(&dm365_evm_snd_data); |
| 513 | dm365_init_rtc(); | 517 | dm365_init_rtc(); |
| 514 | |||
| 515 | #ifdef CONFIG_KEYBOARD_DAVINCI | ||
| 516 | dm365_init_ks(&dm365evm_ks_data); | 518 | dm365_init_ks(&dm365evm_ks_data); |
| 517 | #endif | ||
| 518 | } | 519 | } |
| 519 | 520 | ||
| 520 | static __init void dm365_evm_irq_init(void) | 521 | static __init void dm365_evm_irq_init(void) |
diff --git a/arch/arm/mach-davinci/board-dm644x-evm.c b/arch/arm/mach-davinci/board-dm644x-evm.c index fd0398bc6db3..e9612cf727b7 100644 --- a/arch/arm/mach-davinci/board-dm644x-evm.c +++ b/arch/arm/mach-davinci/board-dm644x-evm.c | |||
| @@ -247,6 +247,7 @@ static struct vpfe_subdev_info vpfe_sub_devs[] = { | |||
| 247 | 247 | ||
| 248 | static struct vpfe_config vpfe_cfg = { | 248 | static struct vpfe_config vpfe_cfg = { |
| 249 | .num_subdevs = ARRAY_SIZE(vpfe_sub_devs), | 249 | .num_subdevs = ARRAY_SIZE(vpfe_sub_devs), |
| 250 | .i2c_adapter_id = 1, | ||
| 250 | .sub_devs = vpfe_sub_devs, | 251 | .sub_devs = vpfe_sub_devs, |
| 251 | .card_name = "DM6446 EVM", | 252 | .card_name = "DM6446 EVM", |
| 252 | .ccdc = "DM6446 CCDC", | 253 | .ccdc = "DM6446 CCDC", |
diff --git a/arch/arm/mach-davinci/cp_intc.c b/arch/arm/mach-davinci/cp_intc.c index 52b287cf3a42..37311d1830eb 100644 --- a/arch/arm/mach-davinci/cp_intc.c +++ b/arch/arm/mach-davinci/cp_intc.c | |||
| @@ -81,12 +81,23 @@ static int cp_intc_set_irq_type(unsigned int irq, unsigned int flow_type) | |||
| 81 | return 0; | 81 | return 0; |
| 82 | } | 82 | } |
| 83 | 83 | ||
| 84 | /* | ||
| 85 | * Faking this allows us to to work with suspend functions of | ||
| 86 | * generic drivers which call {enable|disable}_irq_wake for | ||
| 87 | * wake up interrupt sources (eg RTC on DA850). | ||
| 88 | */ | ||
| 89 | static int cp_intc_set_wake(unsigned int irq, unsigned int on) | ||
| 90 | { | ||
| 91 | return 0; | ||
| 92 | } | ||
| 93 | |||
| 84 | static struct irq_chip cp_intc_irq_chip = { | 94 | static struct irq_chip cp_intc_irq_chip = { |
| 85 | .name = "cp_intc", | 95 | .name = "cp_intc", |
| 86 | .ack = cp_intc_ack_irq, | 96 | .ack = cp_intc_ack_irq, |
| 87 | .mask = cp_intc_mask_irq, | 97 | .mask = cp_intc_mask_irq, |
| 88 | .unmask = cp_intc_unmask_irq, | 98 | .unmask = cp_intc_unmask_irq, |
| 89 | .set_type = cp_intc_set_irq_type, | 99 | .set_type = cp_intc_set_irq_type, |
| 100 | .set_wake = cp_intc_set_wake, | ||
| 90 | }; | 101 | }; |
| 91 | 102 | ||
| 92 | void __init cp_intc_init(void __iomem *base, unsigned short num_irq, | 103 | void __init cp_intc_init(void __iomem *base, unsigned short num_irq, |
diff --git a/arch/arm/mach-davinci/devices-da8xx.c b/arch/arm/mach-davinci/devices-da8xx.c index dd2d32c4ce86..a5105f03fd86 100644 --- a/arch/arm/mach-davinci/devices-da8xx.c +++ b/arch/arm/mach-davinci/devices-da8xx.c | |||
| @@ -481,11 +481,18 @@ static struct platform_device da8xx_rtc_device = { | |||
| 481 | 481 | ||
| 482 | int da8xx_register_rtc(void) | 482 | int da8xx_register_rtc(void) |
| 483 | { | 483 | { |
| 484 | int ret; | ||
| 485 | |||
| 484 | /* Unlock the rtc's registers */ | 486 | /* Unlock the rtc's registers */ |
| 485 | __raw_writel(0x83e70b13, IO_ADDRESS(DA8XX_RTC_BASE + 0x6c)); | 487 | __raw_writel(0x83e70b13, IO_ADDRESS(DA8XX_RTC_BASE + 0x6c)); |
| 486 | __raw_writel(0x95a4f1e0, IO_ADDRESS(DA8XX_RTC_BASE + 0x70)); | 488 | __raw_writel(0x95a4f1e0, IO_ADDRESS(DA8XX_RTC_BASE + 0x70)); |
| 487 | 489 | ||
| 488 | return platform_device_register(&da8xx_rtc_device); | 490 | ret = platform_device_register(&da8xx_rtc_device); |
| 491 | if (!ret) | ||
| 492 | /* Atleast on DA850, RTC is a wakeup source */ | ||
| 493 | device_init_wakeup(&da8xx_rtc_device.dev, true); | ||
| 494 | |||
| 495 | return ret; | ||
| 489 | } | 496 | } |
| 490 | 497 | ||
| 491 | static struct resource da8xx_cpuidle_resources[] = { | 498 | static struct resource da8xx_cpuidle_resources[] = { |
diff --git a/arch/arm/mach-davinci/dm365.c b/arch/arm/mach-davinci/dm365.c index 2ec619ec1657..f53735cb922e 100644 --- a/arch/arm/mach-davinci/dm365.c +++ b/arch/arm/mach-davinci/dm365.c | |||
| @@ -993,7 +993,6 @@ void __init dm365_init_asp(struct snd_platform_data *pdata) | |||
| 993 | 993 | ||
| 994 | void __init dm365_init_ks(struct davinci_ks_platform_data *pdata) | 994 | void __init dm365_init_ks(struct davinci_ks_platform_data *pdata) |
| 995 | { | 995 | { |
| 996 | davinci_cfg_reg(DM365_KEYSCAN); | ||
| 997 | dm365_ks_device.dev.platform_data = pdata; | 996 | dm365_ks_device.dev.platform_data = pdata; |
| 998 | platform_device_register(&dm365_ks_device); | 997 | platform_device_register(&dm365_ks_device); |
| 999 | } | 998 | } |
