diff options
| -rw-r--r-- | arch/arm/mach-omap2/Makefile | 2 | ||||
| -rw-r--r-- | arch/arm/mach-omap2/io.c | 8 | ||||
| -rw-r--r-- | arch/arm/mach-omap2/omap_hwmod.c | 2 | ||||
| -rw-r--r-- | arch/arm/mach-omap2/omap_hwmod.h | 1 | ||||
| -rw-r--r-- | arch/arm/mach-omap2/omap_hwmod_81xx_data.c | 1136 |
5 files changed, 1146 insertions, 3 deletions
diff --git a/arch/arm/mach-omap2/Makefile b/arch/arm/mach-omap2/Makefile index 352873c7a6a6..08ed2fe6366c 100644 --- a/arch/arm/mach-omap2/Makefile +++ b/arch/arm/mach-omap2/Makefile | |||
| @@ -121,6 +121,7 @@ obj-$(CONFIG_ARCH_OMAP4) += $(omap-prcm-4-5-common) | |||
| 121 | obj-$(CONFIG_SOC_OMAP5) += $(omap-prcm-4-5-common) | 121 | obj-$(CONFIG_SOC_OMAP5) += $(omap-prcm-4-5-common) |
| 122 | obj-$(CONFIG_SOC_DRA7XX) += $(omap-prcm-4-5-common) | 122 | obj-$(CONFIG_SOC_DRA7XX) += $(omap-prcm-4-5-common) |
| 123 | am33xx-43xx-prcm-common += prm33xx.o cm33xx.o | 123 | am33xx-43xx-prcm-common += prm33xx.o cm33xx.o |
| 124 | obj-$(CONFIG_SOC_TI81XX) += $(am33xx-43xx-prcm-common) | ||
| 124 | obj-$(CONFIG_SOC_AM33XX) += $(am33xx-43xx-prcm-common) | 125 | obj-$(CONFIG_SOC_AM33XX) += $(am33xx-43xx-prcm-common) |
| 125 | obj-$(CONFIG_SOC_AM43XX) += $(omap-prcm-4-5-common) \ | 126 | obj-$(CONFIG_SOC_AM43XX) += $(omap-prcm-4-5-common) \ |
| 126 | $(am33xx-43xx-prcm-common) | 127 | $(am33xx-43xx-prcm-common) |
| @@ -226,6 +227,7 @@ obj-$(CONFIG_SOC_AM33XX) += omap_hwmod_33xx_43xx_ipblock_data.o | |||
| 226 | obj-$(CONFIG_SOC_AM43XX) += omap_hwmod_43xx_data.o | 227 | obj-$(CONFIG_SOC_AM43XX) += omap_hwmod_43xx_data.o |
| 227 | obj-$(CONFIG_SOC_AM43XX) += omap_hwmod_33xx_43xx_interconnect_data.o | 228 | obj-$(CONFIG_SOC_AM43XX) += omap_hwmod_33xx_43xx_interconnect_data.o |
| 228 | obj-$(CONFIG_SOC_AM43XX) += omap_hwmod_33xx_43xx_ipblock_data.o | 229 | obj-$(CONFIG_SOC_AM43XX) += omap_hwmod_33xx_43xx_ipblock_data.o |
| 230 | obj-$(CONFIG_SOC_TI81XX) += omap_hwmod_81xx_data.o | ||
| 229 | obj-$(CONFIG_ARCH_OMAP4) += omap_hwmod_44xx_data.o | 231 | obj-$(CONFIG_ARCH_OMAP4) += omap_hwmod_44xx_data.o |
| 230 | obj-$(CONFIG_SOC_OMAP5) += omap_hwmod_54xx_data.o | 232 | obj-$(CONFIG_SOC_OMAP5) += omap_hwmod_54xx_data.o |
| 231 | obj-$(CONFIG_SOC_DRA7XX) += omap_hwmod_7xx_data.o | 233 | obj-$(CONFIG_SOC_DRA7XX) += omap_hwmod_7xx_data.o |
diff --git a/arch/arm/mach-omap2/io.c b/arch/arm/mach-omap2/io.c index ed3e6e8f91df..e60780f05374 100644 --- a/arch/arm/mach-omap2/io.c +++ b/arch/arm/mach-omap2/io.c | |||
| @@ -545,10 +545,12 @@ void __init ti814x_init_early(void) | |||
| 545 | omap2_set_globals_cm(OMAP2_L4_IO_ADDRESS(TI81XX_PRCM_BASE), NULL); | 545 | omap2_set_globals_cm(OMAP2_L4_IO_ADDRESS(TI81XX_PRCM_BASE), NULL); |
| 546 | omap3xxx_check_revision(); | 546 | omap3xxx_check_revision(); |
| 547 | ti81xx_check_features(); | 547 | ti81xx_check_features(); |
| 548 | am33xx_prm_init(); | ||
| 549 | am33xx_cm_init(); | ||
| 548 | omap3xxx_voltagedomains_init(); | 550 | omap3xxx_voltagedomains_init(); |
| 549 | omap3xxx_powerdomains_init(); | 551 | omap3xxx_powerdomains_init(); |
| 550 | ti81xx_clockdomains_init(); | 552 | ti81xx_clockdomains_init(); |
| 551 | omap3xxx_hwmod_init(); | 553 | ti81xx_hwmod_init(); |
| 552 | omap_hwmod_init_postsetup(); | 554 | omap_hwmod_init_postsetup(); |
| 553 | if (of_have_populated_dt()) | 555 | if (of_have_populated_dt()) |
| 554 | omap_clk_soc_init = ti81xx_dt_clk_init; | 556 | omap_clk_soc_init = ti81xx_dt_clk_init; |
| @@ -564,10 +566,12 @@ void __init ti816x_init_early(void) | |||
| 564 | omap2_set_globals_cm(OMAP2_L4_IO_ADDRESS(TI81XX_PRCM_BASE), NULL); | 566 | omap2_set_globals_cm(OMAP2_L4_IO_ADDRESS(TI81XX_PRCM_BASE), NULL); |
| 565 | omap3xxx_check_revision(); | 567 | omap3xxx_check_revision(); |
| 566 | ti81xx_check_features(); | 568 | ti81xx_check_features(); |
| 569 | am33xx_prm_init(); | ||
| 570 | am33xx_cm_init(); | ||
| 567 | omap3xxx_voltagedomains_init(); | 571 | omap3xxx_voltagedomains_init(); |
| 568 | omap3xxx_powerdomains_init(); | 572 | omap3xxx_powerdomains_init(); |
| 569 | ti81xx_clockdomains_init(); | 573 | ti81xx_clockdomains_init(); |
| 570 | omap3xxx_hwmod_init(); | 574 | ti81xx_hwmod_init(); |
| 571 | omap_hwmod_init_postsetup(); | 575 | omap_hwmod_init_postsetup(); |
| 572 | if (of_have_populated_dt()) | 576 | if (of_have_populated_dt()) |
| 573 | omap_clk_soc_init = ti81xx_dt_clk_init; | 577 | omap_clk_soc_init = ti81xx_dt_clk_init; |
diff --git a/arch/arm/mach-omap2/omap_hwmod.c b/arch/arm/mach-omap2/omap_hwmod.c index cbb908dc5cf0..d7e6d5c8d171 100644 --- a/arch/arm/mach-omap2/omap_hwmod.c +++ b/arch/arm/mach-omap2/omap_hwmod.c | |||
| @@ -4142,7 +4142,7 @@ void __init omap_hwmod_init(void) | |||
| 4142 | soc_ops.deassert_hardreset = _omap4_deassert_hardreset; | 4142 | soc_ops.deassert_hardreset = _omap4_deassert_hardreset; |
| 4143 | soc_ops.is_hardreset_asserted = _omap4_is_hardreset_asserted; | 4143 | soc_ops.is_hardreset_asserted = _omap4_is_hardreset_asserted; |
| 4144 | soc_ops.init_clkdm = _init_clkdm; | 4144 | soc_ops.init_clkdm = _init_clkdm; |
| 4145 | } else if (soc_is_am33xx()) { | 4145 | } else if (cpu_is_ti816x() || soc_is_am33xx()) { |
| 4146 | soc_ops.enable_module = _omap4_enable_module; | 4146 | soc_ops.enable_module = _omap4_enable_module; |
| 4147 | soc_ops.disable_module = _omap4_disable_module; | 4147 | soc_ops.disable_module = _omap4_disable_module; |
| 4148 | soc_ops.wait_target_ready = _omap4_wait_target_ready; | 4148 | soc_ops.wait_target_ready = _omap4_wait_target_ready; |
diff --git a/arch/arm/mach-omap2/omap_hwmod.h b/arch/arm/mach-omap2/omap_hwmod.h index 35ca6efbec31..4b070b42a15c 100644 --- a/arch/arm/mach-omap2/omap_hwmod.h +++ b/arch/arm/mach-omap2/omap_hwmod.h | |||
| @@ -763,6 +763,7 @@ extern int omap3xxx_hwmod_init(void); | |||
| 763 | extern int omap44xx_hwmod_init(void); | 763 | extern int omap44xx_hwmod_init(void); |
| 764 | extern int omap54xx_hwmod_init(void); | 764 | extern int omap54xx_hwmod_init(void); |
| 765 | extern int am33xx_hwmod_init(void); | 765 | extern int am33xx_hwmod_init(void); |
| 766 | extern int ti81xx_hwmod_init(void); | ||
| 766 | extern int dra7xx_hwmod_init(void); | 767 | extern int dra7xx_hwmod_init(void); |
| 767 | int am43xx_hwmod_init(void); | 768 | int am43xx_hwmod_init(void); |
| 768 | 769 | ||
diff --git a/arch/arm/mach-omap2/omap_hwmod_81xx_data.c b/arch/arm/mach-omap2/omap_hwmod_81xx_data.c new file mode 100644 index 000000000000..cab1eb61ac96 --- /dev/null +++ b/arch/arm/mach-omap2/omap_hwmod_81xx_data.c | |||
| @@ -0,0 +1,1136 @@ | |||
| 1 | /* | ||
| 2 | * DM81xx hwmod data. | ||
| 3 | * | ||
| 4 | * Copyright (C) 2010 Texas Instruments, Inc. - http://www.ti.com/ | ||
| 5 | * Copyright (C) 2013 SKTB SKiT, http://www.skitlab.ru/ | ||
| 6 | * | ||
| 7 | * This program is free software; you can redistribute it and/or | ||
| 8 | * modify it under the terms of the GNU General Public License as | ||
| 9 | * published by the Free Software Foundation version 2. | ||
| 10 | * | ||
| 11 | * This program is distributed "as is" WITHOUT ANY WARRANTY of any | ||
| 12 | * kind, whether express or implied; without even the implied warranty | ||
| 13 | * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
| 14 | * GNU General Public License for more details. | ||
| 15 | * | ||
| 16 | */ | ||
| 17 | |||
| 18 | #include <linux/platform_data/gpio-omap.h> | ||
| 19 | #include <linux/platform_data/hsmmc-omap.h> | ||
| 20 | #include <linux/platform_data/spi-omap2-mcspi.h> | ||
| 21 | #include <plat/dmtimer.h> | ||
| 22 | |||
| 23 | #include "omap_hwmod_common_data.h" | ||
| 24 | #include "cm81xx.h" | ||
| 25 | #include "ti81xx.h" | ||
| 26 | #include "wd_timer.h" | ||
| 27 | |||
| 28 | /* | ||
| 29 | * DM816X hardware modules integration data | ||
| 30 | * | ||
| 31 | * Note: This is incomplete and at present, not generated from h/w database. | ||
| 32 | */ | ||
| 33 | |||
| 34 | /* | ||
| 35 | * The alwon .clkctrl_offs field is offset from the CM_ALWON, that's | ||
| 36 | * TRM 18.7.17 CM_ALWON device register values minus 0x1400. | ||
| 37 | */ | ||
| 38 | #define DM816X_DM_ALWON_BASE 0x1400 | ||
| 39 | #define DM816X_CM_ALWON_MCASP0_CLKCTRL (0x1540 - DM816X_DM_ALWON_BASE) | ||
| 40 | #define DM816X_CM_ALWON_MCASP1_CLKCTRL (0x1544 - DM816X_DM_ALWON_BASE) | ||
| 41 | #define DM816X_CM_ALWON_MCASP2_CLKCTRL (0x1548 - DM816X_DM_ALWON_BASE) | ||
| 42 | #define DM816X_CM_ALWON_MCBSP_CLKCTRL (0x154c - DM816X_DM_ALWON_BASE) | ||
| 43 | #define DM816X_CM_ALWON_UART_0_CLKCTRL (0x1550 - DM816X_DM_ALWON_BASE) | ||
| 44 | #define DM816X_CM_ALWON_UART_1_CLKCTRL (0x1554 - DM816X_DM_ALWON_BASE) | ||
| 45 | #define DM816X_CM_ALWON_UART_2_CLKCTRL (0x1558 - DM816X_DM_ALWON_BASE) | ||
| 46 | #define DM816X_CM_ALWON_GPIO_0_CLKCTRL (0x155c - DM816X_DM_ALWON_BASE) | ||
| 47 | #define DM816X_CM_ALWON_GPIO_1_CLKCTRL (0x1560 - DM816X_DM_ALWON_BASE) | ||
| 48 | #define DM816X_CM_ALWON_I2C_0_CLKCTRL (0x1564 - DM816X_DM_ALWON_BASE) | ||
| 49 | #define DM816X_CM_ALWON_I2C_1_CLKCTRL (0x1568 - DM816X_DM_ALWON_BASE) | ||
| 50 | #define DM816X_CM_ALWON_TIMER_1_CLKCTRL (0x1570 - DM816X_DM_ALWON_BASE) | ||
| 51 | #define DM816X_CM_ALWON_TIMER_2_CLKCTRL (0x1574 - DM816X_DM_ALWON_BASE) | ||
| 52 | #define DM816X_CM_ALWON_TIMER_3_CLKCTRL (0x1578 - DM816X_DM_ALWON_BASE) | ||
| 53 | #define DM816X_CM_ALWON_TIMER_4_CLKCTRL (0x157c - DM816X_DM_ALWON_BASE) | ||
| 54 | #define DM816X_CM_ALWON_TIMER_5_CLKCTRL (0x1580 - DM816X_DM_ALWON_BASE) | ||
| 55 | #define DM816X_CM_ALWON_TIMER_6_CLKCTRL (0x1584 - DM816X_DM_ALWON_BASE) | ||
| 56 | #define DM816X_CM_ALWON_TIMER_7_CLKCTRL (0x1588 - DM816X_DM_ALWON_BASE) | ||
| 57 | #define DM816X_CM_ALWON_WDTIMER_CLKCTRL (0x158c - DM816X_DM_ALWON_BASE) | ||
| 58 | #define DM816X_CM_ALWON_SPI_CLKCTRL (0x1590 - DM816X_DM_ALWON_BASE) | ||
| 59 | #define DM816X_CM_ALWON_MAILBOX_CLKCTRL (0x1594 - DM816X_DM_ALWON_BASE) | ||
| 60 | #define DM816X_CM_ALWON_SPINBOX_CLKCTRL (0x1598 - DM816X_DM_ALWON_BASE) | ||
| 61 | #define DM816X_CM_ALWON_MMUDATA_CLKCTRL (0x159c - DM816X_DM_ALWON_BASE) | ||
| 62 | #define DM816X_CM_ALWON_MMUCFG_CLKCTRL (0x15a8 - DM816X_DM_ALWON_BASE) | ||
| 63 | #define DM816X_CM_ALWON_SDIO_CLKCTRL (0x15b0 - DM816X_DM_ALWON_BASE) | ||
| 64 | #define DM816X_CM_ALWON_OCMC_0_CLKCTRL (0x15b4 - DM816X_DM_ALWON_BASE) | ||
| 65 | #define DM816X_CM_ALWON_OCMC_1_CLKCTRL (0x15b8 - DM816X_DM_ALWON_BASE) | ||
| 66 | #define DM816X_CM_ALWON_CONTRL_CLKCTRL (0x15c4 - DM816X_DM_ALWON_BASE) | ||
| 67 | #define DM816X_CM_ALWON_GPMC_CLKCTRL (0x15d0 - DM816X_DM_ALWON_BASE) | ||
| 68 | #define DM816X_CM_ALWON_ETHERNET_0_CLKCTRL (0x15d4 - DM816X_DM_ALWON_BASE) | ||
| 69 | #define DM816X_CM_ALWON_ETHERNET_1_CLKCTRL (0x15d8 - DM816X_DM_ALWON_BASE) | ||
| 70 | #define DM816X_CM_ALWON_MPU_CLKCTRL (0x15dc - DM816X_DM_ALWON_BASE) | ||
| 71 | #define DM816X_CM_ALWON_L3_CLKCTRL (0x15e4 - DM816X_DM_ALWON_BASE) | ||
| 72 | #define DM816X_CM_ALWON_L4HS_CLKCTRL (0x15e8 - DM816X_DM_ALWON_BASE) | ||
| 73 | #define DM816X_CM_ALWON_L4LS_CLKCTRL (0x15ec - DM816X_DM_ALWON_BASE) | ||
| 74 | #define DM816X_CM_ALWON_RTC_CLKCTRL (0x15f0 - DM816X_DM_ALWON_BASE) | ||
| 75 | #define DM816X_CM_ALWON_TPCC_CLKCTRL (0x15f4 - DM816X_DM_ALWON_BASE) | ||
| 76 | #define DM816X_CM_ALWON_TPTC0_CLKCTRL (0x15f8 - DM816X_DM_ALWON_BASE) | ||
| 77 | #define DM816X_CM_ALWON_TPTC1_CLKCTRL (0x15fc - DM816X_DM_ALWON_BASE) | ||
| 78 | #define DM816X_CM_ALWON_TPTC2_CLKCTRL (0x1600 - DM816X_DM_ALWON_BASE) | ||
| 79 | #define DM816X_CM_ALWON_TPTC3_CLKCTRL (0x1604 - DM816X_DM_ALWON_BASE) | ||
| 80 | #define DM816X_CM_ALWON_SR_0_CLKCTRL (0x1608 - DM816X_DM_ALWON_BASE) | ||
| 81 | #define DM816X_CM_ALWON_SR_1_CLKCTRL (0x160c - DM816X_DM_ALWON_BASE) | ||
| 82 | |||
| 83 | /* | ||
| 84 | * The default .clkctrl_offs field is offset from CM_DEFAULT, that's | ||
| 85 | * TRM 18.7.6 CM_DEFAULT device register values minus 0x500 | ||
| 86 | */ | ||
| 87 | #define DM816X_CM_DEFAULT_OFFSET 0x500 | ||
| 88 | #define DM816X_CM_DEFAULT_USB_CLKCTRL (0x558 - DM816X_CM_DEFAULT_OFFSET) | ||
| 89 | |||
