diff options
author | Benoit Cousson <b-cousson@ti.com> | 2010-08-18 02:52:52 -0400 |
---|---|---|
committer | Kevin Hilman <khilman@deeprootsystems.com> | 2010-12-22 17:31:49 -0500 |
commit | fb200cfb2330b959eabc94e2f2c15717ce8466af (patch) | |
tree | 245e7972f1bb8f07861f2b3fdeffb3504a797b44 | |
parent | 1376ee1d191b32d0be6d2956f1a6f3dd63251e2e (diff) |
OMAP4: hwmod: Add inital data for smartreflex modules.
This patch adds the hwmod details for OMAP4 smartreflex modules.
Signed-off-by: Benoit Cousson <b-cousson@ti.com>
Signed-off-by: Kevin Hilman <khilman@deeprootsystems.com>
-rw-r--r-- | arch/arm/mach-omap2/omap_hwmod_44xx_data.c | 168 |
1 files changed, 168 insertions, 0 deletions
diff --git a/arch/arm/mach-omap2/omap_hwmod_44xx_data.c b/arch/arm/mach-omap2/omap_hwmod_44xx_data.c index c9c98ee81191..e2ad1b6b9c0a 100644 --- a/arch/arm/mach-omap2/omap_hwmod_44xx_data.c +++ b/arch/arm/mach-omap2/omap_hwmod_44xx_data.c | |||
@@ -1842,6 +1842,169 @@ static struct omap_hwmod omap44xx_dma_system_hwmod = { | |||
1842 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP4430), | 1842 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP4430), |
1843 | }; | 1843 | }; |
1844 | 1844 | ||
1845 | /* | ||
1846 | * 'smartreflex' class | ||
1847 | * smartreflex module (monitor silicon performance and outputs a measure of | ||
1848 | * performance error) | ||
1849 | */ | ||
1850 | |||
1851 | /* The IP is not compliant to type1 / type2 scheme */ | ||
1852 | static struct omap_hwmod_sysc_fields omap_hwmod_sysc_type_smartreflex = { | ||
1853 | .sidle_shift = 24, | ||
1854 | .enwkup_shift = 26, | ||
1855 | }; | ||
1856 | |||
1857 | static struct omap_hwmod_class_sysconfig omap44xx_smartreflex_sysc = { | ||
1858 | .sysc_offs = 0x0038, | ||
1859 | .sysc_flags = (SYSC_HAS_ENAWAKEUP | SYSC_HAS_SIDLEMODE), | ||
1860 | .idlemodes = (SIDLE_FORCE | SIDLE_NO | SIDLE_SMART), | ||
1861 | .sysc_fields = &omap_hwmod_sysc_type_smartreflex, | ||
1862 | }; | ||
1863 | |||
1864 | static struct omap_hwmod_class omap44xx_smartreflex_hwmod_class = { | ||
1865 | .name = "smartreflex", | ||
1866 | .sysc = &omap44xx_smartreflex_sysc, | ||
1867 | .rev = 2, | ||
1868 | }; | ||
1869 | |||
1870 | /* smartreflex_core */ | ||
1871 | static struct omap_hwmod omap44xx_smartreflex_core_hwmod; | ||
1872 | static struct omap_hwmod_irq_info omap44xx_smartreflex_core_irqs[] = { | ||
1873 | { .irq = 19 + OMAP44XX_IRQ_GIC_START }, | ||
1874 | }; | ||
1875 | |||
1876 | static struct omap_hwmod_addr_space omap44xx_smartreflex_core_addrs[] = { | ||
1877 | { | ||
1878 | .pa_start = 0x4a0dd000, | ||
1879 | .pa_end = 0x4a0dd03f, | ||
1880 | .flags = ADDR_TYPE_RT | ||
1881 | }, | ||
1882 | }; | ||
1883 | |||
1884 | /* l4_cfg -> smartreflex_core */ | ||
1885 | static struct omap_hwmod_ocp_if omap44xx_l4_cfg__smartreflex_core = { | ||
1886 | .master = &omap44xx_l4_cfg_hwmod, | ||
1887 | .slave = &omap44xx_smartreflex_core_hwmod, | ||
1888 | .clk = "l4_div_ck", | ||
1889 | .addr = omap44xx_smartreflex_core_addrs, | ||
1890 | .addr_cnt = ARRAY_SIZE(omap44xx_smartreflex_core_addrs), | ||
1891 | .user = OCP_USER_MPU | OCP_USER_SDMA, | ||
1892 | }; | ||
1893 | |||
1894 | /* smartreflex_core slave ports */ | ||
1895 | static struct omap_hwmod_ocp_if *omap44xx_smartreflex_core_slaves[] = { | ||
1896 | &omap44xx_l4_cfg__smartreflex_core, | ||
1897 | }; | ||
1898 | |||
1899 | static struct omap_hwmod omap44xx_smartreflex_core_hwmod = { | ||
1900 | .name = "smartreflex_core", | ||
1901 | .class = &omap44xx_smartreflex_hwmod_class, | ||
1902 | .mpu_irqs = omap44xx_smartreflex_core_irqs, | ||
1903 | .mpu_irqs_cnt = ARRAY_SIZE(omap44xx_smartreflex_core_irqs), | ||
1904 | .main_clk = "smartreflex_core_fck", | ||
1905 | .vdd_name = "core", | ||
1906 | .prcm = { | ||
1907 | .omap4 = { | ||
1908 | .clkctrl_reg = OMAP4430_CM_ALWON_SR_CORE_CLKCTRL, | ||
1909 | }, | ||
1910 | }, | ||
1911 | .slaves = omap44xx_smartreflex_core_slaves, | ||
1912 | .slaves_cnt = ARRAY_SIZE(omap44xx_smartreflex_core_slaves), | ||
1913 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP4430), | ||
1914 | }; | ||
1915 | |||
1916 | /* smartreflex_iva */ | ||
1917 | static struct omap_hwmod omap44xx_smartreflex_iva_hwmod; | ||
1918 | static struct omap_hwmod_irq_info omap44xx_smartreflex_iva_irqs[] = { | ||
1919 | { .irq = 102 + OMAP44XX_IRQ_GIC_START }, | ||
1920 | }; | ||
1921 | |||
1922 | static struct omap_hwmod_addr_space omap44xx_smartreflex_iva_addrs[] = { | ||
1923 | { | ||
1924 | .pa_start = 0x4a0db000, | ||
1925 | .pa_end = 0x4a0db03f, | ||
1926 | .flags = ADDR_TYPE_RT | ||
1927 | }, | ||
1928 | }; | ||
1929 | |||
1930 | /* l4_cfg -> smartreflex_iva */ | ||
1931 | static struct omap_hwmod_ocp_if omap44xx_l4_cfg__smartreflex_iva = { | ||
1932 | .master = &omap44xx_l4_cfg_hwmod, | ||
1933 | .slave = &omap44xx_smartreflex_iva_hwmod, | ||
1934 | .clk = "l4_div_ck", | ||
1935 | .addr = omap44xx_smartreflex_iva_addrs, | ||
1936 | .addr_cnt = ARRAY_SIZE(omap44xx_smartreflex_iva_addrs), | ||
1937 | .user = OCP_USER_MPU | OCP_USER_SDMA, | ||
1938 | }; | ||
1939 | |||
1940 | /* smartreflex_iva slave ports */ | ||
1941 | static struct omap_hwmod_ocp_if *omap44xx_smartreflex_iva_slaves[] = { | ||
1942 | &omap44xx_l4_cfg__smartreflex_iva, | ||
1943 | }; | ||
1944 | |||
1945 | static struct omap_hwmod omap44xx_smartreflex_iva_hwmod = { | ||
1946 | .name = "smartreflex_iva", | ||
1947 | .class = &omap44xx_smartreflex_hwmod_class, | ||
1948 | .mpu_irqs = omap44xx_smartreflex_iva_irqs, | ||
1949 | .mpu_irqs_cnt = ARRAY_SIZE(omap44xx_smartreflex_iva_irqs), | ||
1950 | .main_clk = "smartreflex_iva_fck", | ||
1951 | .vdd_name = "iva", | ||
1952 | .prcm = { | ||
1953 | .omap4 = { | ||
1954 | .clkctrl_reg = OMAP4430_CM_ALWON_SR_IVA_CLKCTRL, | ||
1955 | }, | ||
1956 | }, | ||
1957 | .slaves = omap44xx_smartreflex_iva_slaves, | ||
1958 | .slaves_cnt = ARRAY_SIZE(omap44xx_smartreflex_iva_slaves), | ||
1959 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP4430), | ||
1960 | }; | ||
1961 | |||
1962 | /* smartreflex_mpu */ | ||
1963 | static struct omap_hwmod omap44xx_smartreflex_mpu_hwmod; | ||
1964 | static struct omap_hwmod_irq_info omap44xx_smartreflex_mpu_irqs[] = { | ||
1965 | { .irq = 18 + OMAP44XX_IRQ_GIC_START }, | ||
1966 | }; | ||
1967 | |||
1968 | static struct omap_hwmod_addr_space omap44xx_smartreflex_mpu_addrs[] = { | ||
1969 | { | ||
1970 | .pa_start = 0x4a0d9000, | ||
1971 | .pa_end = 0x4a0d903f, | ||
1972 | .flags = ADDR_TYPE_RT | ||
1973 | }, | ||
1974 | }; | ||
1975 | |||
1976 | /* l4_cfg -> smartreflex_mpu */ | ||
1977 | static struct omap_hwmod_ocp_if omap44xx_l4_cfg__smartreflex_mpu = { | ||
1978 | .master = &omap44xx_l4_cfg_hwmod, | ||
1979 | .slave = &omap44xx_smartreflex_mpu_hwmod, | ||
1980 | .clk = "l4_div_ck", | ||
1981 | .addr = omap44xx_smartreflex_mpu_addrs, | ||
1982 | .addr_cnt = ARRAY_SIZE(omap44xx_smartreflex_mpu_addrs), | ||
1983 | .user = OCP_USER_MPU | OCP_USER_SDMA, | ||
1984 | }; | ||
1985 | |||
1986 | /* smartreflex_mpu slave ports */ | ||
1987 | static struct omap_hwmod_ocp_if *omap44xx_smartreflex_mpu_slaves[] = { | ||
1988 | &omap44xx_l4_cfg__smartreflex_mpu, | ||
1989 | }; | ||
1990 | |||
1991 | static struct omap_hwmod omap44xx_smartreflex_mpu_hwmod = { | ||
1992 | .name = "smartreflex_mpu", | ||
1993 | .class = &omap44xx_smartreflex_hwmod_class, | ||
1994 | .mpu_irqs = omap44xx_smartreflex_mpu_irqs, | ||
1995 | .mpu_irqs_cnt = ARRAY_SIZE(omap44xx_smartreflex_mpu_irqs), | ||
1996 | .main_clk = "smartreflex_mpu_fck", | ||
1997 | .vdd_name = "mpu", | ||
1998 | .prcm = { | ||
1999 | .omap4 = { | ||
2000 | .clkctrl_reg = OMAP4430_CM_ALWON_SR_MPU_CLKCTRL, | ||
2001 | }, | ||
2002 | }, | ||
2003 | .slaves = omap44xx_smartreflex_mpu_slaves, | ||
2004 | .slaves_cnt = ARRAY_SIZE(omap44xx_smartreflex_mpu_slaves), | ||
2005 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP4430), | ||
2006 | }; | ||
2007 | |||
1845 | static __initdata struct omap_hwmod *omap44xx_hwmods[] = { | 2008 | static __initdata struct omap_hwmod *omap44xx_hwmods[] = { |
1846 | /* dmm class */ | 2009 | /* dmm class */ |
1847 | &omap44xx_dmm_hwmod, | 2010 | &omap44xx_dmm_hwmod, |
@@ -1903,6 +2066,11 @@ static __initdata struct omap_hwmod *omap44xx_hwmods[] = { | |||
1903 | &omap44xx_wd_timer2_hwmod, | 2066 | &omap44xx_wd_timer2_hwmod, |
1904 | &omap44xx_wd_timer3_hwmod, | 2067 | &omap44xx_wd_timer3_hwmod, |
1905 | 2068 | ||
2069 | /* smartreflex class */ | ||
2070 | &omap44xx_smartreflex_core_hwmod, | ||
2071 | &omap44xx_smartreflex_iva_hwmod, | ||
2072 | &omap44xx_smartreflex_mpu_hwmod, | ||
2073 | |||
1906 | NULL, | 2074 | NULL, |
1907 | }; | 2075 | }; |
1908 | 2076 | ||