| .. | .. |
|---|
| 1 | +// SPDX-License-Identifier: GPL-2.0-or-later |
|---|
| 1 | 2 | /* |
|---|
| 2 | 3 | * mach-davinci/devices.c |
|---|
| 3 | 4 | * |
|---|
| 4 | 5 | * DaVinci platform device setup/initialization |
|---|
| 5 | | - * |
|---|
| 6 | | - * This program is free software; you can redistribute it and/or modify |
|---|
| 7 | | - * it under the terms of the GNU General Public License as published by |
|---|
| 8 | | - * the Free Software Foundation; either version 2 of the License, or |
|---|
| 9 | | - * (at your option) any later version. |
|---|
| 10 | 6 | */ |
|---|
| 11 | 7 | |
|---|
| 12 | 8 | #include <linux/init.h> |
|---|
| 13 | 9 | #include <linux/platform_device.h> |
|---|
| 10 | +#include <linux/platform_data/i2c-davinci.h> |
|---|
| 11 | +#include <linux/platform_data/mmc-davinci.h> |
|---|
| 12 | +#include <linux/platform_data/edma.h> |
|---|
| 14 | 13 | #include <linux/dma-mapping.h> |
|---|
| 15 | 14 | #include <linux/io.h> |
|---|
| 16 | 15 | #include <linux/reboot.h> |
|---|
| 17 | 16 | |
|---|
| 18 | 17 | #include <mach/hardware.h> |
|---|
| 19 | | -#include <linux/platform_data/i2c-davinci.h> |
|---|
| 20 | | -#include <mach/irqs.h> |
|---|
| 21 | 18 | #include <mach/cputype.h> |
|---|
| 22 | 19 | #include <mach/mux.h> |
|---|
| 23 | | -#include <linux/platform_data/mmc-davinci.h> |
|---|
| 24 | | -#include <mach/time.h> |
|---|
| 25 | | -#include <linux/platform_data/edma.h> |
|---|
| 26 | | - |
|---|
| 27 | 20 | |
|---|
| 28 | 21 | #include "davinci.h" |
|---|
| 22 | +#include "irqs.h" |
|---|
| 29 | 23 | |
|---|
| 30 | 24 | #define DAVINCI_I2C_BASE 0x01C21000 |
|---|
| 31 | 25 | #define DAVINCI_ATA_BASE 0x01C66000 |
|---|
| .. | .. |
|---|
| 39 | 33 | |
|---|
| 40 | 34 | void davinci_map_sysmod(void) |
|---|
| 41 | 35 | { |
|---|
| 42 | | - davinci_sysmod_base = ioremap_nocache(DAVINCI_SYSTEM_MODULE_BASE, |
|---|
| 36 | + davinci_sysmod_base = ioremap(DAVINCI_SYSTEM_MODULE_BASE, |
|---|
| 43 | 37 | 0x800); |
|---|
| 44 | 38 | /* |
|---|
| 45 | 39 | * Throw a bug since a lot of board initialization code depends |
|---|
| .. | .. |
|---|
| 56 | 50 | .flags = IORESOURCE_MEM, |
|---|
| 57 | 51 | }, |
|---|
| 58 | 52 | { |
|---|
| 59 | | - .start = IRQ_I2C, |
|---|
| 53 | + .start = DAVINCI_INTC_IRQ(IRQ_I2C), |
|---|
| 60 | 54 | .flags = IORESOURCE_IRQ, |
|---|
| 61 | 55 | }, |
|---|
| 62 | 56 | }; |
|---|
| .. | .. |
|---|
| 84 | 78 | .flags = IORESOURCE_MEM, |
|---|
| 85 | 79 | }, |
|---|
| 86 | 80 | { |
|---|
| 87 | | - .start = IRQ_IDE, |
|---|
| 88 | | - .end = IRQ_IDE, |
|---|
| 81 | + .start = DAVINCI_INTC_IRQ(IRQ_IDE), |
|---|
| 82 | + .end = DAVINCI_INTC_IRQ(IRQ_IDE), |
|---|
| 89 | 83 | .flags = IORESOURCE_IRQ, |
|---|
| 90 | 84 | }, |
|---|
| 91 | 85 | }; |
|---|
| .. | .. |
|---|
| 133 | 127 | }, |
|---|
| 134 | 128 | /* IRQs: MMC/SD, then SDIO */ |
|---|
| 135 | 129 | { |
|---|
| 136 | | - .start = IRQ_MMCINT, |
|---|
| 130 | + .start = DAVINCI_INTC_IRQ(IRQ_MMCINT), |
|---|
| 137 | 131 | .flags = IORESOURCE_IRQ, |
|---|
| 138 | 132 | }, { |
|---|
| 139 | 133 | /* different on dm355 */ |
|---|
| 140 | | - .start = IRQ_SDIOINT, |
|---|
| 134 | + .start = DAVINCI_INTC_IRQ(IRQ_SDIOINT), |
|---|
| 141 | 135 | .flags = IORESOURCE_IRQ, |
|---|
| 142 | 136 | }, |
|---|
| 143 | 137 | }; |
|---|
| .. | .. |
|---|
| 163 | 157 | }, |
|---|
| 164 | 158 | /* IRQs: MMC/SD, then SDIO */ |
|---|
| 165 | 159 | { |
|---|
| 166 | | - .start = IRQ_DM355_MMCINT1, |
|---|
| 160 | + .start = DAVINCI_INTC_IRQ(IRQ_DM355_MMCINT1), |
|---|
| 167 | 161 | .flags = IORESOURCE_IRQ, |
|---|
| 168 | 162 | }, { |
|---|
| 169 | | - .start = IRQ_DM355_SDIOINT1, |
|---|
| 163 | + .start = DAVINCI_INTC_IRQ(IRQ_DM355_SDIOINT1), |
|---|
| 170 | 164 | .flags = IORESOURCE_IRQ, |
|---|
| 171 | 165 | }, |
|---|
| 172 | 166 | }; |
|---|
| .. | .. |
|---|
| 219 | 213 | mmcsd1_resources[0].start = DM365_MMCSD1_BASE; |
|---|
| 220 | 214 | mmcsd1_resources[0].end = DM365_MMCSD1_BASE + |
|---|
| 221 | 215 | SZ_4K - 1; |
|---|
| 222 | | - mmcsd1_resources[2].start = IRQ_DM365_SDIOINT1; |
|---|
| 216 | + mmcsd1_resources[2].start = DAVINCI_INTC_IRQ( |
|---|
| 217 | + IRQ_DM365_SDIOINT1); |
|---|
| 223 | 218 | davinci_mmcsd1_device.name = "da830-mmc"; |
|---|
| 224 | 219 | } else |
|---|
| 225 | 220 | break; |
|---|
| .. | .. |
|---|
| 230 | 225 | if (cpu_is_davinci_dm355()) { |
|---|
| 231 | 226 | mmcsd0_resources[0].start = DM355_MMCSD0_BASE; |
|---|
| 232 | 227 | mmcsd0_resources[0].end = DM355_MMCSD0_BASE + SZ_4K - 1; |
|---|
| 233 | | - mmcsd0_resources[2].start = IRQ_DM355_SDIOINT0; |
|---|
| 228 | + mmcsd0_resources[2].start = DAVINCI_INTC_IRQ( |
|---|
| 229 | + IRQ_DM355_SDIOINT0); |
|---|
| 234 | 230 | |
|---|
| 235 | 231 | /* expose all 6 MMC0 signals: CLK, CMD, DATA[0..3] */ |
|---|
| 236 | 232 | davinci_cfg_reg(DM355_MMCSD0); |
|---|
| .. | .. |
|---|
| 241 | 237 | mmcsd0_resources[0].start = DM365_MMCSD0_BASE; |
|---|
| 242 | 238 | mmcsd0_resources[0].end = DM365_MMCSD0_BASE + |
|---|
| 243 | 239 | SZ_4K - 1; |
|---|
| 244 | | - mmcsd0_resources[2].start = IRQ_DM365_SDIOINT0; |
|---|
| 240 | + mmcsd0_resources[2].start = DAVINCI_INTC_IRQ( |
|---|
| 241 | + IRQ_DM365_SDIOINT0); |
|---|
| 245 | 242 | davinci_mmcsd0_device.name = "da830-mmc"; |
|---|
| 246 | 243 | } else if (cpu_is_davinci_dm644x()) { |
|---|
| 247 | 244 | /* REVISIT: should this be in board-init code? */ |
|---|
| .. | .. |
|---|
| 305 | 302 | davinci_gpio_device.dev.platform_data = pdata; |
|---|
| 306 | 303 | return platform_device_register(&davinci_gpio_device); |
|---|
| 307 | 304 | } |
|---|
| 308 | | - |
|---|
| 309 | | -/*-------------------------------------------------------------------------*/ |
|---|
| 310 | | - |
|---|
| 311 | | -/*-------------------------------------------------------------------------*/ |
|---|
| 312 | | - |
|---|
| 313 | | -struct davinci_timer_instance davinci_timer_instance[2] = { |
|---|
| 314 | | - { |
|---|
| 315 | | - .base = DAVINCI_TIMER0_BASE, |
|---|
| 316 | | - .bottom_irq = IRQ_TINT0_TINT12, |
|---|
| 317 | | - .top_irq = IRQ_TINT0_TINT34, |
|---|
| 318 | | - }, |
|---|
| 319 | | - { |
|---|
| 320 | | - .base = DAVINCI_TIMER1_BASE, |
|---|
| 321 | | - .bottom_irq = IRQ_TINT1_TINT12, |
|---|
| 322 | | - .top_irq = IRQ_TINT1_TINT34, |
|---|
| 323 | | - }, |
|---|
| 324 | | -}; |
|---|
| 325 | | - |
|---|