From 8e4bff4cab0ddac6060645b0715210484d02ff40 Mon Sep 17 00:00:00 2001 From: Yuval Adam <_@yuv.al> Date: Wed, 30 Aug 2017 08:25:59 +0000 Subject: Initial file dump from open source release --- arch/arm/mach-omap2/Kconfig | 432 ++ arch/arm/mach-omap2/Makefile | 297 + arch/arm/mach-omap2/Makefile.boot | 3 + arch/arm/mach-omap2/am33xx-restart.c | 34 + arch/arm/mach-omap2/am33xx.h | 26 + arch/arm/mach-omap2/am35xx-emac.c | 115 + arch/arm/mach-omap2/am35xx-emac.h | 15 + arch/arm/mach-omap2/am35xx.h | 46 + arch/arm/mach-omap2/board-2430sdp.c | 260 + arch/arm/mach-omap2/board-3430sdp.c | 616 ++ arch/arm/mach-omap2/board-3630sdp.c | 225 + arch/arm/mach-omap2/board-4430sdp.c | 765 +++ arch/arm/mach-omap2/board-am3517crane.c | 152 + arch/arm/mach-omap2/board-am3517evm.c | 338 + arch/arm/mach-omap2/board-cm-t35.c | 736 +++ arch/arm/mach-omap2/board-cm-t3517.c | 337 + arch/arm/mach-omap2/board-devkit8000.c | 620 ++ arch/arm/mach-omap2/board-flash.c | 242 + arch/arm/mach-omap2/board-flash.h | 62 + arch/arm/mach-omap2/board-generic.c | 187 + arch/arm/mach-omap2/board-h4.c | 347 ++ arch/arm/mach-omap2/board-igep0020.c | 679 ++ arch/arm/mach-omap2/board-ldp.c | 399 ++ arch/arm/mach-omap2/board-n8x0.c | 762 +++ arch/arm/mach-omap2/board-omap3beagle.c | 586 ++ arch/arm/mach-omap2/board-omap3evm.c | 735 +++ arch/arm/mach-omap2/board-omap3logic.c | 251 + arch/arm/mach-omap2/board-omap3pandora.c | 633 ++ arch/arm/mach-omap2/board-omap3stalker.c | 425 ++ arch/arm/mach-omap2/board-omap3touchbook.c | 396 ++ arch/arm/mach-omap2/board-omap4panda.c | 455 ++ arch/arm/mach-omap2/board-overo.c | 531 ++ arch/arm/mach-omap2/board-rm680.c | 167 + arch/arm/mach-omap2/board-rx51-peripherals.c | 1300 ++++ arch/arm/mach-omap2/board-rx51-video.c | 78 + arch/arm/mach-omap2/board-rx51.c | 130 + arch/arm/mach-omap2/board-rx51.h | 11 + arch/arm/mach-omap2/board-ti8168evm.c | 62 + arch/arm/mach-omap2/board-zoom-debugboard.c | 139 + arch/arm/mach-omap2/board-zoom-display.c | 79 + arch/arm/mach-omap2/board-zoom-peripherals.c | 360 ++ arch/arm/mach-omap2/board-zoom.c | 159 + arch/arm/mach-omap2/board-zoom.h | 10 + arch/arm/mach-omap2/cclock2420_data.c | 1931 ++++++ arch/arm/mach-omap2/cclock2430_data.c | 2048 +++++++ arch/arm/mach-omap2/cclock33xx_data.c | 990 +++ arch/arm/mach-omap2/cclock3xxx_data.c | 3653 +++++++++++ arch/arm/mach-omap2/cclock44xx_data.c | 1730 ++++++ arch/arm/mach-omap2/clkt2xxx_apll.c | 142 + arch/arm/mach-omap2/clkt2xxx_dpll.c | 59 + arch/arm/mach-omap2/clkt2xxx_dpllcore.c | 198 + arch/arm/mach-omap2/clkt2xxx_osc.c | 69 + arch/arm/mach-omap2/clkt2xxx_sys.c | 47 + arch/arm/mach-omap2/clkt2xxx_virt_prcm_set.c | 222 + arch/arm/mach-omap2/clkt34xx_dpll3m2.c | 119 + arch/arm/mach-omap2/clkt_clksel.c | 466 ++ arch/arm/mach-omap2/clkt_dpll.c | 364 ++ arch/arm/mach-omap2/clkt_iclk.c | 64 + arch/arm/mach-omap2/clock.c | 664 ++ arch/arm/mach-omap2/clock.h | 467 ++ arch/arm/mach-omap2/clock2430.c | 57 + arch/arm/mach-omap2/clock2xxx.c | 57 + arch/arm/mach-omap2/clock2xxx.h | 62 + arch/arm/mach-omap2/clock34xx.c | 138 + arch/arm/mach-omap2/clock34xx.h | 18 + arch/arm/mach-omap2/clock3517.c | 118 + arch/arm/mach-omap2/clock3517.h | 14 + arch/arm/mach-omap2/clock36xx.c | 68 + arch/arm/mach-omap2/clock36xx.h | 13 + arch/arm/mach-omap2/clock3xxx.c | 99 + arch/arm/mach-omap2/clock3xxx.h | 23 + arch/arm/mach-omap2/clock44xx.h | 20 + arch/arm/mach-omap2/clock_common_data.c | 126 + arch/arm/mach-omap2/clockdomain.c | 1297 ++++ arch/arm/mach-omap2/clockdomain.h | 232 + arch/arm/mach-omap2/clockdomains2420_data.c | 153 + arch/arm/mach-omap2/clockdomains2430_data.c | 180 + arch/arm/mach-omap2/clockdomains2xxx_3xxx_data.c | 92 + arch/arm/mach-omap2/clockdomains33xx_data.c | 196 + arch/arm/mach-omap2/clockdomains3xxx_data.c | 525 ++ arch/arm/mach-omap2/clockdomains44xx_data.c | 443 ++ arch/arm/mach-omap2/cm-regbits-24xx.h | 452 ++ arch/arm/mach-omap2/cm-regbits-33xx.h | 817 +++ arch/arm/mach-omap2/cm-regbits-34xx.h | 846 +++ arch/arm/mach-omap2/cm-regbits-44xx.h | 1704 ++++++ arch/arm/mach-omap2/cm.h | 64 + arch/arm/mach-omap2/cm1_44xx.h | 225 + arch/arm/mach-omap2/cm2_44xx.h | 457 ++ arch/arm/mach-omap2/cm2xxx.c | 356 ++ arch/arm/mach-omap2/cm2xxx.h | 70 + arch/arm/mach-omap2/cm2xxx_3xxx.h | 120 + arch/arm/mach-omap2/cm33xx.c | 364 ++ arch/arm/mach-omap2/cm33xx.h | 417 ++ arch/arm/mach-omap2/cm3xxx.c | 665 ++ arch/arm/mach-omap2/cm3xxx.h | 91 + arch/arm/mach-omap2/cm44xx.c | 52 + arch/arm/mach-omap2/cm44xx.h | 26 + arch/arm/mach-omap2/cm_common.c | 140 + arch/arm/mach-omap2/cminst44xx.c | 485 ++ arch/arm/mach-omap2/cminst44xx.h | 43 + arch/arm/mach-omap2/common-board-devices.c | 103 + arch/arm/mach-omap2/common-board-devices.h | 14 + arch/arm/mach-omap2/common.c | 36 + arch/arm/mach-omap2/common.h | 302 + arch/arm/mach-omap2/control.c | 607 ++ arch/arm/mach-omap2/control.h | 434 ++ arch/arm/mach-omap2/cpuidle34xx.c | 344 ++ arch/arm/mach-omap2/cpuidle44xx.c | 234 + arch/arm/mach-omap2/ctrl_module_core_44xx.h | 392 ++ arch/arm/mach-omap2/ctrl_module_pad_core_44xx.h | 1409 +++++ arch/arm/mach-omap2/ctrl_module_pad_wkup_44xx.h | 236 + arch/arm/mach-omap2/ctrl_module_wkup_44xx.h | 92 + arch/arm/mach-omap2/devices.c | 668 ++ arch/arm/mach-omap2/devices.h | 19 + arch/arm/mach-omap2/display.c | 566 ++ arch/arm/mach-omap2/display.h | 29 + arch/arm/mach-omap2/dma.c | 317 + arch/arm/mach-omap2/dma.h | 61 + arch/arm/mach-omap2/dpll3xxx.c | 676 ++ arch/arm/mach-omap2/dpll44xx.c | 202 + arch/arm/mach-omap2/drm.c | 67 + arch/arm/mach-omap2/dsp.c | 124 + arch/arm/mach-omap2/dss-common.c | 251 + arch/arm/mach-omap2/dss-common.h | 14 + arch/arm/mach-omap2/fb.c | 118 + arch/arm/mach-omap2/gpio.c | 160 + arch/arm/mach-omap2/gpmc-nand.c | 183 + arch/arm/mach-omap2/gpmc-nand.h | 27 + arch/arm/mach-omap2/gpmc-onenand.c | 394 ++ arch/arm/mach-omap2/gpmc-onenand.h | 24 + arch/arm/mach-omap2/gpmc-smc91x.c | 186 + arch/arm/mach-omap2/gpmc-smc91x.h | 42 + arch/arm/mach-omap2/gpmc-smsc911x.c | 100 + arch/arm/mach-omap2/gpmc-smsc911x.h | 35 + arch/arm/mach-omap2/gpmc.c | 1769 ++++++ arch/arm/mach-omap2/gpmc.h | 231 + arch/arm/mach-omap2/hdq1w.c | 97 + arch/arm/mach-omap2/hdq1w.h | 36 + arch/arm/mach-omap2/hsmmc.c | 601 ++ arch/arm/mach-omap2/hsmmc.h | 53 + arch/arm/mach-omap2/hwspinlock.c | 60 + arch/arm/mach-omap2/i2c.c | 191 + arch/arm/mach-omap2/i2c.h | 42 + arch/arm/mach-omap2/id.c | 659 ++ arch/arm/mach-omap2/id.h | 22 + arch/arm/mach-omap2/include/mach/barriers.h | 33 + arch/arm/mach-omap2/include/mach/hardware.h | 3 + arch/arm/mach-omap2/include/mach/irqs.h | 3 + arch/arm/mach-omap2/include/mach/serial.h | 66 + arch/arm/mach-omap2/include/mach/timex.h | 5 + arch/arm/mach-omap2/io.c | 647 ++ arch/arm/mach-omap2/iomap.h | 196 + arch/arm/mach-omap2/irq.c | 380 ++ arch/arm/mach-omap2/l3_2xxx.h | 20 + arch/arm/mach-omap2/l3_3xxx.h | 20 + arch/arm/mach-omap2/l4_2xxx.h | 24 + arch/arm/mach-omap2/l4_3xxx.h | 34 + arch/arm/mach-omap2/mailbox.c | 430 ++ arch/arm/mach-omap2/mcbsp.c | 122 + arch/arm/mach-omap2/mmc.h | 23 + arch/arm/mach-omap2/msdi.c | 159 + arch/arm/mach-omap2/mux.c | 1159 ++++ arch/arm/mach-omap2/mux.h | 362 ++ arch/arm/mach-omap2/mux2420.c | 690 +++ arch/arm/mach-omap2/mux2420.h | 282 + arch/arm/mach-omap2/mux2430.c | 793 +++ arch/arm/mach-omap2/mux2430.h | 370 ++ arch/arm/mach-omap2/mux34xx.c | 2061 +++++++ arch/arm/mach-omap2/mux34xx.h | 402 ++ arch/arm/mach-omap2/mux44xx.c | 1356 ++++ arch/arm/mach-omap2/mux44xx.h | 298 + arch/arm/mach-omap2/omap-headsmp.S | 104 + arch/arm/mach-omap2/omap-hotplug.c | 66 + arch/arm/mach-omap2/omap-iommu.c | 74 + arch/arm/mach-omap2/omap-mpuss-lowpower.c | 358 ++ arch/arm/mach-omap2/omap-pm-noop.c | 371 ++ arch/arm/mach-omap2/omap-pm.h | 352 ++ arch/arm/mach-omap2/omap-secure.c | 72 + arch/arm/mach-omap2/omap-secure.h | 64 + arch/arm/mach-omap2/omap-smc.S | 80 + arch/arm/mach-omap2/omap-smp.c | 240 + arch/arm/mach-omap2/omap-wakeupgen.c | 450 ++ arch/arm/mach-omap2/omap-wakeupgen.h | 38 + arch/arm/mach-omap2/omap2-restart.c | 66 + arch/arm/mach-omap2/omap24xx.h | 87 + arch/arm/mach-omap2/omap3-restart.c | 36 + arch/arm/mach-omap2/omap34xx.h | 99 + arch/arm/mach-omap2/omap4-common.c | 358 ++ arch/arm/mach-omap2/omap4-keypad.h | 8 + arch/arm/mach-omap2/omap4-sar-layout.h | 60 + arch/arm/mach-omap2/omap44xx.h | 61 + arch/arm/mach-omap2/omap54xx.h | 33 + arch/arm/mach-omap2/omap_device.c | 879 +++ arch/arm/mach-omap2/omap_device.h | 113 + arch/arm/mach-omap2/omap_hwmod.c | 4199 +++++++++++++ arch/arm/mach-omap2/omap_hwmod.h | 706 +++ arch/arm/mach-omap2/omap_hwmod_2420_data.c | 625 ++ arch/arm/mach-omap2/omap_hwmod_2430_data.c | 977 +++ .../omap_hwmod_2xxx_3xxx_interconnect_data.c | 181 + .../mach-omap2/omap_hwmod_2xxx_3xxx_ipblock_data.c | 326 + .../mach-omap2/omap_hwmod_2xxx_interconnect_data.c | 427 ++ arch/arm/mach-omap2/omap_hwmod_2xxx_ipblock_data.c | 950 +++ arch/arm/mach-omap2/omap_hwmod_33xx_data.c | 3616 +++++++++++ arch/arm/mach-omap2/omap_hwmod_3xxx_data.c | 3952 ++++++++++++ arch/arm/mach-omap2/omap_hwmod_44xx_data.c | 6461 ++++++++++++++++++++ arch/arm/mach-omap2/omap_hwmod_common_data.c | 65 + arch/arm/mach-omap2/omap_hwmod_common_data.h | 177 + arch/arm/mach-omap2/omap_hwmod_reset.c | 53 + arch/arm/mach-omap2/omap_opp_data.h | 99 + arch/arm/mach-omap2/omap_phy_internal.c | 187 + arch/arm/mach-omap2/omap_twl.c | 314 + arch/arm/mach-omap2/opp.c | 100 + arch/arm/mach-omap2/opp2420_data.c | 130 + arch/arm/mach-omap2/opp2430_data.c | 135 + arch/arm/mach-omap2/opp2xxx.h | 429 ++ arch/arm/mach-omap2/opp3xxx_data.c | 171 + arch/arm/mach-omap2/opp4xxx_data.c | 180 + arch/arm/mach-omap2/pm-debug.c | 282 + arch/arm/mach-omap2/pm.c | 312 + arch/arm/mach-omap2/pm.h | 150 + arch/arm/mach-omap2/pm24xx.c | 342 ++ arch/arm/mach-omap2/pm34xx.c | 778 +++ arch/arm/mach-omap2/pm44xx.c | 213 + arch/arm/mach-omap2/pmu.c | 99 + arch/arm/mach-omap2/powerdomain-common.c | 110 + arch/arm/mach-omap2/powerdomain.c | 1206 ++++ arch/arm/mach-omap2/powerdomain.h | 273 + arch/arm/mach-omap2/powerdomains2xxx_3xxx_data.c | 65 + arch/arm/mach-omap2/powerdomains2xxx_3xxx_data.h | 22 + arch/arm/mach-omap2/powerdomains2xxx_data.c | 137 + arch/arm/mach-omap2/powerdomains33xx_data.c | 185 + arch/arm/mach-omap2/powerdomains3xxx_data.c | 434 ++ arch/arm/mach-omap2/powerdomains44xx_data.c | 358 ++ arch/arm/mach-omap2/prcm-common.h | 494 ++ arch/arm/mach-omap2/prcm44xx.h | 42 + arch/arm/mach-omap2/prcm_mpu44xx.c | 62 + arch/arm/mach-omap2/prcm_mpu44xx.h | 110 + arch/arm/mach-omap2/prm-regbits-24xx.h | 289 + arch/arm/mach-omap2/prm-regbits-33xx.h | 357 ++ arch/arm/mach-omap2/prm-regbits-34xx.h | 611 ++ arch/arm/mach-omap2/prm-regbits-44xx.h | 2327 +++++++ arch/arm/mach-omap2/prm.h | 140 + arch/arm/mach-omap2/prm2xxx.c | 219 + arch/arm/mach-omap2/prm2xxx.h | 133 + arch/arm/mach-omap2/prm2xxx_3xxx.c | 232 + arch/arm/mach-omap2/prm2xxx_3xxx.h | 245 + arch/arm/mach-omap2/prm33xx.c | 338 + arch/arm/mach-omap2/prm33xx.h | 131 + arch/arm/mach-omap2/prm3xxx.c | 441 ++ arch/arm/mach-omap2/prm3xxx.h | 163 + arch/arm/mach-omap2/prm44xx.c | 679 ++ arch/arm/mach-omap2/prm44xx.h | 779 +++ arch/arm/mach-omap2/prm_common.c | 455 ++ arch/arm/mach-omap2/prminst44xx.c | 181 + arch/arm/mach-omap2/prminst44xx.h | 35 + arch/arm/mach-omap2/scrm44xx.h | 177 + arch/arm/mach-omap2/sdram-hynix-h8mbx00u0mer-0em.h | 51 + arch/arm/mach-omap2/sdram-micron-mt46h32m32lf-6.h | 55 + arch/arm/mach-omap2/sdram-nokia.c | 299 + arch/arm/mach-omap2/sdram-nokia.h | 12 + arch/arm/mach-omap2/sdram-numonyx-m65kxxxxam.h | 51 + .../mach-omap2/sdram-qimonda-hyb18m512160af-6.h | 54 + arch/arm/mach-omap2/sdrc.c | 157 + arch/arm/mach-omap2/sdrc.h | 213 + arch/arm/mach-omap2/sdrc2xxx.c | 169 + arch/arm/mach-omap2/serial.c | 350 ++ arch/arm/mach-omap2/serial.h | 1 + arch/arm/mach-omap2/sleep24xx.S | 105 + arch/arm/mach-omap2/sleep34xx.S | 616 ++ arch/arm/mach-omap2/sleep44xx.S | 382 ++ arch/arm/mach-omap2/smartreflex-class3.c | 62 + arch/arm/mach-omap2/soc.h | 503 ++ arch/arm/mach-omap2/sr_device.c | 177 + arch/arm/mach-omap2/sram.c | 305 + arch/arm/mach-omap2/sram.h | 83 + arch/arm/mach-omap2/sram242x.S | 331 + arch/arm/mach-omap2/sram243x.S | 331 + arch/arm/mach-omap2/sram34xx.S | 346 ++ arch/arm/mach-omap2/ti81xx.h | 36 + arch/arm/mach-omap2/timer.c | 753 +++ arch/arm/mach-omap2/twl-common.c | 558 ++ arch/arm/mach-omap2/twl-common.h | 66 + arch/arm/mach-omap2/usb-host.c | 684 +++ arch/arm/mach-omap2/usb-musb.c | 120 + arch/arm/mach-omap2/usb-tusb6010.c | 256 + arch/arm/mach-omap2/usb.h | 73 + arch/arm/mach-omap2/vc.c | 759 +++ arch/arm/mach-omap2/vc.h | 131 + arch/arm/mach-omap2/vc3xxx_data.c | 95 + arch/arm/mach-omap2/vc44xx_data.c | 117 + arch/arm/mach-omap2/voltage.c | 446 ++ arch/arm/mach-omap2/voltage.h | 186 + arch/arm/mach-omap2/voltagedomains2xxx_data.c | 32 + arch/arm/mach-omap2/voltagedomains33xx_data.c | 43 + arch/arm/mach-omap2/voltagedomains3xxx_data.c | 134 + arch/arm/mach-omap2/voltagedomains44xx_data.c | 130 + arch/arm/mach-omap2/vp.c | 282 + arch/arm/mach-omap2/vp.h | 135 + arch/arm/mach-omap2/vp3xxx_data.c | 89 + arch/arm/mach-omap2/vp44xx_data.c | 104 + arch/arm/mach-omap2/wd_timer.c | 132 + arch/arm/mach-omap2/wd_timer.h | 18 + 302 files changed, 113092 insertions(+) create mode 100644 arch/arm/mach-omap2/Kconfig create mode 100644 arch/arm/mach-omap2/Makefile create mode 100644 arch/arm/mach-omap2/Makefile.boot create mode 100644 arch/arm/mach-omap2/am33xx-restart.c create mode 100644 arch/arm/mach-omap2/am33xx.h create mode 100644 arch/arm/mach-omap2/am35xx-emac.c create mode 100644 arch/arm/mach-omap2/am35xx-emac.h create mode 100644 arch/arm/mach-omap2/am35xx.h create mode 100644 arch/arm/mach-omap2/board-2430sdp.c create mode 100644 arch/arm/mach-omap2/board-3430sdp.c create mode 100644 arch/arm/mach-omap2/board-3630sdp.c create mode 100644 arch/arm/mach-omap2/board-4430sdp.c create mode 100644 arch/arm/mach-omap2/board-am3517crane.c create mode 100644 arch/arm/mach-omap2/board-am3517evm.c create mode 100644 arch/arm/mach-omap2/board-cm-t35.c create mode 100644 arch/arm/mach-omap2/board-cm-t3517.c create mode 100644 arch/arm/mach-omap2/board-devkit8000.c create mode 100644 arch/arm/mach-omap2/board-flash.c create mode 100644 arch/arm/mach-omap2/board-flash.h create mode 100644 arch/arm/mach-omap2/board-generic.c create mode 100644 arch/arm/mach-omap2/board-h4.c create mode 100644 arch/arm/mach-omap2/board-igep0020.c create mode 100644 arch/arm/mach-omap2/board-ldp.c create mode 100644 arch/arm/mach-omap2/board-n8x0.c create mode 100644 arch/arm/mach-omap2/board-omap3beagle.c create mode 100644 arch/arm/mach-omap2/board-omap3evm.c create mode 100644 arch/arm/mach-omap2/board-omap3logic.c create mode 100644 arch/arm/mach-omap2/board-omap3pandora.c create mode 100644 arch/arm/mach-omap2/board-omap3stalker.c create mode 100644 arch/arm/mach-omap2/board-omap3touchbook.c create mode 100644 arch/arm/mach-omap2/board-omap4panda.c create mode 100644 arch/arm/mach-omap2/board-overo.c create mode 100644 arch/arm/mach-omap2/board-rm680.c create mode 100644 arch/arm/mach-omap2/board-rx51-peripherals.c create mode 100644 arch/arm/mach-omap2/board-rx51-video.c create mode 100644 arch/arm/mach-omap2/board-rx51.c create mode 100644 arch/arm/mach-omap2/board-rx51.h create mode 100644 arch/arm/mach-omap2/board-ti8168evm.c create mode 100644 arch/arm/mach-omap2/board-zoom-debugboard.c create mode 100644 arch/arm/mach-omap2/board-zoom-display.c create mode 100644 arch/arm/mach-omap2/board-zoom-peripherals.c create mode 100644 arch/arm/mach-omap2/board-zoom.c create mode 100644 arch/arm/mach-omap2/board-zoom.h create mode 100644 arch/arm/mach-omap2/cclock2420_data.c create mode 100644 arch/arm/mach-omap2/cclock2430_data.c create mode 100644 arch/arm/mach-omap2/cclock33xx_data.c create mode 100644 arch/arm/mach-omap2/cclock3xxx_data.c create mode 100644 arch/arm/mach-omap2/cclock44xx_data.c create mode 100644 arch/arm/mach-omap2/clkt2xxx_apll.c create mode 100644 arch/arm/mach-omap2/clkt2xxx_dpll.c create mode 100644 arch/arm/mach-omap2/clkt2xxx_dpllcore.c create mode 100644 arch/arm/mach-omap2/clkt2xxx_osc.c create mode 100644 arch/arm/mach-omap2/clkt2xxx_sys.c create mode 100644 arch/arm/mach-omap2/clkt2xxx_virt_prcm_set.c create mode 100644 arch/arm/mach-omap2/clkt34xx_dpll3m2.c create mode 100644 arch/arm/mach-omap2/clkt_clksel.c create mode 100644 arch/arm/mach-omap2/clkt_dpll.c create mode 100644 arch/arm/mach-omap2/clkt_iclk.c create mode 100644 arch/arm/mach-omap2/clock.c create mode 100644 arch/arm/mach-omap2/clock.h create mode 100644 arch/arm/mach-omap2/clock2430.c create mode 100644 arch/arm/mach-omap2/clock2xxx.c create mode 100644 arch/arm/mach-omap2/clock2xxx.h create mode 100644 arch/arm/mach-omap2/clock34xx.c create mode 100644 arch/arm/mach-omap2/clock34xx.h create mode 100644 arch/arm/mach-omap2/clock3517.c create mode 100644 arch/arm/mach-omap2/clock3517.h create mode 100644 arch/arm/mach-omap2/clock36xx.c create mode 100644 arch/arm/mach-omap2/clock36xx.h create mode 100644 arch/arm/mach-omap2/clock3xxx.c create mode 100644 arch/arm/mach-omap2/clock3xxx.h create mode 100644 arch/arm/mach-omap2/clock44xx.h create mode 100644 arch/arm/mach-omap2/clock_common_data.c create mode 100644 arch/arm/mach-omap2/clockdomain.c create mode 100644 arch/arm/mach-omap2/clockdomain.h create mode 100644 arch/arm/mach-omap2/clockdomains2420_data.c create mode 100644 arch/arm/mach-omap2/clockdomains2430_data.c create mode 100644 arch/arm/mach-omap2/clockdomains2xxx_3xxx_data.c create mode 100644 arch/arm/mach-omap2/clockdomains33xx_data.c create mode 100644 arch/arm/mach-omap2/clockdomains3xxx_data.c create mode 100644 arch/arm/mach-omap2/clockdomains44xx_data.c create mode 100644 arch/arm/mach-omap2/cm-regbits-24xx.h create mode 100644 arch/arm/mach-omap2/cm-regbits-33xx.h create mode 100644 arch/arm/mach-omap2/cm-regbits-34xx.h create mode 100644 arch/arm/mach-omap2/cm-regbits-44xx.h create mode 100644 arch/arm/mach-omap2/cm.h create mode 100644 arch/arm/mach-omap2/cm1_44xx.h create mode 100644 arch/arm/mach-omap2/cm2_44xx.h create mode 100644 arch/arm/mach-omap2/cm2xxx.c create mode 100644 arch/arm/mach-omap2/cm2xxx.h create mode 100644 arch/arm/mach-omap2/cm2xxx_3xxx.h create mode 100644 arch/arm/mach-omap2/cm33xx.c create mode 100644 arch/arm/mach-omap2/cm33xx.h create mode 100644 arch/arm/mach-omap2/cm3xxx.c create mode 100644 arch/arm/mach-omap2/cm3xxx.h create mode 100644 arch/arm/mach-omap2/cm44xx.c create mode 100644 arch/arm/mach-omap2/cm44xx.h create mode 100644 arch/arm/mach-omap2/cm_common.c create mode 100644 arch/arm/mach-omap2/cminst44xx.c create mode 100644 arch/arm/mach-omap2/cminst44xx.h create mode 100644 arch/arm/mach-omap2/common-board-devices.c create mode 100644 arch/arm/mach-omap2/common-board-devices.h create mode 100644 arch/arm/mach-omap2/common.c create mode 100644 arch/arm/mach-omap2/common.h create mode 100644 arch/arm/mach-omap2/control.c create mode 100644 arch/arm/mach-omap2/control.h create mode 100644 arch/arm/mach-omap2/cpuidle34xx.c create mode 100644 arch/arm/mach-omap2/cpuidle44xx.c create mode 100644 arch/arm/mach-omap2/ctrl_module_core_44xx.h create mode 100644 arch/arm/mach-omap2/ctrl_module_pad_core_44xx.h create mode 100644 arch/arm/mach-omap2/ctrl_module_pad_wkup_44xx.h create mode 100644 arch/arm/mach-omap2/ctrl_module_wkup_44xx.h create mode 100644 arch/arm/mach-omap2/devices.c create mode 100644 arch/arm/mach-omap2/devices.h create mode 100644 arch/arm/mach-omap2/display.c create mode 100644 arch/arm/mach-omap2/display.h create mode 100644 arch/arm/mach-omap2/dma.c create mode 100644 arch/arm/mach-omap2/dma.h create mode 100644 arch/arm/mach-omap2/dpll3xxx.c create mode 100644 arch/arm/mach-omap2/dpll44xx.c create mode 100644 arch/arm/mach-omap2/drm.c create mode 100644 arch/arm/mach-omap2/dsp.c create mode 100644 arch/arm/mach-omap2/dss-common.c create mode 100644 arch/arm/mach-omap2/dss-common.h create mode 100644 arch/arm/mach-omap2/fb.c create mode 100644 arch/arm/mach-omap2/gpio.c create mode 100644 arch/arm/mach-omap2/gpmc-nand.c create mode 100644 arch/arm/mach-omap2/gpmc-nand.h create mode 100644 arch/arm/mach-omap2/gpmc-onenand.c create mode 100644 arch/arm/mach-omap2/gpmc-onenand.h create mode 100644 arch/arm/mach-omap2/gpmc-smc91x.c create mode 100644 arch/arm/mach-omap2/gpmc-smc91x.h create mode 100644 arch/arm/mach-omap2/gpmc-smsc911x.c create mode 100644 arch/arm/mach-omap2/gpmc-smsc911x.h create mode 100644 arch/arm/mach-omap2/gpmc.c create mode 100644 arch/arm/mach-omap2/gpmc.h create mode 100644 arch/arm/mach-omap2/hdq1w.c create mode 100644 arch/arm/mach-omap2/hdq1w.h create mode 100644 arch/arm/mach-omap2/hsmmc.c create mode 100644 arch/arm/mach-omap2/hsmmc.h create mode 100644 arch/arm/mach-omap2/hwspinlock.c create mode 100644 arch/arm/mach-omap2/i2c.c create mode 100644 arch/arm/mach-omap2/i2c.h create mode 100644 arch/arm/mach-omap2/id.c create mode 100644 arch/arm/mach-omap2/id.h create mode 100644 arch/arm/mach-omap2/include/mach/barriers.h create mode 100644 arch/arm/mach-omap2/include/mach/hardware.h create mode 100644 arch/arm/mach-omap2/include/mach/irqs.h create mode 100644 arch/arm/mach-omap2/include/mach/serial.h create mode 100644 arch/arm/mach-omap2/include/mach/timex.h create mode 100644 arch/arm/mach-omap2/io.c create mode 100644 arch/arm/mach-omap2/iomap.h create mode 100644 arch/arm/mach-omap2/irq.c create mode 100644 arch/arm/mach-omap2/l3_2xxx.h create mode 100644 arch/arm/mach-omap2/l3_3xxx.h create mode 100644 arch/arm/mach-omap2/l4_2xxx.h create mode 100644 arch/arm/mach-omap2/l4_3xxx.h create mode 100644 arch/arm/mach-omap2/mailbox.c create mode 100644 arch/arm/mach-omap2/mcbsp.c create mode 100644 arch/arm/mach-omap2/mmc.h create mode 100644 arch/arm/mach-omap2/msdi.c create mode 100644 arch/arm/mach-omap2/mux.c create mode 100644 arch/arm/mach-omap2/mux.h create mode 100644 arch/arm/mach-omap2/mux2420.c create mode 100644 arch/arm/mach-omap2/mux2420.h create mode 100644 arch/arm/mach-omap2/mux2430.c create mode 100644 arch/arm/mach-omap2/mux2430.h create mode 100644 arch/arm/mach-omap2/mux34xx.c create mode 100644 arch/arm/mach-omap2/mux34xx.h create mode 100644 arch/arm/mach-omap2/mux44xx.c create mode 100644 arch/arm/mach-omap2/mux44xx.h create mode 100644 arch/arm/mach-omap2/omap-headsmp.S create mode 100644 arch/arm/mach-omap2/omap-hotplug.c create mode 100644 arch/arm/mach-omap2/omap-iommu.c create mode 100644 arch/arm/mach-omap2/omap-mpuss-lowpower.c create mode 100644 arch/arm/mach-omap2/omap-pm-noop.c create mode 100644 arch/arm/mach-omap2/omap-pm.h create mode 100644 arch/arm/mach-omap2/omap-secure.c create mode 100644 arch/arm/mach-omap2/omap-secure.h create mode 100644 arch/arm/mach-omap2/omap-smc.S create mode 100644 arch/arm/mach-omap2/omap-smp.c create mode 100644 arch/arm/mach-omap2/omap-wakeupgen.c create mode 100644 arch/arm/mach-omap2/omap-wakeupgen.h create mode 100644 arch/arm/mach-omap2/omap2-restart.c create mode 100644 arch/arm/mach-omap2/omap24xx.h create mode 100644 arch/arm/mach-omap2/omap3-restart.c create mode 100644 arch/arm/mach-omap2/omap34xx.h create mode 100644 arch/arm/mach-omap2/omap4-common.c create mode 100644 arch/arm/mach-omap2/omap4-keypad.h create mode 100644 arch/arm/mach-omap2/omap4-sar-layout.h create mode 100644 arch/arm/mach-omap2/omap44xx.h create mode 100644 arch/arm/mach-omap2/omap54xx.h create mode 100644 arch/arm/mach-omap2/omap_device.c create mode 100644 arch/arm/mach-omap2/omap_device.h create mode 100644 arch/arm/mach-omap2/omap_hwmod.c create mode 100644 arch/arm/mach-omap2/omap_hwmod.h create mode 100644 arch/arm/mach-omap2/omap_hwmod_2420_data.c create mode 100644 arch/arm/mach-omap2/omap_hwmod_2430_data.c create mode 100644 arch/arm/mach-omap2/omap_hwmod_2xxx_3xxx_interconnect_data.c create mode 100644 arch/arm/mach-omap2/omap_hwmod_2xxx_3xxx_ipblock_data.c create mode 100644 arch/arm/mach-omap2/omap_hwmod_2xxx_interconnect_data.c create mode 100644 arch/arm/mach-omap2/omap_hwmod_2xxx_ipblock_data.c create mode 100644 arch/arm/mach-omap2/omap_hwmod_33xx_data.c create mode 100644 arch/arm/mach-omap2/omap_hwmod_3xxx_data.c create mode 100644 arch/arm/mach-omap2/omap_hwmod_44xx_data.c create mode 100644 arch/arm/mach-omap2/omap_hwmod_common_data.c create mode 100644 arch/arm/mach-omap2/omap_hwmod_common_data.h create mode 100644 arch/arm/mach-omap2/omap_hwmod_reset.c create mode 100644 arch/arm/mach-omap2/omap_opp_data.h create mode 100644 arch/arm/mach-omap2/omap_phy_internal.c create mode 100644 arch/arm/mach-omap2/omap_twl.c create mode 100644 arch/arm/mach-omap2/opp.c create mode 100644 arch/arm/mach-omap2/opp2420_data.c create mode 100644 arch/arm/mach-omap2/opp2430_data.c create mode 100644 arch/arm/mach-omap2/opp2xxx.h create mode 100644 arch/arm/mach-omap2/opp3xxx_data.c create mode 100644 arch/arm/mach-omap2/opp4xxx_data.c create mode 100644 arch/arm/mach-omap2/pm-debug.c create mode 100644 arch/arm/mach-omap2/pm.c create mode 100644 arch/arm/mach-omap2/pm.h create mode 100644 arch/arm/mach-omap2/pm24xx.c create mode 100644 arch/arm/mach-omap2/pm34xx.c create mode 100644 arch/arm/mach-omap2/pm44xx.c create mode 100644 arch/arm/mach-omap2/pmu.c create mode 100644 arch/arm/mach-omap2/powerdomain-common.c create mode 100644 arch/arm/mach-omap2/powerdomain.c create mode 100644 arch/arm/mach-omap2/powerdomain.h create mode 100644 arch/arm/mach-omap2/powerdomains2xxx_3xxx_data.c create mode 100644 arch/arm/mach-omap2/powerdomains2xxx_3xxx_data.h create mode 100644 arch/arm/mach-omap2/powerdomains2xxx_data.c create mode 100644 arch/arm/mach-omap2/powerdomains33xx_data.c create mode 100644 arch/arm/mach-omap2/powerdomains3xxx_data.c create mode 100644 arch/arm/mach-omap2/powerdomains44xx_data.c create mode 100644 arch/arm/mach-omap2/prcm-common.h create mode 100644 arch/arm/mach-omap2/prcm44xx.h create mode 100644 arch/arm/mach-omap2/prcm_mpu44xx.c create mode 100644 arch/arm/mach-omap2/prcm_mpu44xx.h create mode 100644 arch/arm/mach-omap2/prm-regbits-24xx.h create mode 100644 arch/arm/mach-omap2/prm-regbits-33xx.h create mode 100644 arch/arm/mach-omap2/prm-regbits-34xx.h create mode 100644 arch/arm/mach-omap2/prm-regbits-44xx.h create mode 100644 arch/arm/mach-omap2/prm.h create mode 100644 arch/arm/mach-omap2/prm2xxx.c create mode 100644 arch/arm/mach-omap2/prm2xxx.h create mode 100644 arch/arm/mach-omap2/prm2xxx_3xxx.c create mode 100644 arch/arm/mach-omap2/prm2xxx_3xxx.h create mode 100644 arch/arm/mach-omap2/prm33xx.c create mode 100644 arch/arm/mach-omap2/prm33xx.h create mode 100644 arch/arm/mach-omap2/prm3xxx.c create mode 100644 arch/arm/mach-omap2/prm3xxx.h create mode 100644 arch/arm/mach-omap2/prm44xx.c create mode 100644 arch/arm/mach-omap2/prm44xx.h create mode 100644 arch/arm/mach-omap2/prm_common.c create mode 100644 arch/arm/mach-omap2/prminst44xx.c create mode 100644 arch/arm/mach-omap2/prminst44xx.h create mode 100644 arch/arm/mach-omap2/scrm44xx.h create mode 100644 arch/arm/mach-omap2/sdram-hynix-h8mbx00u0mer-0em.h create mode 100644 arch/arm/mach-omap2/sdram-micron-mt46h32m32lf-6.h create mode 100644 arch/arm/mach-omap2/sdram-nokia.c create mode 100644 arch/arm/mach-omap2/sdram-nokia.h create mode 100644 arch/arm/mach-omap2/sdram-numonyx-m65kxxxxam.h create mode 100644 arch/arm/mach-omap2/sdram-qimonda-hyb18m512160af-6.h create mode 100644 arch/arm/mach-omap2/sdrc.c create mode 100644 arch/arm/mach-omap2/sdrc.h create mode 100644 arch/arm/mach-omap2/sdrc2xxx.c create mode 100644 arch/arm/mach-omap2/serial.c create mode 100644 arch/arm/mach-omap2/serial.h create mode 100644 arch/arm/mach-omap2/sleep24xx.S create mode 100644 arch/arm/mach-omap2/sleep34xx.S create mode 100644 arch/arm/mach-omap2/sleep44xx.S create mode 100644 arch/arm/mach-omap2/smartreflex-class3.c create mode 100644 arch/arm/mach-omap2/soc.h create mode 100644 arch/arm/mach-omap2/sr_device.c create mode 100644 arch/arm/mach-omap2/sram.c create mode 100644 arch/arm/mach-omap2/sram.h create mode 100644 arch/arm/mach-omap2/sram242x.S create mode 100644 arch/arm/mach-omap2/sram243x.S create mode 100644 arch/arm/mach-omap2/sram34xx.S create mode 100644 arch/arm/mach-omap2/ti81xx.h create mode 100644 arch/arm/mach-omap2/timer.c create mode 100644 arch/arm/mach-omap2/twl-common.c create mode 100644 arch/arm/mach-omap2/twl-common.h create mode 100644 arch/arm/mach-omap2/usb-host.c create mode 100644 arch/arm/mach-omap2/usb-musb.c create mode 100644 arch/arm/mach-omap2/usb-tusb6010.c create mode 100644 arch/arm/mach-omap2/usb.h create mode 100644 arch/arm/mach-omap2/vc.c create mode 100644 arch/arm/mach-omap2/vc.h create mode 100644 arch/arm/mach-omap2/vc3xxx_data.c create mode 100644 arch/arm/mach-omap2/vc44xx_data.c create mode 100644 arch/arm/mach-omap2/voltage.c create mode 100644 arch/arm/mach-omap2/voltage.h create mode 100644 arch/arm/mach-omap2/voltagedomains2xxx_data.c create mode 100644 arch/arm/mach-omap2/voltagedomains33xx_data.c create mode 100644 arch/arm/mach-omap2/voltagedomains3xxx_data.c create mode 100644 arch/arm/mach-omap2/voltagedomains44xx_data.c create mode 100644 arch/arm/mach-omap2/vp.c create mode 100644 arch/arm/mach-omap2/vp.h create mode 100644 arch/arm/mach-omap2/vp3xxx_data.c create mode 100644 arch/arm/mach-omap2/vp44xx_data.c create mode 100644 arch/arm/mach-omap2/wd_timer.c create mode 100644 arch/arm/mach-omap2/wd_timer.h (limited to 'arch/arm/mach-omap2') diff --git a/arch/arm/mach-omap2/Kconfig b/arch/arm/mach-omap2/Kconfig new file mode 100644 index 00000000..42afc668 --- /dev/null +++ b/arch/arm/mach-omap2/Kconfig @@ -0,0 +1,432 @@ +config ARCH_OMAP + bool + +config ARCH_OMAP2PLUS + bool "TI OMAP2/3/4/5 SoCs with device tree support" if (ARCH_MULTI_V6 || ARCH_MULTI_V7) + select ARCH_HAS_CPUFREQ + select ARCH_HAS_HOLES_MEMORYMODEL + select ARCH_OMAP + select ARCH_REQUIRE_GPIOLIB + select CLKDEV_LOOKUP + select CLKSRC_MMIO + select GENERIC_CLOCKEVENTS + select GENERIC_IRQ_CHIP + select HAVE_CLK + select OMAP_DM_TIMER + select PINCTRL + select PROC_DEVICETREE if PROC_FS + select SOC_BUS + select SPARSE_IRQ + select USE_OF + help + Systems based on OMAP2, OMAP3, OMAP4 or OMAP5 + + +if ARCH_OMAP2PLUS + +menu "TI OMAP2/3/4 Specific Features" + +config ARCH_OMAP2PLUS_TYPICAL + bool "Typical OMAP configuration" + default y + select AEABI + select HIGHMEM + select I2C + select I2C_OMAP + select MENELAUS if ARCH_OMAP2 + select NEON if ARCH_OMAP3 || ARCH_OMAP4 || SOC_OMAP5 + select PM_RUNTIME + select REGULATOR + select TWL4030_CORE if ARCH_OMAP3 || ARCH_OMAP4 + select TWL4030_POWER if ARCH_OMAP3 || ARCH_OMAP4 + select VFP + help + Compile a kernel suitable for booting most boards + +config SOC_HAS_OMAP2_SDRC + bool "OMAP2 SDRAM Controller support" + +config SOC_HAS_REALTIME_COUNTER + bool "Real time free running counter" + depends on SOC_OMAP5 + default y + +config ARCH_OMAP2 + bool "TI OMAP2" + depends on ARCH_OMAP2PLUS + depends on ARCH_MULTI_V6 + default y + select CPU_V6 + select MULTI_IRQ_HANDLER + select SOC_HAS_OMAP2_SDRC + select COMMON_CLK + +config ARCH_OMAP3 + bool "TI OMAP3" + depends on ARCH_OMAP2PLUS + depends on ARCH_MULTI_V7 + default y + select ARCH_HAS_OPP + select ARM_CPU_SUSPEND if PM + select CPU_V7 + select MULTI_IRQ_HANDLER + select OMAP_INTERCONNECT + select PM_OPP if PM + select PM_RUNTIME if CPU_IDLE + select SOC_HAS_OMAP2_SDRC + select COMMON_CLK + select USB_ARCH_HAS_EHCI if USB_SUPPORT + +config ARCH_OMAP4 + bool "TI OMAP4" + default y + depends on ARCH_OMAP2PLUS + depends on ARCH_MULTI_V7 + select ARCH_HAS_OPP + select ARCH_NEEDS_CPU_IDLE_COUPLED if SMP + select ARM_CPU_SUSPEND if PM + select ARM_ERRATA_720789 + select ARM_GIC + select CACHE_L2X0 + select CPU_V7 + select HAVE_ARM_SCU if SMP + select HAVE_ARM_TWD if LOCAL_TIMERS + select HAVE_SMP + select LOCAL_TIMERS if SMP + select OMAP_INTERCONNECT + select PL310_ERRATA_588369 + select PL310_ERRATA_727915 + select PM_OPP if PM + select PM_RUNTIME if CPU_IDLE + select USB_ARCH_HAS_EHCI if USB_SUPPORT + select COMMON_CLK + select ARM_ERRATA_754322 + select ARM_ERRATA_775420 + +config SOC_OMAP5 + bool "TI OMAP5" + depends on ARCH_MULTI_V7 + select ARM_CPU_SUSPEND if PM + select ARM_GIC + select CPU_V7 + select HAVE_SMP + select COMMON_CLK + select HAVE_ARM_ARCH_TIMER + +comment "OMAP Core Type" + depends on ARCH_OMAP2 + +config SOC_OMAP2420 + bool "OMAP2420 support" + depends on ARCH_OMAP2 + default y + select OMAP_DM_TIMER + select SOC_HAS_OMAP2_SDRC + +config SOC_OMAP2430 + bool "OMAP2430 support" + depends on ARCH_OMAP2 + default y + select SOC_HAS_OMAP2_SDRC + +config SOC_OMAP3430 + bool "OMAP3430 support" + depends on ARCH_OMAP3 + default y + select SOC_HAS_OMAP2_SDRC + +config SOC_TI81XX + bool "TI81XX support" + depends on ARCH_OMAP3 + default y + +config SOC_AM33XX + bool "AM33XX support" + depends on ARCH_MULTI_V7 + default y + select ARM_CPU_SUSPEND if PM + select CPU_V7 + select MULTI_IRQ_HANDLER + select COMMON_CLK + +config OMAP_PACKAGE_ZAF + bool + +config OMAP_PACKAGE_ZAC + bool + +config OMAP_PACKAGE_CBC + bool + +config OMAP_PACKAGE_CBB + bool + +config OMAP_PACKAGE_CUS + bool + +config OMAP_PACKAGE_CBP + bool + +config OMAP_PACKAGE_CBL + bool + +config OMAP_PACKAGE_CBS + bool + +comment "OMAP Board Type" + depends on ARCH_OMAP2PLUS + +config MACH_OMAP_GENERIC + bool "Generic OMAP2+ board" + depends on ARCH_OMAP2PLUS + default y + help + Support for generic TI OMAP2+ boards using Flattened Device Tree. + More information at Documentation/devicetree + +config MACH_OMAP2_TUSB6010 + bool + depends on ARCH_OMAP2 && SOC_OMAP2420 + default y if MACH_NOKIA_N8X0 + +config MACH_OMAP_H4 + bool "OMAP 2420 H4 board" + depends on SOC_OMAP2420 + default y + select OMAP_DEBUG_DEVICES + select OMAP_PACKAGE_ZAF + +config MACH_OMAP_2430SDP + bool "OMAP 2430 SDP board" + depends on SOC_OMAP2430 + default y + select OMAP_PACKAGE_ZAC + +config MACH_OMAP3_BEAGLE + bool "OMAP3 BEAGLE board" + depends on ARCH_OMAP3 + default y + select OMAP_PACKAGE_CBB + +config MACH_DEVKIT8000 + bool "DEVKIT8000 board" + depends on ARCH_OMAP3 + default y + select OMAP_PACKAGE_CUS + +config MACH_OMAP_LDP + bool "OMAP3 LDP board" + depends on ARCH_OMAP3 + default y + select OMAP_PACKAGE_CBB + +config MACH_OMAP3530_LV_SOM + bool "OMAP3 Logic 3530 LV SOM board" + depends on ARCH_OMAP3 + default y + select OMAP_PACKAGE_CBB + help + Support for the LogicPD OMAP3530 SOM Development kit + for full description please see the products webpage at + http://www.logicpd.com/products/development-kits/texas-instruments-zoom%E2%84%A2-omap35x-development-kit + +config MACH_OMAP3_TORPEDO + bool "OMAP3 Logic 35x Torpedo board" + depends on ARCH_OMAP3 + default y + select OMAP_PACKAGE_CBB + help + Support for the LogicPD OMAP35x Torpedo Development kit + for full description please see the products webpage at + http://www.logicpd.com/products/development-kits/zoom-omap35x-torpedo-development-kit + +config MACH_OVERO + bool "Gumstix Overo board" + depends on ARCH_OMAP3 + default y + select OMAP_PACKAGE_CBB + +config MACH_OMAP3EVM + bool "OMAP 3530 EVM board" + depends on ARCH_OMAP3 + default y + select OMAP_PACKAGE_CBB + +config MACH_OMAP3517EVM + bool "OMAP3517/ AM3517 EVM board" + depends on ARCH_OMAP3 + default y + select OMAP_PACKAGE_CBB + +config MACH_CRANEBOARD + bool "AM3517/05 CRANE board" + depends on ARCH_OMAP3 + select OMAP_PACKAGE_CBB + +config MACH_OMAP3_PANDORA + bool "OMAP3 Pandora" + depends on ARCH_OMAP3 + default y + select OMAP_PACKAGE_CBB + select REGULATOR_FIXED_VOLTAGE if REGULATOR + +config MACH_TOUCHBOOK + bool "OMAP3 Touch Book" + depends on ARCH_OMAP3 + default y + select OMAP_PACKAGE_CBB + +config MACH_OMAP_3430SDP + bool "OMAP 3430 SDP board" + depends on ARCH_OMAP3 + default y + select OMAP_PACKAGE_CBB + +config MACH_NOKIA_N800 + bool + +config MACH_NOKIA_N810 + bool + +config MACH_NOKIA_N810_WIMAX + bool + +config MACH_NOKIA_N8X0 + bool "Nokia N800/N810" + depends on SOC_OMAP2420 + default y + select MACH_NOKIA_N800 + select MACH_NOKIA_N810 + select MACH_NOKIA_N810_WIMAX + select OMAP_PACKAGE_ZAC + +config MACH_NOKIA_RM680 + bool "Nokia N950 (RM-680) / N9 (RM-696) phones" + depends on ARCH_OMAP3 + default y + select MACH_NOKIA_RM696 + select OMAP_PACKAGE_CBB + +config MACH_NOKIA_RX51 + bool "Nokia N900 (RX-51) phone" + depends on ARCH_OMAP3 + default y + select OMAP_PACKAGE_CBB + +config MACH_OMAP_ZOOM2 + bool "OMAP3 Zoom2 board" + depends on ARCH_OMAP3 + default y + select OMAP_PACKAGE_CBB + select REGULATOR_FIXED_VOLTAGE if REGULATOR + +config MACH_OMAP_ZOOM3 + bool "OMAP3630 Zoom3 board" + depends on ARCH_OMAP3 + default y + select OMAP_PACKAGE_CBP + select REGULATOR_FIXED_VOLTAGE if REGULATOR + +config MACH_CM_T35 + bool "CompuLab CM-T35/CM-T3730 modules" + depends on ARCH_OMAP3 + default y + select MACH_CM_T3730 + select OMAP_PACKAGE_CUS + +config MACH_CM_T3517 + bool "CompuLab CM-T3517 module" + depends on ARCH_OMAP3 + default y + select OMAP_PACKAGE_CBB + +config MACH_CM_T3730 + bool + +config MACH_IGEP0020 + bool "IGEP v2 board" + depends on ARCH_OMAP3 + default y + select OMAP_PACKAGE_CBB + +config MACH_IGEP0030 + bool "IGEP OMAP3 module" + depends on ARCH_OMAP3 + default y + select MACH_IGEP0020 + select OMAP_PACKAGE_CBB + +config MACH_SBC3530 + bool "OMAP3 SBC STALKER board" + depends on ARCH_OMAP3 + default y + select OMAP_PACKAGE_CUS + +config MACH_OMAP_3630SDP + bool "OMAP3630 SDP board" + depends on ARCH_OMAP3 + default y + select OMAP_PACKAGE_CBP + +config MACH_TI8168EVM + bool "TI8168 Evaluation Module" + depends on SOC_TI81XX + default y + +config MACH_TI8148EVM + bool "TI8148 Evaluation Module" + depends on SOC_TI81XX + default y + +config MACH_OMAP_4430SDP + bool "OMAP 4430 SDP board" + default y + depends on ARCH_OMAP4 + select OMAP_PACKAGE_CBL + select OMAP_PACKAGE_CBS + select REGULATOR_FIXED_VOLTAGE if REGULATOR + +config MACH_OMAP4_PANDA + bool "OMAP4 Panda Board" + default y + depends on ARCH_OMAP4 + select OMAP_PACKAGE_CBL + select OMAP_PACKAGE_CBS + select REGULATOR_FIXED_VOLTAGE if REGULATOR + +config OMAP3_SDRC_AC_TIMING + bool "Enable SDRC AC timing register changes" + depends on ARCH_OMAP3 + default n + help + If you know that none of your system initiators will attempt to + access SDRAM during CORE DVFS, select Y here. This should boost + SDRAM performance at lower CORE OPPs. There are relatively few + users who will wish to say yes at this point - almost everyone will + wish to say no. Selecting yes without understanding what is + going on could result in system crashes; + +config OMAP4_ERRATA_I688 + bool "OMAP4 errata: Async Bridge Corruption" + depends on (ARCH_OMAP4 || SOC_OMAP5) && !ARCH_MULTIPLATFORM + select ARCH_HAS_BARRIERS + help + If a data is stalled inside asynchronous bridge because of back + pressure, it may be accepted multiple times, creating pointer + misalignment that will corrupt next transfers on that data path + until next reset of the system (No recovery procedure once the + issue is hit, the path remains consistently broken). Async bridge + can be found on path between MPU to EMIF and MPU to L3 interconnect. + This situation can happen only when the idle is initiated by a + Master Request Disconnection (which is trigged by software when + executing WFI on CPU). + The work-around for this errata needs all the initiators connected + through async bridge must ensure that data path is properly drained + before issuing WFI. This condition will be met if one Strongly ordered + access is performed to the target right before executing the WFI. + In MPU case, L3 T2ASYNC FIFO and DDR T2ASYNC FIFO needs to be drained. + IO barrier ensure that there is no synchronisation loss on initiators + operating on both interconnect port simultaneously. +endmenu + +endif diff --git a/arch/arm/mach-omap2/Makefile b/arch/arm/mach-omap2/Makefile new file mode 100644 index 00000000..e2f7210a --- /dev/null +++ b/arch/arm/mach-omap2/Makefile @@ -0,0 +1,297 @@ +# +# Makefile for the linux kernel. +# + +ccflags-$(CONFIG_ARCH_MULTIPLATFORM) := -I$(srctree)/$(src)/include \ + -I$(srctree)/arch/arm/plat-omap/include + +# Common support +obj-y := id.o io.o control.o mux.o devices.o fb.o serial.o gpmc.o timer.o pm.o \ + common.o gpio.o dma.o wd_timer.o display.o i2c.o hdq1w.o omap_hwmod.o \ + omap_device.o sram.o + +omap-2-3-common = irq.o +hwmod-common = omap_hwmod.o omap_hwmod_reset.o \ + omap_hwmod_common_data.o +clock-common = clock.o clock_common_data.o \ + clkt_dpll.o clkt_clksel.o +secure-common = omap-smc.o omap-secure.o + +obj-$(CONFIG_ARCH_OMAP2) += $(omap-2-3-common) $(hwmod-common) +obj-$(CONFIG_ARCH_OMAP3) += $(omap-2-3-common) $(hwmod-common) $(secure-common) +obj-$(CONFIG_ARCH_OMAP4) += prm44xx.o $(hwmod-common) $(secure-common) +obj-$(CONFIG_SOC_AM33XX) += irq.o $(hwmod-common) +obj-$(CONFIG_SOC_OMAP5) += prm44xx.o $(hwmod-common) $(secure-common) + +ifneq ($(CONFIG_SND_OMAP_SOC_MCBSP),) +obj-y += mcbsp.o +endif + +obj-$(CONFIG_TWL4030_CORE) += omap_twl.o +obj-$(CONFIG_SOC_HAS_OMAP2_SDRC) += sdrc.o + +# SMP support ONLY available for OMAP4 + +smp-$(CONFIG_SMP) += omap-smp.o omap-headsmp.o +smp-$(CONFIG_HOTPLUG_CPU) += omap-hotplug.o +omap-4-5-common = omap4-common.o omap-wakeupgen.o \ + sleep44xx.o +obj-$(CONFIG_ARCH_OMAP4) += $(omap-4-5-common) $(smp-y) +obj-$(CONFIG_SOC_OMAP5) += $(omap-4-5-common) $(smp-y) + +plus_sec := $(call as-instr,.arch_extension sec,+sec) +AFLAGS_omap-headsmp.o :=-Wa,-march=armv7-a$(plus_sec) +AFLAGS_omap-smc.o :=-Wa,-march=armv7-a$(plus_sec) +AFLAGS_sleep44xx.o :=-Wa,-march=armv7-a$(plus_sec) + +# Functions loaded to SRAM +obj-$(CONFIG_SOC_OMAP2420) += sram242x.o +obj-$(CONFIG_SOC_OMAP2430) += sram243x.o +obj-$(CONFIG_ARCH_OMAP3) += sram34xx.o + +AFLAGS_sram242x.o :=-Wa,-march=armv6 +AFLAGS_sram243x.o :=-Wa,-march=armv6 +AFLAGS_sram34xx.o :=-Wa,-march=armv7-a + +# Restart code (OMAP4/5 currently in omap4-common.c) +obj-$(CONFIG_SOC_OMAP2420) += omap2-restart.o +obj-$(CONFIG_SOC_OMAP2430) += omap2-restart.o +obj-$(CONFIG_SOC_AM33XX) += am33xx-restart.o +obj-$(CONFIG_ARCH_OMAP3) += omap3-restart.o + +# Pin multiplexing +obj-$(CONFIG_SOC_OMAP2420) += mux2420.o +obj-$(CONFIG_SOC_OMAP2430) += mux2430.o +obj-$(CONFIG_ARCH_OMAP3) += mux34xx.o +obj-$(CONFIG_ARCH_OMAP4) += mux44xx.o + +# SMS/SDRC +obj-$(CONFIG_ARCH_OMAP2) += sdrc2xxx.o +# obj-$(CONFIG_ARCH_OMAP3) += sdrc3xxx.o + +# OPP table initialization +ifeq ($(CONFIG_PM_OPP),y) +obj-y += opp.o +obj-$(CONFIG_ARCH_OMAP3) += opp3xxx_data.o +obj-$(CONFIG_ARCH_OMAP4) += opp4xxx_data.o +endif + +# Power Management +obj-$(CONFIG_OMAP_PM_NOOP) += omap-pm-noop.o + +ifeq ($(CONFIG_PM),y) +obj-$(CONFIG_ARCH_OMAP2) += pm24xx.o +obj-$(CONFIG_ARCH_OMAP2) += sleep24xx.o +obj-$(CONFIG_ARCH_OMAP3) += pm34xx.o sleep34xx.o +obj-$(CONFIG_ARCH_OMAP4) += pm44xx.o omap-mpuss-lowpower.o +obj-$(CONFIG_SOC_OMAP5) += omap-mpuss-lowpower.o +obj-$(CONFIG_PM_DEBUG) += pm-debug.o + +obj-$(CONFIG_POWER_AVS_OMAP) += sr_device.o +obj-$(CONFIG_POWER_AVS_OMAP_CLASS3) += smartreflex-class3.o + +AFLAGS_sleep24xx.o :=-Wa,-march=armv6 +AFLAGS_sleep34xx.o :=-Wa,-march=armv7-a$(plus_sec) + +ifeq ($(CONFIG_PM_VERBOSE),y) +CFLAGS_pm_bus.o += -DDEBUG +endif + +endif + +ifeq ($(CONFIG_CPU_IDLE),y) +obj-$(CONFIG_ARCH_OMAP3) += cpuidle34xx.o +obj-$(CONFIG_ARCH_OMAP4) += cpuidle44xx.o +endif + +# PRCM +obj-y += prm_common.o cm_common.o +obj-$(CONFIG_ARCH_OMAP2) += prm2xxx_3xxx.o prm2xxx.o cm2xxx.o +obj-$(CONFIG_ARCH_OMAP3) += prm2xxx_3xxx.o prm3xxx.o cm3xxx.o +obj-$(CONFIG_ARCH_OMAP3) += vc3xxx_data.o vp3xxx_data.o +obj-$(CONFIG_SOC_AM33XX) += prm33xx.o cm33xx.o +omap-prcm-4-5-common = cminst44xx.o cm44xx.o prm44xx.o \ + prcm_mpu44xx.o prminst44xx.o \ + vc44xx_data.o vp44xx_data.o +obj-$(CONFIG_ARCH_OMAP4) += $(omap-prcm-4-5-common) +obj-$(CONFIG_SOC_OMAP5) += $(omap-prcm-4-5-common) + +# OMAP voltage domains +voltagedomain-common := voltage.o vc.o vp.o +obj-$(CONFIG_ARCH_OMAP2) += $(voltagedomain-common) +obj-$(CONFIG_ARCH_OMAP2) += voltagedomains2xxx_data.o +obj-$(CONFIG_ARCH_OMAP3) += $(voltagedomain-common) +obj-$(CONFIG_ARCH_OMAP3) += voltagedomains3xxx_data.o +obj-$(CONFIG_ARCH_OMAP4) += $(voltagedomain-common) +obj-$(CONFIG_ARCH_OMAP4) += voltagedomains44xx_data.o +obj-$(CONFIG_SOC_AM33XX) += $(voltagedomain-common) +obj-$(CONFIG_SOC_AM33XX) += voltagedomains33xx_data.o +obj-$(CONFIG_SOC_OMAP5) += $(voltagedomain-common) + +# OMAP powerdomain framework +powerdomain-common += powerdomain.o powerdomain-common.o +obj-$(CONFIG_ARCH_OMAP2) += $(powerdomain-common) +obj-$(CONFIG_ARCH_OMAP2) += powerdomains2xxx_data.o +obj-$(CONFIG_ARCH_OMAP2) += powerdomains2xxx_3xxx_data.o +obj-$(CONFIG_ARCH_OMAP3) += $(powerdomain-common) +obj-$(CONFIG_ARCH_OMAP3) += powerdomains3xxx_data.o +obj-$(CONFIG_ARCH_OMAP3) += powerdomains2xxx_3xxx_data.o +obj-$(CONFIG_ARCH_OMAP4) += $(powerdomain-common) +obj-$(CONFIG_ARCH_OMAP4) += powerdomains44xx_data.o +obj-$(CONFIG_SOC_AM33XX) += $(powerdomain-common) +obj-$(CONFIG_SOC_AM33XX) += powerdomains33xx_data.o +obj-$(CONFIG_SOC_OMAP5) += $(powerdomain-common) + +# PRCM clockdomain control +clockdomain-common += clockdomain.o +obj-$(CONFIG_ARCH_OMAP2) += $(clockdomain-common) +obj-$(CONFIG_ARCH_OMAP2) += clockdomains2xxx_3xxx_data.o +obj-$(CONFIG_SOC_OMAP2420) += clockdomains2420_data.o +obj-$(CONFIG_SOC_OMAP2430) += clockdomains2430_data.o +obj-$(CONFIG_ARCH_OMAP3) += $(clockdomain-common) +obj-$(CONFIG_ARCH_OMAP3) += clockdomains2xxx_3xxx_data.o +obj-$(CONFIG_ARCH_OMAP3) += clockdomains3xxx_data.o +obj-$(CONFIG_ARCH_OMAP4) += $(clockdomain-common) +obj-$(CONFIG_ARCH_OMAP4) += clockdomains44xx_data.o +obj-$(CONFIG_SOC_AM33XX) += $(clockdomain-common) +obj-$(CONFIG_SOC_AM33XX) += clockdomains33xx_data.o +obj-$(CONFIG_SOC_OMAP5) += $(clockdomain-common) + +# Clock framework +obj-$(CONFIG_ARCH_OMAP2) += $(clock-common) clock2xxx.o +obj-$(CONFIG_ARCH_OMAP2) += clkt2xxx_sys.o +obj-$(CONFIG_ARCH_OMAP2) += clkt2xxx_dpllcore.o +obj-$(CONFIG_ARCH_OMAP2) += clkt2xxx_virt_prcm_set.o +obj-$(CONFIG_ARCH_OMAP2) += clkt2xxx_apll.o clkt2xxx_osc.o +obj-$(CONFIG_ARCH_OMAP2) += clkt2xxx_dpll.o clkt_iclk.o +obj-$(CONFIG_SOC_OMAP2420) += cclock2420_data.o +obj-$(CONFIG_SOC_OMAP2430) += clock2430.o cclock2430_data.o +obj-$(CONFIG_ARCH_OMAP3) += $(clock-common) clock3xxx.o +obj-$(CONFIG_ARCH_OMAP3) += clock34xx.o clkt34xx_dpll3m2.o +obj-$(CONFIG_ARCH_OMAP3) += clock3517.o clock36xx.o +obj-$(CONFIG_ARCH_OMAP3) += dpll3xxx.o cclock3xxx_data.o +obj-$(CONFIG_ARCH_OMAP3) += clkt_iclk.o +obj-$(CONFIG_ARCH_OMAP4) += $(clock-common) cclock44xx_data.o +obj-$(CONFIG_ARCH_OMAP4) += dpll3xxx.o dpll44xx.o +obj-$(CONFIG_SOC_AM33XX) += $(clock-common) dpll3xxx.o +obj-$(CONFIG_SOC_AM33XX) += cclock33xx_data.o +obj-$(CONFIG_SOC_OMAP5) += $(clock-common) +obj-$(CONFIG_SOC_OMAP5) += dpll3xxx.o dpll44xx.o + +# OMAP2 clock rate set data (old "OPP" data) +obj-$(CONFIG_SOC_OMAP2420) += opp2420_data.o +obj-$(CONFIG_SOC_OMAP2430) += opp2430_data.o + +# hwmod data +obj-$(CONFIG_SOC_OMAP2420) += omap_hwmod_2xxx_ipblock_data.o +obj-$(CONFIG_SOC_OMAP2420) += omap_hwmod_2xxx_3xxx_ipblock_data.o +obj-$(CONFIG_SOC_OMAP2420) += omap_hwmod_2xxx_interconnect_data.o +obj-$(CONFIG_SOC_OMAP2420) += omap_hwmod_2xxx_3xxx_interconnect_data.o +obj-$(CONFIG_SOC_OMAP2420) += omap_hwmod_2420_data.o +obj-$(CONFIG_SOC_OMAP2430) += omap_hwmod_2xxx_ipblock_data.o +obj-$(CONFIG_SOC_OMAP2430) += omap_hwmod_2xxx_3xxx_ipblock_data.o +obj-$(CONFIG_SOC_OMAP2430) += omap_hwmod_2xxx_interconnect_data.o +obj-$(CONFIG_SOC_OMAP2430) += omap_hwmod_2xxx_3xxx_interconnect_data.o +obj-$(CONFIG_SOC_OMAP2430) += omap_hwmod_2430_data.o +obj-$(CONFIG_ARCH_OMAP3) += omap_hwmod_2xxx_3xxx_ipblock_data.o +obj-$(CONFIG_ARCH_OMAP3) += omap_hwmod_2xxx_3xxx_interconnect_data.o +obj-$(CONFIG_ARCH_OMAP3) += omap_hwmod_3xxx_data.o +obj-$(CONFIG_SOC_AM33XX) += omap_hwmod_33xx_data.o +obj-$(CONFIG_ARCH_OMAP4) += omap_hwmod_44xx_data.o + +# EMU peripherals +obj-$(CONFIG_HW_PERF_EVENTS) += pmu.o + +obj-$(CONFIG_OMAP_MBOX_FWK) += mailbox_mach.o +mailbox_mach-objs := mailbox.o + +iommu-$(CONFIG_OMAP_IOMMU) := omap-iommu.o +obj-y += $(iommu-m) $(iommu-y) + +ifneq ($(CONFIG_TIDSPBRIDGE),) +obj-y += dsp.o +endif + +# OMAP2420 MSDI controller integration support ("MMC") +obj-$(CONFIG_SOC_OMAP2420) += msdi.o + +ifneq ($(CONFIG_DRM_OMAP),) +obj-y += drm.o +endif + +# Specific board support +obj-$(CONFIG_MACH_OMAP_GENERIC) += board-generic.o +obj-$(CONFIG_MACH_OMAP_H4) += board-h4.o +obj-$(CONFIG_MACH_OMAP_2430SDP) += board-2430sdp.o +obj-$(CONFIG_MACH_OMAP3_BEAGLE) += board-omap3beagle.o +obj-$(CONFIG_MACH_DEVKIT8000) += board-devkit8000.o +obj-$(CONFIG_MACH_OMAP_LDP) += board-ldp.o +obj-$(CONFIG_MACH_OMAP3530_LV_SOM) += board-omap3logic.o +obj-$(CONFIG_MACH_OMAP3_TORPEDO) += board-omap3logic.o +obj-$(CONFIG_MACH_OVERO) += board-overo.o +obj-$(CONFIG_MACH_OMAP3EVM) += board-omap3evm.o +obj-$(CONFIG_MACH_OMAP3_PANDORA) += board-omap3pandora.o +obj-$(CONFIG_MACH_OMAP_3430SDP) += board-3430sdp.o +obj-$(CONFIG_MACH_NOKIA_N8X0) += board-n8x0.o +obj-$(CONFIG_MACH_NOKIA_RM680) += board-rm680.o sdram-nokia.o +obj-$(CONFIG_MACH_NOKIA_RX51) += board-rx51.o sdram-nokia.o +obj-$(CONFIG_MACH_NOKIA_RX51) += board-rx51-peripherals.o +obj-$(CONFIG_MACH_NOKIA_RX51) += board-rx51-video.o +obj-$(CONFIG_MACH_OMAP_ZOOM2) += board-zoom.o board-zoom-peripherals.o +obj-$(CONFIG_MACH_OMAP_ZOOM2) += board-zoom-display.o +obj-$(CONFIG_MACH_OMAP_ZOOM2) += board-zoom-debugboard.o +obj-$(CONFIG_MACH_OMAP_ZOOM3) += board-zoom.o board-zoom-peripherals.o +obj-$(CONFIG_MACH_OMAP_ZOOM3) += board-zoom-display.o +obj-$(CONFIG_MACH_OMAP_ZOOM3) += board-zoom-debugboard.o +obj-$(CONFIG_MACH_OMAP_3630SDP) += board-3630sdp.o +obj-$(CONFIG_MACH_OMAP_3630SDP) += board-zoom-peripherals.o +obj-$(CONFIG_MACH_OMAP_3630SDP) += board-zoom-display.o +obj-$(CONFIG_MACH_CM_T35) += board-cm-t35.o +obj-$(CONFIG_MACH_CM_T3517) += board-cm-t3517.o +obj-$(CONFIG_MACH_IGEP0020) += board-igep0020.o +obj-$(CONFIG_MACH_TOUCHBOOK) += board-omap3touchbook.o +obj-$(CONFIG_MACH_OMAP_4430SDP) += board-4430sdp.o +obj-$(CONFIG_MACH_OMAP4_PANDA) += board-omap4panda.o + +obj-$(CONFIG_MACH_OMAP3517EVM) += board-am3517evm.o + +obj-$(CONFIG_MACH_CRANEBOARD) += board-am3517crane.o + +obj-$(CONFIG_MACH_SBC3530) += board-omap3stalker.o +obj-$(CONFIG_MACH_TI8168EVM) += board-ti8168evm.o +obj-$(CONFIG_MACH_TI8148EVM) += board-ti8168evm.o + +# Platform specific device init code + +omap-flash-$(CONFIG_MTD_NAND_OMAP2) := board-flash.o +omap-flash-$(CONFIG_MTD_ONENAND_OMAP2) := board-flash.o +obj-y += $(omap-flash-y) $(omap-flash-m) + +omap-hsmmc-$(CONFIG_MMC_OMAP_HS) := hsmmc.o +obj-y += $(omap-hsmmc-m) $(omap-hsmmc-y) + +obj-y += usb-musb.o +obj-y += omap_phy_internal.o + +obj-$(CONFIG_MACH_OMAP2_TUSB6010) += usb-tusb6010.o +obj-y += usb-host.o + +onenand-$(CONFIG_MTD_ONENAND_OMAP2) := gpmc-onenand.o +obj-y += $(onenand-m) $(onenand-y) + +nand-$(CONFIG_MTD_NAND_OMAP2) := gpmc-nand.o +obj-y += $(nand-m) $(nand-y) + +smc91x-$(CONFIG_SMC91X) := gpmc-smc91x.o +obj-y += $(smc91x-m) $(smc91x-y) + +smsc911x-$(CONFIG_SMSC911X) := gpmc-smsc911x.o +obj-y += $(smsc911x-m) $(smsc911x-y) +ifneq ($(CONFIG_HWSPINLOCK_OMAP),) +obj-y += hwspinlock.o +endif + +emac-$(CONFIG_TI_DAVINCI_EMAC) := am35xx-emac.o +obj-y += $(emac-m) $(emac-y) + +obj-y += common-board-devices.o twl-common.o dss-common.o diff --git a/arch/arm/mach-omap2/Makefile.boot b/arch/arm/mach-omap2/Makefile.boot new file mode 100644 index 00000000..b03e562a --- /dev/null +++ b/arch/arm/mach-omap2/Makefile.boot @@ -0,0 +1,3 @@ + zreladdr-y += 0x80008000 +params_phys-y := 0x80000100 +initrd_phys-y := 0x80800000 diff --git a/arch/arm/mach-omap2/am33xx-restart.c b/arch/arm/mach-omap2/am33xx-restart.c new file mode 100644 index 00000000..88e4fa8a --- /dev/null +++ b/arch/arm/mach-omap2/am33xx-restart.c @@ -0,0 +1,34 @@ +/* + * am33xx-restart.c - Code common to all AM33xx machines. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. + */ +#include + +#include "common.h" +#include "prm-regbits-33xx.h" +#include "prm33xx.h" + +/** + * am3xx_restart - trigger a software restart of the SoC + * @mode: the "reboot mode", see arch/arm/kernel/{setup,process}.c + * @cmd: passed from the userspace program rebooting the system (if provided) + * + * Resets the SoC. For @cmd, see the 'reboot' syscall in + * kernel/sys.c. No return value. + */ +void am33xx_restart(char mode, const char *cmd) +{ + /* TODO: Handle mode and cmd if necessary */ + + am33xx_prm_rmw_reg_bits(AM33XX_GLOBAL_WARM_SW_RST_MASK, + AM33XX_GLOBAL_WARM_SW_RST_MASK, + AM33XX_PRM_DEVICE_MOD, + AM33XX_PRM_RSTCTRL_OFFSET); + + /* OCP barrier */ + (void)am33xx_prm_read_reg(AM33XX_PRM_DEVICE_MOD, + AM33XX_PRM_RSTCTRL_OFFSET); +} diff --git a/arch/arm/mach-omap2/am33xx.h b/arch/arm/mach-omap2/am33xx.h new file mode 100644 index 00000000..43296c1a --- /dev/null +++ b/arch/arm/mach-omap2/am33xx.h @@ -0,0 +1,26 @@ +/* + * This file contains the address info for various AM33XX modules. + * + * Copyright (C) 2011 Texas Instruments, Inc. - http://www.ti.com/ + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation version 2. + * + * This program is distributed "as is" WITHOUT ANY WARRANTY of any + * kind, whether express or implied; without even the implied warranty + * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +#ifndef __ASM_ARCH_AM33XX_H +#define __ASM_ARCH_AM33XX_H + +#define L4_SLOW_AM33XX_BASE 0x48000000 + +#define AM33XX_SCM_BASE 0x44E10000 +#define AM33XX_CTRL_BASE AM33XX_SCM_BASE +#define AM33XX_PRCM_BASE 0x44E00000 +#define AM33XX_TAP_BASE (AM33XX_CTRL_BASE + 0x3FC) + +#endif /* __ASM_ARCH_AM33XX_H */ diff --git a/arch/arm/mach-omap2/am35xx-emac.c b/arch/arm/mach-omap2/am35xx-emac.c new file mode 100644 index 00000000..25b79a29 --- /dev/null +++ b/arch/arm/mach-omap2/am35xx-emac.c @@ -0,0 +1,115 @@ +/* + * Copyright (C) 2011 Ilya Yanok, Emcraft Systems + * + * Based on mach-omap2/board-am3517evm.c + * Copyright (C) 2009 Texas Instruments Incorporated + * Author: Ranjith Lohithakshan + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 + * published by the Free Software Foundation. + * + * This program is distributed "as is" WITHOUT ANY WARRANTY of any kind, + * whether express or implied; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + */ + +#include +#include +#include +#include "omap_device.h" +#include "am35xx.h" +#include "control.h" +#include "am35xx-emac.h" + +static void am35xx_enable_emac_int(void) +{ + u32 v; + + v = omap_ctrl_readl(AM35XX_CONTROL_LVL_INTR_CLEAR); + v |= (AM35XX_CPGMAC_C0_RX_PULSE_CLR | AM35XX_CPGMAC_C0_TX_PULSE_CLR | + AM35XX_CPGMAC_C0_MISC_PULSE_CLR | AM35XX_CPGMAC_C0_RX_THRESH_CLR); + omap_ctrl_writel(v, AM35XX_CONTROL_LVL_INTR_CLEAR); + omap_ctrl_readl(AM35XX_CONTROL_LVL_INTR_CLEAR); /* OCP barrier */ +} + +static void am35xx_disable_emac_int(void) +{ + u32 v; + + v = omap_ctrl_readl(AM35XX_CONTROL_LVL_INTR_CLEAR); + v |= (AM35XX_CPGMAC_C0_RX_PULSE_CLR | AM35XX_CPGMAC_C0_TX_PULSE_CLR); + omap_ctrl_writel(v, AM35XX_CONTROL_LVL_INTR_CLEAR); + omap_ctrl_readl(AM35XX_CONTROL_LVL_INTR_CLEAR); /* OCP barrier */ +} + +static struct emac_platform_data am35xx_emac_pdata = { + .ctrl_reg_offset = AM35XX_EMAC_CNTRL_OFFSET, + .ctrl_mod_reg_offset = AM35XX_EMAC_CNTRL_MOD_OFFSET, + .ctrl_ram_offset = AM35XX_EMAC_CNTRL_RAM_OFFSET, + .ctrl_ram_size = AM35XX_EMAC_CNTRL_RAM_SIZE, + .hw_ram_addr = AM35XX_EMAC_HW_RAM_ADDR, + .version = EMAC_VERSION_2, + .interrupt_enable = am35xx_enable_emac_int, + .interrupt_disable = am35xx_disable_emac_int, +}; + +static struct mdio_platform_data am35xx_mdio_pdata; + +static int __init omap_davinci_emac_dev_init(struct omap_hwmod *oh, + void *pdata, int pdata_len) +{ + struct platform_device *pdev; + + pdev = omap_device_build(oh->class->name, 0, oh, pdata, pdata_len); + if (IS_ERR(pdev)) { + WARN(1, "Can't build omap_device for %s:%s.\n", + oh->class->name, oh->name); + return PTR_ERR(pdev); + } + + return 0; +} + +void __init am35xx_emac_init(unsigned long mdio_bus_freq, u8 rmii_en) +{ + struct omap_hwmod *oh; + u32 v; + int ret; + + oh = omap_hwmod_lookup("davinci_mdio"); + if (!oh) { + pr_err("Could not find davinci_mdio hwmod\n"); + return; + } + + am35xx_mdio_pdata.bus_freq = mdio_bus_freq; + + ret = omap_davinci_emac_dev_init(oh, &am35xx_mdio_pdata, + sizeof(am35xx_mdio_pdata)); + if (ret) { + pr_err("Could not build davinci_mdio hwmod device\n"); + return; + } + + oh = omap_hwmod_lookup("davinci_emac"); + if (!oh) { + pr_err("Could not find davinci_emac hwmod\n"); + return; + } + + am35xx_emac_pdata.rmii_en = rmii_en; + + ret = omap_davinci_emac_dev_init(oh, &am35xx_emac_pdata, + sizeof(am35xx_emac_pdata)); + if (ret) { + pr_err("Could not build davinci_emac hwmod device\n"); + return; + } + + v = omap_ctrl_readl(AM35XX_CONTROL_IP_SW_RESET); + v &= ~AM35XX_CPGMACSS_SW_RST; + omap_ctrl_writel(v, AM35XX_CONTROL_IP_SW_RESET); + omap_ctrl_readl(AM35XX_CONTROL_IP_SW_RESET); /* OCP barrier */ +} diff --git a/arch/arm/mach-omap2/am35xx-emac.h b/arch/arm/mach-omap2/am35xx-emac.h new file mode 100644 index 00000000..15c6f9ce --- /dev/null +++ b/arch/arm/mach-omap2/am35xx-emac.h @@ -0,0 +1,15 @@ +/* + * Copyright (C) 2011 Ilya Yanok, Emcraft Systems + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. + */ + +#define AM35XX_DEFAULT_MDIO_FREQUENCY 1000000 + +#if defined(CONFIG_TI_DAVINCI_EMAC) || defined(CONFIG_TI_DAVINCI_EMAC_MODULE) +void am35xx_emac_init(unsigned long mdio_bus_freq, u8 rmii_en); +#else +static inline void am35xx_emac_init(unsigned long mdio_bus_freq, u8 rmii_en) {} +#endif diff --git a/arch/arm/mach-omap2/am35xx.h b/arch/arm/mach-omap2/am35xx.h new file mode 100644 index 00000000..95594495 --- /dev/null +++ b/arch/arm/mach-omap2/am35xx.h @@ -0,0 +1,46 @@ +/*: + * Address mappings and base address for AM35XX specific interconnects + * and peripherals. + * + * Copyright (C) 2009 Texas Instruments + * + * Author: Sriramakrishnan + * Vaibhav Hiremath + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. + */ +#ifndef __ASM_ARCH_AM35XX_H +#define __ASM_ARCH_AM35XX_H + +/* + * Base addresses + * Note: OMAP3430 IVA2 memory space is being used for AM35xx IPSS modules + */ +#define AM35XX_IPSS_EMAC_BASE 0x5C000000 +#define AM35XX_IPSS_USBOTGSS_BASE 0x5C040000 +#define AM35XX_IPSS_HECC_BASE 0x5C050000 +#define AM35XX_IPSS_VPFE_BASE 0x5C060000 + + +/* HECC module specifc offset definitions */ +#define AM35XX_HECC_SCC_HECC_OFFSET (0x0) +#define AM35XX_HECC_SCC_RAM_OFFSET (0x3000) +#define AM35XX_HECC_RAM_OFFSET (0x3000) +#define AM35XX_HECC_MBOX_OFFSET (0x2000) +#define AM35XX_HECC_INT_LINE (0x0) +#define AM35XX_HECC_VERSION (0x1) + +#define AM35XX_EMAC_CNTRL_OFFSET (0x10000) +#define AM35XX_EMAC_CNTRL_MOD_OFFSET (0x0) +#define AM35XX_EMAC_CNTRL_RAM_OFFSET (0x20000) +#define AM35XX_EMAC_MDIO_OFFSET (0x30000) +#define AM35XX_IPSS_MDIO_BASE (AM35XX_IPSS_EMAC_BASE + \ + AM35XX_EMAC_MDIO_OFFSET) +#define AM35XX_EMAC_CNTRL_RAM_SIZE (0x2000) +#define AM35XX_EMAC_RAM_ADDR (AM3517_EMAC_BASE + \ + AM3517_EMAC_CNTRL_RAM_OFFSET) +#define AM35XX_EMAC_HW_RAM_ADDR (0x01E20000) + +#endif /* __ASM_ARCH_AM35XX_H */ diff --git a/arch/arm/mach-omap2/board-2430sdp.c b/arch/arm/mach-omap2/board-2430sdp.c new file mode 100644 index 00000000..244d8a5a --- /dev/null +++ b/arch/arm/mach-omap2/board-2430sdp.c @@ -0,0 +1,260 @@ +/* + * linux/arch/arm/mach-omap2/board-2430sdp.c + * + * Copyright (C) 2006 Texas Instruments + * + * Modified from mach-omap2/board-generic.c + * + * Initial Code : Based on a patch from Komal Shah and Richard Woodruff + * Updated the Code for 2430 SDP : Syed Mohammed Khasim + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include + +#include "common.h" +#include "gpmc.h" +#include "gpmc-smc91x.h" + +#include