OMAP4: Add 4460 base support
Subsystems (5)
v2 cover OMAP4: Add 4460 base support
This series adds base support needed to be able
to boot on a OMAP4460 device.
Patches are based ongit://gitorious.org/omap-pm/linux.git for_3.1/7_hwmod_modulemode and boot tested on 4430sdp and 4460sdp boards.
The series updates the prcm/clock and clockdomain/powerdomain data files which are also cleaned up/fixed by the various series posted by Benoit, and hence the dependency.
Changes since v1:
1. Removed the minor issues in the ID detection patches
2. Dropped '4460sdp/blaze/panda: hwmod: Prevent gpio1 reset during hwmod init' since the right way to fix it is to do a lazy-disable in hmwod as suggested by Tony.
For now, with this patch dropped and until the lazy-disable for hwmod gets in, 4460 based devices can only boot reliably at OPP50 on MPU.
Aneesh V (2):
OMAP: ID: introduce chip detection for OMAP4460
OMAP4: ID: add omap_has_feature for max freq supported
Rajendra Nayak (4):
OMAP4: PRCM: OMAP4460 specific PRM and CM register bitshifts
OMAP4: clocks: Update the clock tree with 4460 clock nodes
OMAP4: powerdomain: Reuse on 4460 using CHIP_IS_44XX
OMAP4: clockdomain: Reuse on 4460 using CHIP_IS_44XX
arch/arm/mach-omap2/clock44xx_data.c | 39 +++++ arch/arm/mach-omap2/clockdomains44xx_data.c | 200 ++++++++++++------------ arch/arm/mach-omap2/cm-regbits-44xx.h | 36 +++++ arch/arm/mach-omap2/id.c | 53 ++++++- arch/arm/mach-omap2/powerdomains44xx_data.c | 32 ++-- arch/arm/mach-omap2/prm-regbits-44xx.h | 8 + arch/arm/plat-omap/include/plat/clkdev_omap.h | 2 +- arch/arm/plat-omap/include/plat/clock.h | 3 +- arch/arm/plat-omap/include/plat/cpu.h | 36 ++++- 9 files changed, 279 insertions(+), 130 deletions(-)
Signature · 1 line
1.7.4.1
PATCH v2 1/6 OMAP: ID: introduce chip detection for OMAP4460
From: Aneesh V <[email protected]>
Add support for detecting the latest in the OMAP4 family: OMAP4460 Among other changes, the new chip also can support 1.5GHz A9s, 1080p stereoscopic 3D and 12 MP stereo (dual camera). In addition, we have changes to OPPs supported, clock tree etc, hence having a chip detection is required.
For more details on OMAP4460, see
Highlights:
http://focus.ti.com/general/docs/wtbu/wtbuproductcontent.tsp?contentId=53243&navigationId=12843&templateId=6123
Public TRM is available here as usual:
http://focus.ti.com/general/docs/wtbu/wtbudocumentcenter.tsp?templateId=6123&navigationId=12667
---
V2:
* Removed un-necessary movement of variable declaration(hawkeye)
--- arch/arm/mach-omap2/id.c | 13 +++++++++++-- arch/arm/plat-omap/include/plat/cpu.h | 13 ++++++++++++- 2 files changed, 23 insertions(+), 3 deletions(-)
arch/arm/mach-omap2/id.c +11 -2
@@ -344,10 +344,10 @@ static void __init omap4_check_revision(void) rev = (idcode >>28 ) &0xf ;/* -* Few initial ES2.0 samples IDCODE is same as ES1.0 +* Few initial 4430 ES2.0 samples IDCODE is same as ES1.0 * Use ARM register to detect the correct ES version */ -if (!rev) { +if (!rev && (hawkeye !=0xb94e )) { idcode =read_cpuid (CPUID_ID ); rev = (idcode &0xf ) -1 ; }
@@ -377,6 +377,15 @@ static void __init omap4_check_revision(void) omap_chip.oc |=CHIP_IS_OMAP4430ES2_2 ; }break ; +case 0xb94e : +switch (rev) { +case 0 : +default : + omap_revision =OMAP4460_REV_ES1_0 ; + omap_chip.oc |=CHIP_IS_OMAP4460ES1_0 ; +break ; + } +break ;default :/* Unknown default to latest silicon rev as default */ omap_revision =OMAP4430_REV_ES2_2 ;
arch/arm/plat-omap/include/plat/cpu.h +12 -1
@@ -88,6 +88,7 @@ unsigned int omap_rev(void);* cpu_is_omap243x(): True for OMAP2430 * cpu_is_omap343x(): True for OMAP3430 * cpu_is_omap443x(): True for OMAP4430 +* cpu_is_omap446x(): True for OMAP4460 */ #define GET_OMAP_CLASS (omap_rev() & 0xff)
@@ -123,6 +124,7 @@ IS_OMAP_SUBCLASS(243x, 0x243) IS_OMAP_SUBCLASS(343x, 0x343) IS_OMAP_SUBCLASS(363x, 0x363) IS_OMAP_SUBCLASS(443x, 0x443) +IS_OMAP_SUBCLASS(446x, 0x446) IS_TI_SUBCLASS(816x, 0x816)
@@ -137,6 +139,7 @@ IS_TI_SUBCLASS(816x, 0x816)#define cpu_is_ti816x () 0#define cpu_is_omap44xx () 0#define cpu_is_omap443x () 0 +#define cpu_is_omap446x () 0#if defined(MULTI_OMAP1 )# if defined(CONFIG_ARCH_OMAP730 )
@@ -361,8 +364,10 @@ IS_OMAP_TYPE(3517, 0x3517)# if defined(CONFIG_ARCH_OMAP4 )# undef cpu_is_omap44xx# undef cpu_is_omap443x +# undef cpu_is_omap446x# define cpu_is_omap44xx () is_omap44xx()# define cpu_is_omap443x () is_omap443x() +# define cpu_is_omap446x () is_omap446x()# endif /* Macros to detect if we have OMAP1 or OMAP2 */
@@ -410,6 +415,9 @@ IS_OMAP_TYPE(3517, 0x3517)#define OMAP4430_REV_ES2_1 (OMAP443X_CLASS | (0x21 << 8))#define OMAP4430_REV_ES2_2 (OMAP443X_CLASS | (0x22 << 8)) +#define OMAP446X_CLASS 0x44600044 +#define OMAP4460_REV_ES1_0 (OMAP446X_CLASS | (0x10 << 8)) +/* * omap_chip bits *
@@ -439,6 +447,7 @@ IS_OMAP_TYPE(3517, 0x3517)#define CHIP_IS_OMAP4430ES2_1 (1 << 12)#define CHIP_IS_OMAP4430ES2_2 (1 << 13)#define CHIP_IS_TI816X (1 << 14) +#define CHIP_IS_OMAP4460ES1_0 (1 << 15)#define CHIP_IS_OMAP24XX (CHIP_IS_OMAP2420 | CHIP_IS_OMAP2430)
@@ -447,7 +456,9 @@ IS_OMAP_TYPE(3517, 0x3517) CHIP_IS_OMAP4430ES2_1 | \ CHIP_IS_OMAP4430ES2_2) -#define CHIP_IS_OMAP44XX (CHIP_IS_OMAP4430) +#define CHIP_IS_OMAP446X CHIP_IS_OMAP4460ES1_0 + +#define CHIP_IS_OMAP44XX (CHIP_IS_OMAP4430 | CHIP_IS_OMAP446X)/* * "GE" here represents "greater than or equal to" in terms of ES
Signature · 1 line
1.7.4.1
PATCH v2 2/6 OMAP4: ID: add omap_has_feature for max freq supported
From: Aneesh V <[email protected]>
Macros for identifying the max frequency supported by various OMAP4 variants - Expanding along the lines of OMAP3's feature handling.
---
V2:
* Replaced 'omap3_features' and 'omap4_features' with a single variable 'omap_features'
--- arch/arm/mach-omap2/id.c | 40 +++++++++++++++++++++++++++----- arch/arm/plat-omap/include/plat/cpu.h | 23 +++++++++++++++++- 2 files changed, 54 insertions(+), 9 deletions(-)
arch/arm/mach-omap2/id.c +33 -7
@@ -31,7 +31,7 @@static struct omap_chip_id omap_chip;static unsigned int omap_revision; -u32 omap3_features; +u32 omap_features;unsigned int omap_rev (void ) {
@@ -183,14 +183,14 @@ static void __init omap24xx_check_revision(void)#define OMAP3_CHECK_FEATURE (status,feat) \ if (((status & OMAP3_ ##feat## _MASK) \ >> OMAP3_ ##feat## _SHIFT) != FEAT_ ##feat## _NONE) { \ - omap3_features |= OMAP3_HAS_ ##feat; \ + omap_features |= OMAP3_HAS_ ##feat; \ }static void __init omap3_check_features (void ) {u32 status; - omap3_features =0 ; + omap_features =0 ; status =omap_ctrl_readl (OMAP3_CONTROL_OMAP_STATUS );
@@ -200,11 +200,11 @@ static void __init omap3_check_features(void)OMAP3_CHECK_FEATURE (status,NEON );OMAP3_CHECK_FEATURE (status,ISP );if (cpu_is_omap3630 ()) - omap3_features |=OMAP3_HAS_192MHZ_CLK ; + omap_features |=OMAP3_HAS_192MHZ_CLK ;if (!cpu_is_omap3505 () && !cpu_is_omap3517 ()) - omap3_features |=OMAP3_HAS_IO_WAKEUP ; + omap_features |=OMAP3_HAS_IO_WAKEUP ; - omap3_features |=OMAP3_HAS_SDRC ; + omap_features |=OMAP3_HAS_SDRC ;/* * TODO: Get additional info (where applicable)
@@ -212,9 +212,34 @@ static void __init omap3_check_features(void)*/ } +static void __init omap4_check_features (void ) +{ +u32 si_type; + +if (cpu_is_omap443x ()) + omap_features |=OMAP4_HAS_MPU_1GHZ ; + + +if (cpu_is_omap446x ()) { + si_type = +read_tap_reg (OMAP4_CTRL_MODULE_CORE_STD_FUSE_PROD_ID_1 ); +switch ((si_type & (3 <<16 )) >>16 ) { +case 2 : +/* High performance device */ + omap_features |=OMAP4_HAS_MPU_1_5GHZ ; +break ; +case 1 : +default : +/* Standard device */ + omap_features |=OMAP4_HAS_MPU_1_2GHZ ; +break ; + } + } +} +static void __init ti816x_check_features (void ) { - omap3_features =OMAP3_HAS_NEON ; + omap_features =OMAP3_HAS_NEON ; }static void __init omap3_check_revision (void )
@@ -527,6 +552,7 @@ void __init omap2_check_revision(void)return ; }else if (cpu_is_omap44xx ()) {omap4_check_revision (); +omap4_check_features ();return ; }else {pr_err ("OMAP revision unknown, please fix!\n" );
arch/arm/plat-omap/include/plat/cpu.h +21 -2
@@ -481,7 +481,7 @@ void omap2_check_revision(void);/* * Runtime detection of OMAP3 features */ -extern u32 omap3_features; +extern u32 omap_features;#define OMAP3_HAS_L2CACHE BIT(0)#define OMAP3_HAS_IVA BIT(1)
@@ -491,11 +491,15 @@ extern u32 omap3_features;#define OMAP3_HAS_192MHZ_CLK BIT(5)#define OMAP3_HAS_IO_WAKEUP BIT(6)#define OMAP3_HAS_SDRC BIT(7) +#define OMAP4_HAS_MPU_1GHZ BIT(8) +#define OMAP4_HAS_MPU_1_2GHZ BIT(9) +#define OMAP4_HAS_MPU_1_5GHZ BIT(10) +#define OMAP3_HAS_FEATURE (feat,flag) \ static inline unsigned int omap3_has_ ##feat(void) \ { \ - return (omap3_features & OMAP3_HAS_ ##flag); \ + return omap_features & OMAP3_HAS_ ##flag; \ } \OMAP3_HAS_FEATURE (l2cache,L2CACHE )
@@ -507,4 +511,19 @@ OMAP3_HAS_FEATURE(192mhz_clk, 192MHZ_CLK) OMAP3_HAS_FEATURE(io_wakeup, IO_WAKEUP)OMAP3_HAS_FEATURE (sdrc,SDRC ) +/* +* Runtime detection of OMAP4 features + */ +extern u32 omap_features; + +#define OMAP4_HAS_FEATURE (feat, flag) \ +static inline unsigned int omap4_has_ ##feat(void) \ +{ \ + return omap_features & OMAP4_HAS_ ##flag; \ +} \ + +OMAP4_HAS_FEATURE(mpu_1ghz, MPU_1GHZ) +OMAP4_HAS_FEATURE(mpu_1_2ghz, MPU_1_2GHZ) +OMAP4_HAS_FEATURE(mpu_1_5ghz, MPU_1_5GHZ) +#endif
Signature · 1 line
1.7.4.1
PATCH v2 3/6 OMAP4: PRCM: OMAP4460 specific PRM and CM register bitshifts
This patch adds additional register bitshifts for registers added in OMAP4460 platform.
--- arch/arm/mach-omap2/cm-regbits-44xx.h | 36 ++++++++++++++++++++++++++++++++ arch/arm/mach-omap2/prm-regbits-44xx.h | 8 +++++++ 2 files changed, 44 insertions(+), 0 deletions(-)
arch/arm/mach-omap2/cm-regbits-44xx.h +36 -0
@@ -101,6 +101,10 @@#define OMAP4430_CLKACTIVITY_CORE_DPLL_EMU_CLK_SHIFT 9#define OMAP4430_CLKACTIVITY_CORE_DPLL_EMU_CLK_MASK (1 << 9) +/* Used by CM_L4CFG_CLKSTCTRL */ +#define OMAP4460_CLKACTIVITY_CORE_TS_GFCLK_SHIFT 9 +#define OMAP4460_CLKACTIVITY_CORE_TS_GFCLK_MASK (1 << 9) +/* Used by CM_CEFUSE_CLKSTCTRL */ #define OMAP4430_CLKACTIVITY_CUST_EFUSE_SYS_CLK_SHIFT 9#define OMAP4430_CLKACTIVITY_CUST_EFUSE_SYS_CLK_MASK (1 << 9)
@@ -401,6 +405,10 @@#define OMAP4430_CLKACTIVITY_WKUP_32K_GFCLK_SHIFT 11#define OMAP4430_CLKACTIVITY_WKUP_32K_GFCLK_MASK (1 << 11) +/* Used by CM_WKUP_CLKSTCTRL */ +#define OMAP4460_CLKACTIVITY_WKUP_TS_GFCLK_SHIFT 13 +#define OMAP4460_CLKACTIVITY_WKUP_TS_GFCLK_MASK (1 << 13) +/* * Used by CM1_ABE_TIMER5_CLKCTRL, CM1_ABE_TIMER6_CLKCTRL, * CM1_ABE_TIMER7_CLKCTRL, CM1_ABE_TIMER8_CLKCTRL, CM_L3INIT_MMC1_CLKCTRL,
@@ -431,6 +439,10 @@#define OMAP4430_CLKSEL_60M_SHIFT 24#define OMAP4430_CLKSEL_60M_MASK (1 << 24) +/* Used by CM_MPU_MPU_CLKCTRL */ +#define OMAP4460_CLKSEL_ABE_DIV_MODE_SHIFT 25 +#define OMAP4460_CLKSEL_ABE_DIV_MODE_MASK (1 << 25) +/* Used by CM1_ABE_AESS_CLKCTRL */ #define OMAP4430_CLKSEL_AESS_FCLK_SHIFT 24#define OMAP4430_CLKSEL_AESS_FCLK_MASK (1 << 24)
@@ -447,6 +459,10 @@#define OMAP4430_CLKSEL_DIV_SHIFT 24#define OMAP4430_CLKSEL_DIV_MASK (1 << 24) +/* Used by CM_MPU_MPU_CLKCTRL */ +#define OMAP4460_CLKSEL_EMIF_DIV_MODE_SHIFT 24 +#define OMAP4460_CLKSEL_EMIF_DIV_MODE_MASK (1 << 24) +/* Used by CM_CAM_FDIF_CLKCTRL */ #define OMAP4430_CLKSEL_FCLK_SHIFT 24#define OMAP4430_CLKSEL_FCLK_MASK (0x3 << 24)
@@ -542,6 +558,14 @@#define OMAP4430_D2D_STATDEP_SHIFT 18#define OMAP4430_D2D_STATDEP_MASK (1 << 18) +/* Used by CM_CLKSEL_DPLL_MPU */ +#define OMAP4460_DCC_COUNT_MAX_SHIFT 24 +#define OMAP4460_DCC_COUNT_MAX_MASK (0xff << 24) + +/* Used by CM_CLKSEL_DPLL_MPU */ +#define OMAP4460_DCC_EN_SHIFT 22 +#define OMAP4460_DCC_EN_MASK (1 << 22) +/* * Used by CM_SSC_DELTAMSTEP_DPLL_ABE, CM_SSC_DELTAMSTEP_DPLL_CORE, * CM_SSC_DELTAMSTEP_DPLL_DDRPHY, CM_SSC_DELTAMSTEP_DPLL_IVA,
@@ -551,6 +575,10 @@#define OMAP4430_DELTAMSTEP_SHIFT 0#define OMAP4430_DELTAMSTEP_MASK (0xfffff << 0) +/* Renamed from DELTAMSTEP Used by CM_SSC_DELTAMSTEP_DPLL_USB */ +#define OMAP4460_DELTAMSTEP_0_20_SHIFT 0 +#define OMAP4460_DELTAMSTEP_0_20_MASK (0x1fffff << 0) +/* Used by CM_DLL_CTRL */ #define OMAP4430_DLL_OVERRIDE_SHIFT 0#define OMAP4430_DLL_OVERRIDE_MASK (1 << 0)
@@ -1079,6 +1107,10 @@#define OMAP4430_MODULEMODE_SHIFT 0#define OMAP4430_MODULEMODE_MASK (0x3 << 0) +/* Used by CM_L4CFG_DYNAMICDEP */ +#define OMAP4460_MPU_DYNDEP_SHIFT 19 +#define OMAP4460_MPU_DYNDEP_MASK (1 << 19) +/* Used by CM_DSS_DSS_CLKCTRL */ #define OMAP4430_OPTFCLKEN_48MHZ_CLK_SHIFT 9#define OMAP4430_OPTFCLKEN_48MHZ_CLK_MASK (1 << 9)
@@ -1171,6 +1203,10 @@#define OMAP4430_OPTFCLKEN_SYS_CLK_SHIFT 10#define OMAP4430_OPTFCLKEN_SYS_CLK_MASK (1 << 10) +/* Used by CM_WKUP_BANDGAP_CLKCTRL */ +#define OMAP4460_OPTFCLKEN_TS_FCLK_SHIFT 8 +#define OMAP4460_OPTFCLKEN_TS_FCLK_MASK (1 << 8) +/* Used by CM_DSS_DSS_CLKCTRL */ #define OMAP4430_OPTFCLKEN_TV_CLK_SHIFT 11#define OMAP4430_OPTFCLKEN_TV_CLK_MASK (1 << 11)
arch/arm/mach-omap2/prm-regbits-44xx.h +8 -0
@@ -282,6 +282,14 @@#define OMAP4430_DUCATI_UNICACHE_STATEST_SHIFT 10#define OMAP4430_DUCATI_UNICACHE_STATEST_MASK (0x3 << 10) +/* Used by PRM_DEVICE_OFF_CTRL */ +#define OMAP4460_EMIF1_OFFWKUP_DISABLE_SHIFT 8 +#define OMAP4460_EMIF1_OFFWKUP_DISABLE_MASK (1 << 8) + +/* Used by PRM_DEVICE_OFF_CTRL */ +#define OMAP4460_EMIF2_OFFWKUP_DISABLE_SHIFT 9 +#define OMAP4460_EMIF2_OFFWKUP_DISABLE_MASK (1 << 9) +/* Used by RM_MPU_RSTST */ #define OMAP4430_EMULATION_RST_SHIFT 0#define OMAP4430_EMULATION_RST_MASK (1 << 0)
Signature · 1 line
1.7.4.1
PATCH v2 4/6 OMAP4: clocks: Update the clock tree with 4460 clock nodes
Add the new clock nodes (bandgap_ts_fclk, div_ts_ck) for omap4460. Handle these nodes using the clock flags (CK_*).
--- arch/arm/mach-omap2/clock44xx_data.c | 39 +++++++++++++++++++++++++ arch/arm/plat-omap/include/plat/clkdev_omap.h | 2 +- arch/arm/plat-omap/include/plat/clock.h | 3 +- 3 files changed, 42 insertions(+), 2 deletions(-)
arch/arm/mach-omap2/clock44xx_data.c +39 -0
@@ -1287,6 +1287,40 @@ static struct clk dss_fck = { .recalc = &followparent_recalc, }; +static const struct clksel_rate div3_8to32_rates[] = { + { .div =8 , .val =0 , .flags =RATE_IN_44XX }, + { .div =16 , .val =1 , .flags =RATE_IN_44XX }, + { .div =32 , .val =2 , .flags =RATE_IN_44XX }, + { .div =0 }, +}; + +static const struct clksel div_ts_div[] = { + { .parent = &l4_wkup_clk_mux_ck, .rates = div3_8to32_rates }, + { .parent =NULL }, +}; + +static struct clk div_ts_ck = { + .name ="div_ts_ck" , + .parent = &l4_wkup_clk_mux_ck, + .clksel = div_ts_div, + .clksel_reg =OMAP4430_CM_WKUP_BANDGAP_CLKCTRL , + .clksel_mask =OMAP4430_CLKSEL_24_25_MASK , + .ops = &clkops_null, + .recalc = &omap2_clksel_recalc, + .round_rate = &omap2_clksel_round_rate, + .set_rate = &omap2_clksel_set_rate, +}; + +static struct clk bandgap_ts_fclk = { + .name ="bandgap_ts_fclk" , + .ops = &clkops_omap2_dflt, + .enable_reg =OMAP4430_CM_WKUP_BANDGAP_CLKCTRL , + .enable_bit =OMAP4460_OPTFCLKEN_TS_FCLK_SHIFT , + .clkdm_name ="l4_wkup_clkdm" , + .parent = &div_ts_ck, + .recalc = &followparent_recalc, +}; +static struct clk dss_48mhz_clk = { .name ="dss_48mhz_clk" , .parent = &func_48mc_fclk,
@@ -2507,6 +2541,7 @@ static struct omap_clk omap44xx_clks[] = {CLK (NULL ,"pmd_trace_clk_mux_ck" , &pmd_trace_clk_mux_ck,CK_44XX ),CLK (NULL ,"syc_clk_div_ck" , &syc_clk_div_ck,CK_44XX ),CLK (NULL ,"bandgap_fclk" , &bandgap_fclk,CK_44XX ), +CLK (NULL ,"bandgap_ts_fclk" , &bandgap_ts_fclk,CK_446X ),CLK ("omapdss_dss" ,"sys_clk" , &dss_sys_clk,CK_44XX ),CLK ("omapdss_dss" ,"tv_clk" , &dss_tv_clk,CK_44XX ), CLK("omapdss_dss", "fck", &dss_dss_clk, CK_44XX),
@@ -2552,6 +2587,7 @@ static struct omap_clk omap44xx_clks[] = {CLK (NULL ,"cm2_dm3_mux_ck" , &cm2_dm3_mux_ck,CK_44XX ),CLK (NULL ,"cm2_dm4_mux_ck" , &cm2_dm4_mux_ck,CK_44XX ),CLK (NULL ,"cm2_dm9_mux_ck" , &cm2_dm9_mux_ck,CK_44XX ), +CLK (NULL ,"div_ts_ck" , &div_ts_ck,CK_446X ),CLK (NULL ,"dmic_sync_mux_ck" , &dmic_sync_mux_ck,CK_44XX ),CLK (NULL ,"gpt1_fck" , &timer1_fck,CK_44XX ), CLK(NULL, "fdif_fclk", &fdif_fclk, CK_44XX),
@@ -2641,6 +2677,9 @@ int __init omap4xxx_clk_init(void)if (cpu_is_omap443x ()) { cpu_mask =RATE_IN_4430 ; cpu_clkflg =CK_443X ; + }else if (cpu_is_omap446x ()) { + cpu_mask =RATE_IN_4460 ; + cpu_clkflg =CK_446X ; }clk_init (&omap2_clk_functions);
arch/arm/plat-omap/include/plat/clkdev_omap.h +1 -1
@@ -45,7 +45,7 @@ struct omap_clk {#define CK_34XX (CK_3430ES1 | CK_3430ES2PLUS)#define CK_AM35XX (CK_3505 | CK_3517)/* all Sitara AM35xx */ #define CK_3XXX (CK_34XX | CK_AM35XX | CK_36XX) -#define CK_44XX (CK_443X) +#define CK_44XX (CK_443X | CK_446X)#endif
arch/arm/plat-omap/include/plat/clock.h +2 -1
@@ -58,11 +58,12 @@ struct clkops {#define RATE_IN_36XX (1 << 4)#define RATE_IN_4430 (1 << 5)#define RATE_IN_TI816X (1 << 6) +#define RATE_IN_4460 (1 << 7)#define RATE_IN_24XX (RATE_IN_242X | RATE_IN_243X)#define RATE_IN_34XX (RATE_IN_3430ES1 | RATE_IN_3430ES2PLUS)#define RATE_IN_3XXX (RATE_IN_34XX | RATE_IN_36XX) -#define RATE_IN_44XX (RATE_IN_4430) +#define RATE_IN_44XX (RATE_IN_4430 | RATE_IN_4460)/* RATE_IN_3430ES2PLUS_36XX includes 34xx/35xx with ES >=2, and all 36xx/37xx */ #define RATE_IN_3430ES2PLUS_36XX (RATE_IN_3430ES2PLUS | RATE_IN_36XX)
Signature · 1 line
1.7.4.1
PATCH v2 5/6 OMAP4: powerdomain: Reuse on 4460 using CHIP_IS_44XX
The 4460 platform has no difference in the powerdomains as compared to the 4430 platform. Hence just update the .omap_chip field to make sure the same powerdomain data can be reused on the 4460 platform.
--- arch/arm/mach-omap2/powerdomains44xx_data.c | 32 +++++++++++++------------- 1 files changed, 16 insertions(+), 16 deletions(-)
arch/arm/mach-omap2/powerdomains44xx_data.c +16 -16
@@ -35,7 +35,7 @@ static struct powerdomain core_44xx_pwrdm = { .name = "core_pwrdm", .prcm_offs = OMAP4430_PRM_CORE_INST, .prcm_partition = OMAP4430_PRM_PARTITION, - .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP4430), + .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP44XX), .pwrsts = PWRSTS_RET_ON, .pwrsts_logic_ret = PWRSTS_OFF_RET, .banks = 5,
@@ -61,7 +61,7 @@ static struct powerdomain gfx_44xx_pwrdm = { .name = "gfx_pwrdm", .prcm_offs = OMAP4430_PRM_GFX_INST, .prcm_partition = OMAP4430_PRM_PARTITION, - .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP4430), + .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP44XX), .pwrsts = PWRSTS_OFF_ON, .banks = 1, .pwrsts_mem_ret = {
@@ -78,7 +78,7 @@ static struct powerdomain abe_44xx_pwrdm = { .name = "abe_pwrdm", .prcm_offs = OMAP4430_PRM_ABE_INST, .prcm_partition = OMAP4430_PRM_PARTITION, - .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP4430), + .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP44XX), .pwrsts = PWRSTS_OFF_RET_ON, .pwrsts_logic_ret = PWRSTS_OFF, .banks = 2,
@@ -98,7 +98,7 @@ static struct powerdomain dss_44xx_pwrdm = { .name = "dss_pwrdm", .prcm_offs = OMAP4430_PRM_DSS_INST, .prcm_partition = OMAP4430_PRM_PARTITION, - .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP4430), + .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP44XX), .pwrsts = PWRSTS_OFF_RET_ON, .pwrsts_logic_ret = PWRSTS_OFF, .banks = 1,
@@ -116,7 +116,7 @@ static struct powerdomain tesla_44xx_pwrdm = { .name = "tesla_pwrdm", .prcm_offs = OMAP4430_PRM_TESLA_INST, .prcm_partition = OMAP4430_PRM_PARTITION, - .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP4430), + .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP44XX), .pwrsts = PWRSTS_OFF_RET_ON, .pwrsts_logic_ret = PWRSTS_OFF_RET, .banks = 3,
@@ -138,7 +138,7 @@ static struct powerdomain wkup_44xx_pwrdm = { .name = "wkup_pwrdm", .prcm_offs = OMAP4430_PRM_WKUP_INST, .prcm_partition = OMAP4430_PRM_PARTITION, - .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP4430), + .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP44XX), .pwrsts = PWRSTS_ON, .banks = 1, .pwrsts_mem_ret = {
@@ -154,7 +154,7 @@ static struct powerdomain cpu0_44xx_pwrdm = { .name = "cpu0_pwrdm", .prcm_offs = OMAP4430_PRCM_MPU_CPU0_INST, .prcm_partition = OMAP4430_PRCM_MPU_PARTITION, - .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP4430), + .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP44XX), .pwrsts = PWRSTS_OFF_RET_ON, .pwrsts_logic_ret = PWRSTS_OFF_RET, .banks = 1,
@@ -171,7 +171,7 @@ static struct powerdomain cpu1_44xx_pwrdm = { .name = "cpu1_pwrdm", .prcm_offs = OMAP4430_PRCM_MPU_CPU1_INST, .prcm_partition = OMAP4430_PRCM_MPU_PARTITION, - .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP4430), + .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP44XX), .pwrsts = PWRSTS_OFF_RET_ON, .pwrsts_logic_ret = PWRSTS_OFF_RET, .banks = 1,
@@ -188,7 +188,7 @@ static struct powerdomain emu_44xx_pwrdm = { .name = "emu_pwrdm", .prcm_offs = OMAP4430_PRM_EMU_INST, .prcm_partition = OMAP4430_PRM_PARTITION, - .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP4430), + .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP44XX), .pwrsts = PWRSTS_OFF_ON, .banks = 1, .pwrsts_mem_ret = {
@@ -204,7 +204,7 @@ static struct powerdomain mpu_44xx_pwrdm = { .name = "mpu_pwrdm", .prcm_offs = OMAP4430_PRM_MPU_INST, .prcm_partition = OMAP4430_PRM_PARTITION, - .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP4430), + .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP44XX), .pwrsts = PWRSTS_RET_ON, .pwrsts_logic_ret = PWRSTS_OFF_RET, .banks = 3,
@@ -225,7 +225,7 @@ static struct powerdomain ivahd_44xx_pwrdm = { .name = "ivahd_pwrdm", .prcm_offs = OMAP4430_PRM_IVAHD_INST, .prcm_partition = OMAP4430_PRM_PARTITION, - .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP4430), + .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP44XX), .pwrsts = PWRSTS_OFF_RET_ON, .pwrsts_logic_ret = PWRSTS_OFF, .banks = 4,
@@ -249,7 +249,7 @@ static struct powerdomain cam_44xx_pwrdm = { .name = "cam_pwrdm", .prcm_offs = OMAP4430_PRM_CAM_INST, .prcm_partition = OMAP4430_PRM_PARTITION, - .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP4430), + .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP44XX), .pwrsts = PWRSTS_OFF_ON, .banks = 1, .pwrsts_mem_ret = {
@@ -266,7 +266,7 @@ static struct powerdomain l3init_44xx_pwrdm = { .name = "l3init_pwrdm", .prcm_offs = OMAP4430_PRM_L3INIT_INST, .prcm_partition = OMAP4430_PRM_PARTITION, - .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP4430), + .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP44XX), .pwrsts = PWRSTS_RET_ON, .pwrsts_logic_ret = PWRSTS_OFF_RET, .banks = 1,
@@ -284,7 +284,7 @@ static struct powerdomain l4per_44xx_pwrdm = { .name = "l4per_pwrdm", .prcm_offs = OMAP4430_PRM_L4PER_INST, .prcm_partition = OMAP4430_PRM_PARTITION, - .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP4430), + .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP44XX), .pwrsts = PWRSTS_RET_ON, .pwrsts_logic_ret = PWRSTS_OFF_RET, .banks = 2,
@@ -307,7 +307,7 @@ static struct powerdomain always_on_core_44xx_pwrdm = { .name = "always_on_core_pwrdm", .prcm_offs = OMAP4430_PRM_ALWAYS_ON_INST, .prcm_partition = OMAP4430_PRM_PARTITION, - .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP4430), + .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP44XX), .pwrsts = PWRSTS_ON, };
@@ -316,7 +316,7 @@ static struct powerdomain cefuse_44xx_pwrdm = { .name = "cefuse_pwrdm", .prcm_offs = OMAP4430_PRM_CEFUSE_INST, .prcm_partition = OMAP4430_PRM_PARTITION, - .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP4430), + .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP44XX), .pwrsts = PWRSTS_OFF_ON, .flags = PWRDM_HAS_LOWPOWERSTATECHANGE, };
Signature · 1 line
1.7.4.1
PATCH v2 6/6 OMAP4: clockdomain: Reuse on 4460 using CHIP_IS_44XX
The 4460 platform has no difference in the clockdomains as compared to the 4430 platform. Hence just update the .omap_chip field to make sure the same clockdomain data can be reused on the 4460 platform.
--- arch/arm/mach-omap2/clockdomains44xx_data.c | 200 +++++++++++++------------- 1 files changed, 100 insertions(+), 100 deletions(-)
arch/arm/mach-omap2/clockdomains44xx_data.c +100 -100
@@ -36,35 +36,35 @@static struct clkdm_dep d2d_wkup_sleep_deps[] = { { .clkdm_name ="abe_clkdm" , - .omap_chip =OMAP_CHIP_INIT (CHIP_IS_OMAP4430 ) + .omap_chip =OMAP_CHIP_INIT (CHIP_IS_OMAP44XX ) }, { .clkdm_name ="ivahd_clkdm" , - .omap_chip =OMAP_CHIP_INIT (CHIP_IS_OMAP4430 ) + .omap_chip =OMAP_CHIP_INIT (CHIP_IS_OMAP44XX ) }, { .clkdm_name ="l3_1_clkdm" , - .omap_chip =OMAP_CHIP_INIT (CHIP_IS_OMAP4430 ) + .omap_chip =OMAP_CHIP_INIT (CHIP_IS_OMAP44XX ) }, { .clkdm_name ="l3_2_clkdm" , - .omap_chip =OMAP_CHIP_INIT (CHIP_IS_OMAP4430 ) + .omap_chip =OMAP_CHIP_INIT (CHIP_IS_OMAP44XX ) }, { .clkdm_name ="l3_emif_clkdm" , - .omap_chip =OMAP_CHIP_INIT (CHIP_IS_OMAP4430 ) + .omap_chip =OMAP_CHIP_INIT (CHIP_IS_OMAP44XX ) }, { .clkdm_name ="l3_init_clkdm" , - .omap_chip =OMAP_CHIP_INIT (CHIP_IS_OMAP4430 ) + .omap_chip =OMAP_CHIP_INIT (CHIP_IS_OMAP44XX ) }, { .clkdm_name ="l4_cfg_clkdm" , - .omap_chip =OMAP_CHIP_INIT (CHIP_IS_OMAP4430 ) + .omap_chip =OMAP_CHIP_INIT (CHIP_IS_OMAP44XX ) }, { .clkdm_name ="l4_per_clkdm" , - .omap_chip =OMAP_CHIP_INIT (CHIP_IS_OMAP4430 ) + .omap_chip =OMAP_CHIP_INIT (CHIP_IS_OMAP44XX ) }, {NULL }, };
@@ -72,55 +72,55 @@ static struct clkdm_dep d2d_wkup_sleep_deps[] = {static struct clkdm_dep ducati_wkup_sleep_deps[] = { { .clkdm_name ="abe_clkdm" , - .omap_chip =OMAP_CHIP_INIT (CHIP_IS_OMAP4430 ) + .omap_chip =OMAP_CHIP_INIT (CHIP_IS_OMAP44XX ) }, { .clkdm_name ="ivahd_clkdm" , - .omap_chip =OMAP_CHIP_INIT (CHIP_IS_OMAP4430 ) + .omap_chip =OMAP_CHIP_INIT (CHIP_IS_OMAP44XX ) }, { .clkdm_name ="l3_1_clkdm" , - .omap_chip =OMAP_CHIP_INIT (CHIP_IS_OMAP4430 ) + .omap_chip =OMAP_CHIP_INIT (CHIP_IS_OMAP44XX ) }, { .clkdm_name ="l3_2_clkdm" , - .omap_chip =OMAP_CHIP_INIT (CHIP_IS_OMAP4430 ) + .omap_chip =OMAP_CHIP_INIT (CHIP_IS_OMAP44XX ) }, { .clkdm_name ="l3_dss_clkdm" , - .omap_chip =OMAP_CHIP_INIT (CHIP_IS_OMAP4430 ) + .omap_chip =OMAP_CHIP_INIT (CHIP_IS_OMAP44XX ) }, { .clkdm_name ="l3_emif_clkdm" , - .omap_chip =OMAP_CHIP_INIT (CHIP_IS_OMAP4430 ) + .omap_chip =OMAP_CHIP_INIT (CHIP_IS_OMAP44XX ) }, { .clkdm_name ="l3_gfx_clkdm" , - .omap_chip =OMAP_CHIP_INIT (CHIP_IS_OMAP4430 ) + .omap_chip =OMAP_CHIP_INIT (CHIP_IS_OMAP44XX ) }, { .clkdm_name ="l3_init_clkdm" , - .omap_chip =OMAP_CHIP_INIT (CHIP_IS_OMAP4430 ) + .omap_chip =OMAP_CHIP_INIT (CHIP_IS_OMAP44XX ) }, { .clkdm_name ="l4_cfg_clkdm" , - .omap_chip =OMAP_CHIP_INIT (CHIP_IS_OMAP4430 ) + .omap_chip =OMAP_CHIP_INIT (CHIP_IS_OMAP44XX ) }, { .clkdm_name ="l4_per_clkdm" , - .omap_chip =OMAP_CHIP_INIT (CHIP_IS_OMAP4430 ) + .omap_chip =OMAP_CHIP_INIT (CHIP_IS_OMAP44XX ) }, { .clkdm_name ="l4_secure_clkdm" , - .omap_chip =OMAP_CHIP_INIT (CHIP_IS_OMAP4430 ) + .omap_chip =OMAP_CHIP_INIT (CHIP_IS_OMAP44XX ) }, { .clkdm_name ="l4_wkup_clkdm" , - .omap_chip =OMAP_CHIP_INIT (CHIP_IS_OMAP4430 ) + .omap_chip =OMAP_CHIP_INIT (CHIP_IS_OMAP44XX ) }, { .clkdm_name ="tesla_clkdm" , - .omap_chip =OMAP_CHIP_INIT (CHIP_IS_OMAP4430 ) + .omap_chip =OMAP_CHIP_INIT (CHIP_IS_OMAP44XX ) }, {NULL }, };
@@ -128,15 +128,15 @@ static struct clkdm_dep ducati_wkup_sleep_deps[] = {static struct clkdm_dep iss_wkup_sleep_deps[] = { { .clkdm_name ="ivahd_clkdm" , - .omap_chip =OMAP_CHIP_INIT (CHIP_IS_OMAP4430 ) + .omap_chip =OMAP_CHIP_INIT (CHIP_IS_OMAP44XX ) }, { .clkdm_name ="l3_1_clkdm" , - .omap_chip =OMAP_CHIP_INIT (CHIP_IS_OMAP4430 ) + .omap_chip =OMAP_CHIP_INIT (CHIP_IS_OMAP44XX ) }, { .clkdm_name ="l3_emif_clkdm" , - .omap_chip =OMAP_CHIP_INIT (CHIP_IS_OMAP4430 ) + .omap_chip =OMAP_CHIP_INIT (CHIP_IS_OMAP44XX ) }, {NULL }, };
@@ -144,11 +144,11 @@ static struct clkdm_dep iss_wkup_sleep_deps[] = {static struct clkdm_dep ivahd_wkup_sleep_deps[] = { { .clkdm_name ="l3_1_clkdm" , - .omap_chip =OMAP_CHIP_INIT (CHIP_IS_OMAP4430 ) + .omap_chip =OMAP_CHIP_INIT (CHIP_IS_OMAP44XX ) }, { .clkdm_name ="l3_emif_clkdm" , - .omap_chip =OMAP_CHIP_INIT (CHIP_IS_OMAP4430 ) + .omap_chip =OMAP_CHIP_INIT (CHIP_IS_OMAP44XX ) }, {NULL }, };
@@ -156,47 +156,47 @@ static struct clkdm_dep ivahd_wkup_sleep_deps[] = {static struct clkdm_dep l3_dma_wkup_sleep_deps[] = { { .clkdm_name ="abe_clkdm" , - .omap_chip =OMAP_CHIP_INIT (CHIP_IS_OMAP4430 ) + .omap_chip =OMAP_CHIP_INIT (CHIP_IS_OMAP44XX ) }, { .clkdm_name ="ducati_clkdm" , - .omap_chip =OMAP_CHIP_INIT (CHIP_IS_OMAP4430 ) + .omap_chip =OMAP_CHIP_INIT (CHIP_IS_OMAP44XX ) }, { .clkdm_name ="ivahd_clkdm" , - .omap_chip =OMAP_CHIP_INIT (CHIP_IS_OMAP4430 ) + .omap_chip =OMAP_CHIP_INIT (CHIP_IS_OMAP44XX ) }, { .clkdm_name ="l3_1_clkdm" , - .omap_chip =OMAP_CHIP_INIT (CHIP_IS_OMAP4430 ) + .omap_chip =OMAP_CHIP_INIT (CHIP_IS_OMAP44XX ) }, { .clkdm_name ="l3_dss_clkdm" , - .omap_chip =OMAP_CHIP_INIT (CHIP_IS_OMAP4430 ) + .omap_chip =OMAP_CHIP_INIT (CHIP_IS_OMAP44XX ) }, { .clkdm_name ="l3_emif_clkdm" , - .omap_chip =OMAP_CHIP_INIT (CHIP_IS_OMAP4430 ) + .omap_chip =OMAP_CHIP_INIT (CHIP_IS_OMAP44XX ) }, { .clkdm_name ="l3_init_clkdm" , - .omap_chip =OMAP_CHIP_INIT (CHIP_IS_OMAP4430 ) + .omap_chip =OMAP_CHIP_INIT (CHIP_IS_OMAP44XX ) }, { .clkdm_name ="l4_cfg_clkdm" , - .omap_chip =OMAP_CHIP_INIT (CHIP_IS_OMAP4430 ) + .omap_chip =OMAP_CHIP_INIT (CHIP_IS_OMAP44XX ) }, { .clkdm_name ="l4_per_clkdm" , - .omap_chip =OMAP_CHIP_INIT (CHIP_IS_OMAP4430 ) + .omap_chip =OMAP_CHIP_INIT (CHIP_IS_OMAP44XX ) }, { .clkdm_name ="l4_secure_clkdm" , - .omap_chip =OMAP_CHIP_INIT (CHIP_IS_OMAP4430 ) + .omap_chip =OMAP_CHIP_INIT (CHIP_IS_OMAP44XX ) }, { .clkdm_name ="l4_wkup_clkdm" , - .omap_chip =OMAP_CHIP_INIT (CHIP_IS_OMAP4430 ) + .omap_chip =OMAP_CHIP_INIT (CHIP_IS_OMAP44XX ) }, {NULL }, };
@@ -204,15 +204,15 @@ static struct clkdm_dep l3_dma_wkup_sleep_deps[] = {static struct clkdm_dep l3_dss_wkup_sleep_deps[] = { { .clkdm_name ="ivahd_clkdm" , - .omap_chip =OMAP_CHIP_INIT (CHIP_IS_OMAP4430 ) + .omap_chip =OMAP_CHIP_INIT (CHIP_IS_OMAP44XX ) }, { .clkdm_name ="l3_2_clkdm" , - .omap_chip =OMAP_CHIP_INIT (CHIP_IS_OMAP4430 ) + .omap_chip =OMAP_CHIP_INIT (CHIP_IS_OMAP44XX ) }, { .clkdm_name ="l3_emif_clkdm" , - .omap_chip =OMAP_CHIP_INIT (CHIP_IS_OMAP4430 ) + .omap_chip =OMAP_CHIP_INIT (CHIP_IS_OMAP44XX ) }, {NULL }, };
@@ -220,15 +220,15 @@ static struct clkdm_dep l3_dss_wkup_sleep_deps[] = {static struct clkdm_dep l3_gfx_wkup_sleep_deps[] = { { .clkdm_name ="ivahd_clkdm" , - .omap_chip =OMAP_CHIP_INIT (CHIP_IS_OMAP4430 ) + .omap_chip =OMAP_CHIP_INIT (CHIP_IS_OMAP44XX ) }, { .clkdm_name ="l3_1_clkdm" , - .omap_chip =OMAP_CHIP_INIT (CHIP_IS_OMAP4430 ) + .omap_chip =OMAP_CHIP_INIT (CHIP_IS_OMAP44XX ) }, { .clkdm_name ="l3_emif_clkdm" , - .omap_chip =OMAP_CHIP_INIT (CHIP_IS_OMAP4430 ) + .omap_chip =OMAP_CHIP_INIT (CHIP_IS_OMAP44XX ) }, {NULL }, };
@@ -236,31 +236,31 @@ static struct clkdm_dep l3_gfx_wkup_sleep_deps[] = {static struct clkdm_dep l3_init_wkup_sleep_deps[] = { { .clkdm_name ="abe_clkdm" , - .omap_chip =OMAP_CHIP_INIT (CHIP_IS_OMAP4430 ) + .omap_chip =OMAP_CHIP_INIT (CHIP_IS_OMAP44XX ) }, { .clkdm_name ="ivahd_clkdm" , - .omap_chip =OMAP_CHIP_INIT (CHIP_IS_OMAP4430 ) + .omap_chip =OMAP_CHIP_INIT (CHIP_IS_OMAP44XX ) }, { .clkdm_name ="l3_emif_clkdm" , - .omap_chip =OMAP_CHIP_INIT (CHIP_IS_OMAP4430 ) + .omap_chip =OMAP_CHIP_INIT (CHIP_IS_OMAP44XX ) }, { .clkdm_name ="l4_cfg_clkdm" , - .omap_chip =OMAP_CHIP_INIT (CHIP_IS_OMAP4430 ) + .omap_chip =OMAP_CHIP_INIT (CHIP_IS_OMAP44XX ) }, { .clkdm_name ="l4_per_clkdm" , - .omap_chip =OMAP_CHIP_INIT (CHIP_IS_OMAP4430 ) + .omap_chip =OMAP_CHIP_INIT (CHIP_IS_OMAP44XX ) }, { .clkdm_name ="l4_secure_clkdm" , - .omap_chip =OMAP_CHIP_INIT (CHIP_IS_OMAP4430 ) + .omap_chip =OMAP_CHIP_INIT (CHIP_IS_OMAP44XX ) }, { .clkdm_name ="l4_wkup_clkdm" , - .omap_chip =OMAP_CHIP_INIT (CHIP_IS_OMAP4430 ) + .omap_chip =OMAP_CHIP_INIT (CHIP_IS_OMAP44XX ) }, {NULL }, };
@@ -268,15 +268,15 @@ static struct clkdm_dep l3_init_wkup_sleep_deps[] = {static struct clkdm_dep l4_secure_wkup_sleep_deps[] = { { .clkdm_name ="l3_1_clkdm" , - .omap_chip =OMAP_CHIP_INIT (CHIP_IS_OMAP4430 ) + .omap_chip =OMAP_CHIP_INIT (CHIP_IS_OMAP44XX ) }, { .clkdm_name ="l3_emif_clkdm" , - .omap_chip =OMAP_CHIP_INIT (CHIP_IS_OMAP4430 ) + .omap_chip =OMAP_CHIP_INIT (CHIP_IS_OMAP44XX ) }, { .clkdm_name ="l4_per_clkdm" , - .omap_chip =OMAP_CHIP_INIT (CHIP_IS_OMAP4430 ) + .omap_chip =OMAP_CHIP_INIT (CHIP_IS_OMAP44XX ) }, {NULL }, };
@@ -284,59 +284,59 @@ static struct clkdm_dep l4_secure_wkup_sleep_deps[] = {static struct clkdm_dep mpu_wkup_sleep_deps[] = { { .clkdm_name ="abe_clkdm" , - .omap_chip =OMAP_CHIP_INIT (CHIP_IS_OMAP4430 ) + .omap_chip =OMAP_CHIP_INIT (CHIP_IS_OMAP44XX ) }, { .clkdm_name ="ducati_clkdm" , - .omap_chip =OMAP_CHIP_INIT (CHIP_IS_OMAP4430 ) + .omap_chip =OMAP_CHIP_INIT (CHIP_IS_OMAP44XX ) }, { .clkdm_name ="ivahd_clkdm" , - .omap_chip =OMAP_CHIP_INIT (CHIP_IS_OMAP4430 ) + .omap_chip =OMAP_CHIP_INIT (CHIP_IS_OMAP44XX ) }, { .clkdm_name ="l3_1_clkdm" , - .omap_chip =OMAP_CHIP_INIT (CHIP_IS_OMAP4430 ) + .omap_chip =OMAP_CHIP_INIT (CHIP_IS_OMAP44XX ) }, { .clkdm_name ="l3_2_clkdm" , - .omap_chip =OMAP_CHIP_INIT (CHIP_IS_OMAP4430 ) + .omap_chip =OMAP_CHIP_INIT (CHIP_IS_OMAP44XX ) }, { .clkdm_name ="l3_dss_clkdm" , - .omap_chip =OMAP_CHIP_INIT (CHIP_IS_OMAP4430 ) + .omap_chip =OMAP_CHIP_INIT (CHIP_IS_OMAP44XX ) }, { .clkdm_name ="l3_emif_clkdm" , - .omap_chip =OMAP_CHIP_INIT (CHIP_IS_OMAP4430 ) + .omap_chip =OMAP_CHIP_INIT (CHIP_IS_OMAP44XX ) }, { .clkdm_name ="l3_gfx_clkdm" , - .omap_chip =OMAP_CHIP_INIT (CHIP_IS_OMAP4430 ) + .omap_chip =OMAP_CHIP_INIT (CHIP_IS_OMAP44XX ) }, { .clkdm_name ="l3_init_clkdm" , - .omap_chip =OMAP_CHIP_INIT (CHIP_IS_OMAP4430 ) + .omap_chip =OMAP_CHIP_INIT (CHIP_IS_OMAP44XX ) }, { .clkdm_name ="l4_cfg_clkdm" , - .omap_chip =OMAP_CHIP_INIT (CHIP_IS_OMAP4430 ) + .omap_chip =OMAP_CHIP_INIT (CHIP_IS_OMAP44XX ) }, { .clkdm_name ="l4_per_clkdm" , - .omap_chip =OMAP_CHIP_INIT (CHIP_IS_OMAP4430 ) + .omap_chip =OMAP_CHIP_INIT (CHIP_IS_OMAP44XX ) }, { .clkdm_name ="l4_secure_clkdm" , - .omap_chip =OMAP_CHIP_INIT (CHIP_IS_OMAP4430 ) + .omap_chip =OMAP_CHIP_INIT (CHIP_IS_OMAP44XX ) }, { .clkdm_name ="l4_wkup_clkdm" , - .omap_chip =OMAP_CHIP_INIT (CHIP_IS_OMAP4430 ) + .omap_chip =OMAP_CHIP_INIT (CHIP_IS_OMAP44XX ) }, { .clkdm_name ="tesla_clkdm" , - .omap_chip =OMAP_CHIP_INIT (CHIP_IS_OMAP4430 ) + .omap_chip =OMAP_CHIP_INIT (CHIP_IS_OMAP44XX ) }, {NULL }, };
@@ -344,39 +344,39 @@ static struct clkdm_dep mpu_wkup_sleep_deps[] = {static struct clkdm_dep tesla_wkup_sleep_deps[] = { { .clkdm_name ="abe_clkdm" , - .omap_chip =OMAP_CHIP_INIT (CHIP_IS_OMAP4430 ) + .omap_chip =OMAP_CHIP_INIT (CHIP_IS_OMAP44XX ) }, { .clkdm_name ="ivahd_clkdm" , - .omap_chip =OMAP_CHIP_INIT (CHIP_IS_OMAP4430 ) + .omap_chip =OMAP_CHIP_INIT (CHIP_IS_OMAP44XX ) }, { .clkdm_name ="l3_1_clkdm" , - .omap_chip =OMAP_CHIP_INIT (CHIP_IS_OMAP4430 ) + .omap_chip =OMAP_CHIP_INIT (CHIP_IS_OMAP44XX ) }, { .clkdm_name ="l3_2_clkdm" , - .omap_chip =OMAP_CHIP_INIT (CHIP_IS_OMAP4430 ) + .omap_chip =OMAP_CHIP_INIT (CHIP_IS_OMAP44XX ) }, { .clkdm_name ="l3_emif_clkdm" , - .omap_chip =OMAP_CHIP_INIT (CHIP_IS_OMAP4430 ) + .omap_chip =OMAP_CHIP_INIT (CHIP_IS_OMAP44XX ) }, { .clkdm_name ="l3_init_clkdm" , - .omap_chip =OMAP_CHIP_INIT (CHIP_IS_OMAP4430 ) + .omap_chip =OMAP_CHIP_INIT (CHIP_IS_OMAP44XX ) }, { .clkdm_name ="l4_cfg_clkdm" , - .omap_chip =OMAP_CHIP_INIT (CHIP_IS_OMAP4430 ) + .omap_chip =OMAP_CHIP_INIT (CHIP_IS_OMAP44XX ) }, { .clkdm_name ="l4_per_clkdm" , - .omap_chip =OMAP_CHIP_INIT (CHIP_IS_OMAP4430 ) + .omap_chip =OMAP_CHIP_INIT (CHIP_IS_OMAP44XX ) }, { .clkdm_name ="l4_wkup_clkdm" , - .omap_chip =OMAP_CHIP_INIT (CHIP_IS_OMAP4430 ) + .omap_chip =OMAP_CHIP_INIT (CHIP_IS_OMAP44XX ) }, {NULL }, };
@@ -388,7 +388,7 @@ static struct clockdomain l4_cefuse_44xx_clkdm = { .cm_inst = OMAP4430_CM2_CEFUSE_INST, .clkdm_offs = OMAP4430_CM2_CEFUSE_CEFUSE_CDOFFS, .flags = CLKDM_CAN_FORCE_WAKEUP | CLKDM_CAN_HWSUP, - .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP4430), + .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP44XX), };static struct clockdomain l4_cfg_44xx_clkdm = {
@@ -399,7 +399,7 @@ static struct clockdomain l4_cfg_44xx_clkdm = { .clkdm_offs = OMAP4430_CM2_CORE_L4CFG_CDOFFS, .dep_bit = OMAP4430_L4CFG_STATDEP_SHIFT, .flags = CLKDM_CAN_HWSUP, - .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP4430), + .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP44XX), };static struct clockdomain tesla_44xx_clkdm = {
@@ -412,7 +412,7 @@ static struct clockdomain tesla_44xx_clkdm = { .wkdep_srcs = tesla_wkup_sleep_deps, .sleepdep_srcs = tesla_wkup_sleep_deps, .flags = CLKDM_CAN_HWSUP_SWSUP, - .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP4430), + .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP44XX), };static struct clockdomain l3_gfx_44xx_clkdm = {
@@ -425,7 +425,7 @@ static struct clockdomain l3_gfx_44xx_clkdm = { .wkdep_srcs = l3_gfx_wkup_sleep_deps, .sleepdep_srcs = l3_gfx_wkup_sleep_deps, .flags = CLKDM_CAN_HWSUP_SWSUP, - .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP4430), + .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP44XX), };static struct clockdomain ivahd_44xx_clkdm = {
@@ -438,7 +438,7 @@ static struct clockdomain ivahd_44xx_clkdm = { .wkdep_srcs = ivahd_wkup_sleep_deps, .sleepdep_srcs = ivahd_wkup_sleep_deps, .flags = CLKDM_CAN_HWSUP_SWSUP, - .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP4430), + .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP44XX), };static struct clockdomain l4_secure_44xx_clkdm = {
@@ -451,7 +451,7 @@ static struct clockdomain l4_secure_44xx_clkdm = { .wkdep_srcs = l4_secure_wkup_sleep_deps, .sleepdep_srcs = l4_secure_wkup_sleep_deps, .flags = CLKDM_CAN_HWSUP_SWSUP, - .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP4430), + .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP44XX), };static struct clockdomain l4_per_44xx_clkdm = {
@@ -462,7 +462,7 @@ static struct clockdomain l4_per_44xx_clkdm = { .clkdm_offs = OMAP4430_CM2_L4PER_L4PER_CDOFFS, .dep_bit = OMAP4430_L4PER_STATDEP_SHIFT, .flags = CLKDM_CAN_HWSUP_SWSUP, - .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP4430), + .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP44XX), };static struct clockdomain abe_44xx_clkdm = {
@@ -473,7 +473,7 @@ static struct clockdomain abe_44xx_clkdm = { .clkdm_offs = OMAP4430_CM1_ABE_ABE_CDOFFS, .dep_bit = OMAP4430_ABE_STATDEP_SHIFT, .flags = CLKDM_CAN_HWSUP_SWSUP, - .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP4430), + .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP44XX), };static struct clockdomain l3_instr_44xx_clkdm = {
@@ -482,7 +482,7 @@ static struct clockdomain l3_instr_44xx_clkdm = { .prcm_partition = OMAP4430_CM2_PARTITION, .cm_inst = OMAP4430_CM2_CORE_INST, .clkdm_offs = OMAP4430_CM2_CORE_L3INSTR_CDOFFS, - .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP4430), + .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP44XX), };static struct clockdomain l3_init_44xx_clkdm = {
@@ -495,7 +495,7 @@ static struct clockdomain l3_init_44xx_clkdm = { .wkdep_srcs = l3_init_wkup_sleep_deps, .sleepdep_srcs = l3_init_wkup_sleep_deps, .flags = CLKDM_CAN_HWSUP_SWSUP, - .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP4430), + .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP44XX), };static struct clockdomain d2d_44xx_clkdm = {
@@ -507,7 +507,7 @@ static struct clockdomain d2d_44xx_clkdm = { .wkdep_srcs = d2d_wkup_sleep_deps, .sleepdep_srcs = d2d_wkup_sleep_deps, .flags = CLKDM_CAN_FORCE_WAKEUP | CLKDM_CAN_HWSUP, - .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP4430), + .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP44XX), };static struct clockdomain mpu0_44xx_clkdm = {
@@ -517,7 +517,7 @@ static struct clockdomain mpu0_44xx_clkdm = { .cm_inst = OMAP4430_PRCM_MPU_CPU0_INST, .clkdm_offs = OMAP4430_PRCM_MPU_CPU0_CPU0_CDOFFS, .flags = CLKDM_CAN_FORCE_WAKEUP | CLKDM_CAN_HWSUP, - .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP4430), + .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP44XX), };static struct clockdomain mpu1_44xx_clkdm = {
@@ -527,7 +527,7 @@ static struct clockdomain mpu1_44xx_clkdm = { .cm_inst = OMAP4430_PRCM_MPU_CPU1_INST, .clkdm_offs = OMAP4430_PRCM_MPU_CPU1_CPU1_CDOFFS, .flags = CLKDM_CAN_FORCE_WAKEUP | CLKDM_CAN_HWSUP, - .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP4430), + .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP44XX), };static struct clockdomain l3_emif_44xx_clkdm = {
@@ -538,7 +538,7 @@ static struct clockdomain l3_emif_44xx_clkdm = { .clkdm_offs = OMAP4430_CM2_CORE_MEMIF_CDOFFS, .dep_bit = OMAP4430_MEMIF_STATDEP_SHIFT, .flags = CLKDM_CAN_FORCE_WAKEUP | CLKDM_CAN_HWSUP, - .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP4430), + .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP44XX), };static struct clockdomain l4_ao_44xx_clkdm = {
@@ -548,7 +548,7 @@ static struct clockdomain l4_ao_44xx_clkdm = { .cm_inst = OMAP4430_CM2_ALWAYS_ON_INST, .clkdm_offs = OMAP4430_CM2_ALWAYS_ON_ALWON_CDOFFS, .flags = CLKDM_CAN_FORCE_WAKEUP | CLKDM_CAN_HWSUP, - .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP4430), + .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP44XX), };static struct clockdomain ducati_44xx_clkdm = {
@@ -561,7 +561,7 @@ static struct clockdomain ducati_44xx_clkdm = { .wkdep_srcs = ducati_wkup_sleep_deps, .sleepdep_srcs = ducati_wkup_sleep_deps, .flags = CLKDM_CAN_HWSUP_SWSUP, - .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP4430), + .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP44XX), };static struct clockdomain mpu_44xx_clkdm = {
@@ -573,7 +573,7 @@ static struct clockdomain mpu_44xx_clkdm = { .wkdep_srcs = mpu_wkup_sleep_deps, .sleepdep_srcs = mpu_wkup_sleep_deps, .flags = CLKDM_CAN_FORCE_WAKEUP | CLKDM_CAN_HWSUP, - .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP4430), + .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP44XX), };static struct clockdomain l3_2_44xx_clkdm = {
@@ -584,7 +584,7 @@ static struct clockdomain l3_2_44xx_clkdm = { .clkdm_offs = OMAP4430_CM2_CORE_L3_2_CDOFFS, .dep_bit = OMAP4430_L3_2_STATDEP_SHIFT, .flags = CLKDM_CAN_HWSUP, - .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP4430), + .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP44XX), };static struct clockdomain l3_1_44xx_clkdm = {
@@ -595,7 +595,7 @@ static struct clockdomain l3_1_44xx_clkdm = { .clkdm_offs = OMAP4430_CM2_CORE_L3_1_CDOFFS, .dep_bit = OMAP4430_L3_1_STATDEP_SHIFT, .flags = CLKDM_CAN_HWSUP, - .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP4430), + .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP44XX), };static struct clockdomain iss_44xx_clkdm = {
@@ -607,7 +607,7 @@ static struct clockdomain iss_44xx_clkdm = { .wkdep_srcs = iss_wkup_sleep_deps, .sleepdep_srcs = iss_wkup_sleep_deps, .flags = CLKDM_CAN_HWSUP_SWSUP, - .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP4430), + .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP44XX), };static struct clockdomain l3_dss_44xx_clkdm = {
@@ -620,7 +620,7 @@ static struct clockdomain l3_dss_44xx_clkdm = { .wkdep_srcs = l3_dss_wkup_sleep_deps, .sleepdep_srcs = l3_dss_wkup_sleep_deps, .flags = CLKDM_CAN_HWSUP_SWSUP, - .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP4430), + .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP44XX), };static struct clockdomain l4_wkup_44xx_clkdm = {
@@ -631,7 +631,7 @@ static struct clockdomain l4_wkup_44xx_clkdm = { .clkdm_offs = OMAP4430_PRM_WKUP_CM_WKUP_CDOFFS, .dep_bit = OMAP4430_L4WKUP_STATDEP_SHIFT, .flags = CLKDM_CAN_HWSUP, - .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP4430), + .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP44XX), };static struct clockdomain emu_sys_44xx_clkdm = {
@@ -641,7 +641,7 @@ static struct clockdomain emu_sys_44xx_clkdm = { .cm_inst = OMAP4430_PRM_EMU_CM_INST, .clkdm_offs = OMAP4430_PRM_EMU_CM_EMU_CDOFFS, .flags = CLKDM_CAN_HWSUP, - .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP4430), + .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP44XX), };static struct clockdomain l3_dma_44xx_clkdm = {
@@ -653,7 +653,7 @@ static struct clockdomain l3_dma_44xx_clkdm = { .wkdep_srcs = l3_dma_wkup_sleep_deps, .sleepdep_srcs = l3_dma_wkup_sleep_deps, .flags = CLKDM_CAN_FORCE_WAKEUP | CLKDM_CAN_HWSUP, - .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP4430), + .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP44XX), };/* As clockdomains are added or removed above, this list must also be changed */
Signature · 1 line
1.7.4.1
Paul Walmsley
maintainerPATCH v2 6/6 OMAP4: clockdomain: Reuse on 4460 using CHIP_IS_44XX
Quoted 8 lines · Rajendra Nayak
The 4460 platform has no difference in the clockdomains as compared to the 4430 platform. Hence just update the .omap_chip field to make sure the same clockdomain data can be reused on the 4460 platform.
Signed-off-by Rajendra Nayak <[email protected]>Signed-off-by Nishanth Menon <[email protected]>Signed-off-by Benoit Cousson <[email protected]>Reviewed-by Kevin Hilman <[email protected]>
- Paul
Paul Walmsley
maintainerPATCH v2 5/6 OMAP4: powerdomain: Reuse on 4460 using CHIP_IS_44XX
In reply to Rajendra NayakQuoted 8 lines · Rajendra Nayak
The 4460 platform has no difference in the powerdomains as compared to the 4430 platform. Hence just update the .omap_chip field to make sure the same powerdomain data can be reused on the 4460 platform.
Signed-off-by Rajendra Nayak <[email protected]>Signed-off-by Nishanth Menon <[email protected]>Signed-off-by Benoit Cousson <[email protected]>Reviewed-by Kevin Hilman <[email protected]>
- Paul
Paul Walmsley
maintainerPATCH v2 4/6 OMAP4: clocks: Update the clock tree with 4460 clock nodes
In reply to Rajendra NayakQuoted 7 lines · Rajendra Nayak
Add the new clock nodes (
bandgap_ts_fclk,div_ts_ck) for omap4460. Handle these nodes using the clock flags (CK_*).Signed-off-by Rajendra Nayak <[email protected]>Signed-off-by Nishanth Menon <[email protected]>Signed-off-by Benoit Cousson <[email protected]>Reviewed-by Kevin Hilman <[email protected]>
Is this data coming from autogenerator scripts that have been checked into that repository, or have these been hand-edited?
Also, this isn't the complete set of clock changes needed for full 4460 support, right? I'm thinking of the duty cycle correction changes described in TRM 3.6.3.7.2 "Tactical Clocking Adjustment". Are those planned to go into a future patch?
- Paul
PATCH v2 4/6 OMAP4: clocks: Update the clock tree with 4460 clock nodes
Quoted 5 lines · Paul Walmsley
Quoted 3 lines · Rajendra Nayak
Add the new clock nodes (
bandgap_ts_fclk,div_ts_ck) for omap4460. Handle these nodes using the clock flags (CK_*).
Quoted 7 lines
Quoted 4 lines
Signed-off-by Rajendra Nayak<[email protected]>Signed-off-by Nishanth Menon<[email protected]>Signed-off-by Benoit Cousson<[email protected]>Reviewed-by Kevin Hilman<[email protected]>Is this data coming from autogenerator scripts that have been checked into that repository, or have these been hand-edited?
They have been hand edited to create a diff from the 4430 autogen output and 4460 autogen output.
Quoted 5 lines
Also, this isn't the complete set of clock changes needed for full 4460 support, right? I'm thinking of the duty cycle correction changes described in TRM 3.6.3.7.2 "Tactical Clocking Adjustment". Are those planned to go into a future patch?
Yes, this series was targeted at providing basic boot support. I was planning to add the DCC changes as part of the next series.
regards,
Rajendra
Quoted 3 lines
- Paul
Paul Walmsley
maintainerPATCH v2 4/6 OMAP4: clocks: Update the clock tree with 4460 clock nodes
Quoted 18 lines · Rajendra Nayak
Quoted 5 lines · Paul Walmsley
Quoted 3 lines · Rajendra Nayak
Add the new clock nodes (
bandgap_ts_fclk,div_ts_ck) for omap4460. Handle these nodes using the clock flags (CK_*).Quoted 7 lines
Quoted 4 lines
Signed-off-by Rajendra Nayak<[email protected]>Signed-off-by Nishanth Menon<[email protected]>Signed-off-by Benoit Cousson<[email protected]>Reviewed-by Kevin Hilman<[email protected]>Is this data coming from autogenerator scripts that have been checked into that repository, or have these been hand-edited?
They have been hand edited to create a diff from the 4430 autogen output and 4460 autogen output.
Quoted 1 line
Quoted 7 lines
Quoted 4 lines
Also, this isn't the complete set of clock changes needed for full 4460 support, right? I'm thinking of the duty cycle correction changes described in TRM 3.6.3.7.2 "Tactical Clocking Adjustment". Are those planned to go into a future patch?
Yes, this series was targeted at providing basic boot support. I was planning to add the DCC changes as part of the next series.
Okay.
- Paul
Tony Lindgren
maintainerPATCH v2 4/6 OMAP4: clocks: Update the clock tree with 4460 clock nodes
Quoted 25 lines · Paul Walmsley
Quoted 23 lines · Rajendra Nayak
Quoted 5 lines · Paul Walmsley
Quoted 3 lines · Rajendra Nayak
Add the new clock nodes (
bandgap_ts_fclk,div_ts_ck) for omap4460. Handle these nodes using the clock flags (CK_*).Quoted 7 lines
Quoted 4 lines
Signed-off-by Rajendra Nayak<[email protected]>Signed-off-by Nishanth Menon<[email protected]>Signed-off-by Benoit Cousson<[email protected]>Reviewed-by Kevin Hilman<[email protected]>Is this data coming from autogenerator scripts that have been checked into that repository, or have these been hand-edited?
They have been hand edited to create a diff from the 4430 autogen output and 4460 autogen output.
Quoted 5 lines
Also, this isn't the complete set of clock changes needed for full 4460 support, right? I'm thinking of the duty cycle correction changes described in TRM 3.6.3.7.2 "Tactical Clocking Adjustment". Are those planned to go into a future patch?
Quoted 6 lines
Quoted 2 lines
Yes, this series was targeted at providing basic boot support. I was planning to add the DCC changes as part of the next series.
Okay.
Acked-by Paul Walmsley <[email protected]>
Updated patch below.
Tony
From: Rajendra Nayak <[email protected]>
Date: Sat, 2 Jul 2011 08:00:24 +0530
Subject: [PATCH] OMAP4: clocks: Update the clock tree with 4460 clock nodes
Add the new clock nodes (bandgap_ts_fclk, div_ts_ck) for omap4460. Handle these nodes using the clock flags (CK_*).
arch/arm/mach-omap2/clock44xx_data.c +39 -0
@@ -1486,6 +1486,40 @@ static struct clk dss_dss_clk = { .recalc = &followparent_recalc, }; +static const struct clksel_rate div3_8to32_rates[] = { + { .div =8 , .val =0 , .flags =RATE_IN_44XX }, + { .div =16 , .val =1 , .flags =RATE_IN_44XX }, + { .div =32 , .val =2 , .flags =RATE_IN_44XX }, + { .div =0 }, +}; + +static const struct clksel div_ts_div[] = { + { .parent = &l4_wkup_clk_mux_ck, .rates = div3_8to32_rates }, + { .parent =NULL }, +}; + +static struct clk div_ts_ck = { + .name ="div_ts_ck" , + .parent = &l4_wkup_clk_mux_ck, + .clksel = div_ts_div, + .clksel_reg =OMAP4430_CM_WKUP_BANDGAP_CLKCTRL , + .clksel_mask =OMAP4430_CLKSEL_24_25_MASK , + .ops = &clkops_null, + .recalc = &omap2_clksel_recalc, + .round_rate = &omap2_clksel_round_rate, + .set_rate = &omap2_clksel_set_rate, +}; + +static struct clk bandgap_ts_fclk = { + .name ="bandgap_ts_fclk" , + .ops = &clkops_omap2_dflt, + .enable_reg =OMAP4430_CM_WKUP_BANDGAP_CLKCTRL , + .enable_bit =OMAP4460_OPTFCLKEN_TS_FCLK_SHIFT , + .clkdm_name ="l4_wkup_clkdm" , + .parent = &div_ts_ck, + .recalc = &followparent_recalc, +}; +static struct clk dss_48mhz_clk = { .name ="dss_48mhz_clk" , .ops = &clkops_omap2_dflt,
@@ -3110,7 +3144,9 @@ static struct omap_clk omap44xx_clks[] = {CLK (NULL ,"aes2_fck" , &aes2_fck,CK_443X ),CLK (NULL ,"aess_fck" , &aess_fck,CK_443X ),CLK (NULL ,"bandgap_fclk" , &bandgap_fclk,CK_443X ), +CLK (NULL ,"bandgap_ts_fclk" , &bandgap_ts_fclk,CK_446X ),CLK (NULL ,"des3des_fck" , &des3des_fck,CK_443X ), +CLK (NULL ,"div_ts_ck" , &div_ts_ck,CK_446X ),CLK (NULL ,"dmic_sync_mux_ck" , &dmic_sync_mux_ck,CK_443X ),CLK (NULL ,"dmic_fck" , &dmic_fck,CK_443X ), CLK(NULL, "dsp_fck", &dsp_fck, CK_443X),
@@ -3293,6 +3329,9 @@ int __init omap4xxx_clk_init(void)if (cpu_is_omap44xx ()) { cpu_mask =RATE_IN_4430 ; cpu_clkflg =CK_443X ; + }else if (cpu_is_omap446x ()) { + cpu_mask =RATE_IN_4460 ; + cpu_clkflg =CK_446X ; }clk_init (&omap2_clk_functions);
arch/arm/plat-omap/include/plat/clkdev_omap.h +1 -0
@@ -39,6 +39,7 @@ struct omap_clk {#define CK_36XX (1 << 10)/* 36xx/37xx-specific clocks */ #define CK_443X (1 << 11)#define CK_TI816X (1 << 12) +#define CK_446X (1 << 13)#define CK_34XX (CK_3430ES1 | CK_3430ES2PLUS)
arch/arm/plat-omap/include/plat/clock.h +2 -0
@@ -58,10 +58,12 @@ struct clkops {#define RATE_IN_36XX (1 << 4)#define RATE_IN_4430 (1 << 5)#define RATE_IN_TI816X (1 << 6) +#define RATE_IN_4460 (1 << 7)#define RATE_IN_24XX (RATE_IN_242X | RATE_IN_243X)#define RATE_IN_34XX (RATE_IN_3430ES1 | RATE_IN_3430ES2PLUS)#define RATE_IN_3XXX (RATE_IN_34XX | RATE_IN_36XX) +#define RATE_IN_44XX (RATE_IN_4430 | RATE_IN_4460)/* RATE_IN_3430ES2PLUS_36XX includes 34xx/35xx with ES >=2, and all 36xx/37xx */ #define RATE_IN_3430ES2PLUS_36XX (RATE_IN_3430ES2PLUS | RATE_IN_36XX)
Paul Walmsley
maintainerPATCH v2 3/6 OMAP4: PRCM: OMAP4460 specific PRM and CM register bitshifts
In reply to Rajendra NayakHi Rajendra
Quoted 7 lines · Rajendra Nayak
This patch adds additional register bitshifts for registers added in OMAP4460 platform.
Signed-off-by Rajendra Nayak <[email protected]>Signed-off-by Nishanth Menon <[email protected]>Signed-off-by Benoit Cousson <[email protected]>Reviewed-by Kevin Hilman <[email protected]>
Does this data come from the autogenerator scripts?
- Paul
Quoted 123 lines
--- arch/arm/mach-omap2/cm-regbits-44xx.h | 36 ++++++++++++++++++++++++++++++++ arch/arm/mach-omap2/prm-regbits-44xx.h | 8 +++++++ 2 files changed, 44 insertions(+), 0 deletions(-)arch/arm/mach-omap2/cm-regbits-44xx.h +36
-0@@ -101,6 +101,10 @@#define OMAP4430_CLKACTIVITY_CORE_DPLL_EMU_CLK_SHIFT 9#define OMAP4430_CLKACTIVITY_CORE_DPLL_EMU_CLK_MASK (1 << 9) +/* Used by CM_L4CFG_CLKSTCTRL */ +#define OMAP4460_CLKACTIVITY_CORE_TS_GFCLK_SHIFT 9 +#define OMAP4460_CLKACTIVITY_CORE_TS_GFCLK_MASK (1 << 9) +/* Used by CM_CEFUSE_CLKSTCTRL */ #define OMAP4430_CLKACTIVITY_CUST_EFUSE_SYS_CLK_SHIFT 9#define OMAP4430_CLKACTIVITY_CUST_EFUSE_SYS_CLK_MASK (1 << 9)@@ -401,6 +405,10 @@#define OMAP4430_CLKACTIVITY_WKUP_32K_GFCLK_SHIFT 11#define OMAP4430_CLKACTIVITY_WKUP_32K_GFCLK_MASK (1 << 11) +/* Used by CM_WKUP_CLKSTCTRL */ +#define OMAP4460_CLKACTIVITY_WKUP_TS_GFCLK_SHIFT 13 +#define OMAP4460_CLKACTIVITY_WKUP_TS_GFCLK_MASK (1 << 13) +/* * Used by CM1_ABE_TIMER5_CLKCTRL, CM1_ABE_TIMER6_CLKCTRL, * CM1_ABE_TIMER7_CLKCTRL, CM1_ABE_TIMER8_CLKCTRL, CM_L3INIT_MMC1_CLKCTRL, @@ -431,6 +439,10 @@#define OMAP4430_CLKSEL_60M_SHIFT 24#define OMAP4430_CLKSEL_60M_MASK (1 << 24) +/* Used by CM_MPU_MPU_CLKCTRL */ +#define OMAP4460_CLKSEL_ABE_DIV_MODE_SHIFT 25 +#define OMAP4460_CLKSEL_ABE_DIV_MODE_MASK (1 << 25) +/* Used by CM1_ABE_AESS_CLKCTRL */ #define OMAP4430_CLKSEL_AESS_FCLK_SHIFT 24#define OMAP4430_CLKSEL_AESS_FCLK_MASK (1 << 24)@@ -447,6 +459,10 @@#define OMAP4430_CLKSEL_DIV_SHIFT 24#define OMAP4430_CLKSEL_DIV_MASK (1 << 24) +/* Used by CM_MPU_MPU_CLKCTRL */ +#define OMAP4460_CLKSEL_EMIF_DIV_MODE_SHIFT 24 +#define OMAP4460_CLKSEL_EMIF_DIV_MODE_MASK (1 << 24) +/* Used by CM_CAM_FDIF_CLKCTRL */ #define OMAP4430_CLKSEL_FCLK_SHIFT 24#define OMAP4430_CLKSEL_FCLK_MASK (0x3 << 24)@@ -542,6 +558,14 @@#define OMAP4430_D2D_STATDEP_SHIFT 18#define OMAP4430_D2D_STATDEP_MASK (1 << 18) +/* Used by CM_CLKSEL_DPLL_MPU */ +#define OMAP4460_DCC_COUNT_MAX_SHIFT 24 +#define OMAP4460_DCC_COUNT_MAX_MASK (0xff << 24) + +/* Used by CM_CLKSEL_DPLL_MPU */ +#define OMAP4460_DCC_EN_SHIFT 22 +#define OMAP4460_DCC_EN_MASK (1 << 22) +/* * Used by CM_SSC_DELTAMSTEP_DPLL_ABE, CM_SSC_DELTAMSTEP_DPLL_CORE, * CM_SSC_DELTAMSTEP_DPLL_DDRPHY, CM_SSC_DELTAMSTEP_DPLL_IVA, @@ -551,6 +575,10 @@#define OMAP4430_DELTAMSTEP_SHIFT 0#define OMAP4430_DELTAMSTEP_MASK (0xfffff << 0) +/* Renamed from DELTAMSTEP Used by CM_SSC_DELTAMSTEP_DPLL_USB */ +#define OMAP4460_DELTAMSTEP_0_20_SHIFT 0 +#define OMAP4460_DELTAMSTEP_0_20_MASK (0x1fffff << 0) +/* Used by CM_DLL_CTRL */ #define OMAP4430_DLL_OVERRIDE_SHIFT 0#define OMAP4430_DLL_OVERRIDE_MASK (1 << 0)@@ -1079,6 +1107,10 @@#define OMAP4430_MODULEMODE_SHIFT 0#define OMAP4430_MODULEMODE_MASK (0x3 << 0) +/* Used by CM_L4CFG_DYNAMICDEP */ +#define OMAP4460_MPU_DYNDEP_SHIFT 19 +#define OMAP4460_MPU_DYNDEP_MASK (1 << 19) +/* Used by CM_DSS_DSS_CLKCTRL */ #define OMAP4430_OPTFCLKEN_48MHZ_CLK_SHIFT 9#define OMAP4430_OPTFCLKEN_48MHZ_CLK_MASK (1 << 9)@@ -1171,6 +1203,10 @@#define OMAP4430_OPTFCLKEN_SYS_CLK_SHIFT 10#define OMAP4430_OPTFCLKEN_SYS_CLK_MASK (1 << 10) +/* Used by CM_WKUP_BANDGAP_CLKCTRL */ +#define OMAP4460_OPTFCLKEN_TS_FCLK_SHIFT 8 +#define OMAP4460_OPTFCLKEN_TS_FCLK_MASK (1 << 8) +/* Used by CM_DSS_DSS_CLKCTRL */ #define OMAP4430_OPTFCLKEN_TV_CLK_SHIFT 11#define OMAP4430_OPTFCLKEN_TV_CLK_MASK (1 << 11)arch/arm/mach-omap2/prm-regbits-44xx.h +8
-0@@ -282,6 +282,14 @@#define OMAP4430_DUCATI_UNICACHE_STATEST_SHIFT 10#define OMAP4430_DUCATI_UNICACHE_STATEST_MASK (0x3 << 10) +/* Used by PRM_DEVICE_OFF_CTRL */ +#define OMAP4460_EMIF1_OFFWKUP_DISABLE_SHIFT 8 +#define OMAP4460_EMIF1_OFFWKUP_DISABLE_MASK (1 << 8) + +/* Used by PRM_DEVICE_OFF_CTRL */ +#define OMAP4460_EMIF2_OFFWKUP_DISABLE_SHIFT 9 +#define OMAP4460_EMIF2_OFFWKUP_DISABLE_MASK (1 << 9) +/* Used by RM_MPU_RSTST */ #define OMAP4430_EMULATION_RST_SHIFT 0#define OMAP4430_EMULATION_RST_MASK (1 << 0)Signature · 1 line
1.7.4.1
- Paul
PATCH v2 3/6 OMAP4: PRCM: OMAP4460 specific PRM and CM register bitshifts
Hi Paul,
Quoted 7 lines · Paul Walmsley
Hi Rajendra
Quoted 3 lines · Rajendra Nayak
This patch adds additional register bitshifts for
registers added in OMAP4460 platform.
Quoted 6 lines
Quoted 4 lines
Signed-off-by Rajendra Nayak<[email protected]>Signed-off-by Nishanth Menon<[email protected]>Signed-off-by Benoit Cousson<[email protected]>Reviewed-by Kevin Hilman<[email protected]>Does this data come from the autogenerator scripts?
Yes, it does. But the patch is created by manually diffing the 4430 and 4460 autogen script outputs. That's because the autogen scripts cannot generate data for multiple SoC's at once.
regards,
Rajendra
Quoted 130 lines
- Paul
Quoted 121 lines
--- arch/arm/mach-omap2/cm-regbits-44xx.h | 36 ++++++++++++++++++++++++++++++++ arch/arm/mach-omap2/prm-regbits-44xx.h | 8 +++++++ 2 files changed, 44 insertions(+), 0 deletions(-)arch/arm/mach-omap2/cm-regbits-44xx.h +36
-0@@ -101,6 +101,10 @@#define OMAP4430_CLKACTIVITY_CORE_DPLL_EMU_CLK_SHIFT 9#define OMAP4430_CLKACTIVITY_CORE_DPLL_EMU_CLK_MASK (1<< 9) +/* Used by CM_L4CFG_CLKSTCTRL */ +#define OMAP4460_CLKACTIVITY_CORE_TS_GFCLK_SHIFT 9 +#define OMAP4460_CLKACTIVITY_CORE_TS_GFCLK_MASK (1<< 9) +/* Used by CM_CEFUSE_CLKSTCTRL */ #define OMAP4430_CLKACTIVITY_CUST_EFUSE_SYS_CLK_SHIFT 9#define OMAP4430_CLKACTIVITY_CUST_EFUSE_SYS_CLK_MASK (1<< 9)@@ -401,6 +405,10 @@#define OMAP4430_CLKACTIVITY_WKUP_32K_GFCLK_SHIFT 11#define OMAP4430_CLKACTIVITY_WKUP_32K_GFCLK_MASK (1<< 11) +/* Used by CM_WKUP_CLKSTCTRL */ +#define OMAP4460_CLKACTIVITY_WKUP_TS_GFCLK_SHIFT 13 +#define OMAP4460_CLKACTIVITY_WKUP_TS_GFCLK_MASK (1<< 13) +/* * Used by CM1_ABE_TIMER5_CLKCTRL, CM1_ABE_TIMER6_CLKCTRL, * CM1_ABE_TIMER7_CLKCTRL, CM1_ABE_TIMER8_CLKCTRL, CM_L3INIT_MMC1_CLKCTRL, @@ -431,6 +439,10 @@#define OMAP4430_CLKSEL_60M_SHIFT 24#define OMAP4430_CLKSEL_60M_MASK (1<< 24) +/* Used by CM_MPU_MPU_CLKCTRL */ +#define OMAP4460_CLKSEL_ABE_DIV_MODE_SHIFT 25 +#define OMAP4460_CLKSEL_ABE_DIV_MODE_MASK (1<< 25) +/* Used by CM1_ABE_AESS_CLKCTRL */ #define OMAP4430_CLKSEL_AESS_FCLK_SHIFT 24#define OMAP4430_CLKSEL_AESS_FCLK_MASK (1<< 24)@@ -447,6 +459,10 @@#define OMAP4430_CLKSEL_DIV_SHIFT 24#define OMAP4430_CLKSEL_DIV_MASK (1<< 24) +/* Used by CM_MPU_MPU_CLKCTRL */ +#define OMAP4460_CLKSEL_EMIF_DIV_MODE_SHIFT 24 +#define OMAP4460_CLKSEL_EMIF_DIV_MODE_MASK (1<< 24) +/* Used by CM_CAM_FDIF_CLKCTRL */ #define OMAP4430_CLKSEL_FCLK_SHIFT 24#define OMAP4430_CLKSEL_FCLK_MASK (0x3<< 24)@@ -542,6 +558,14 @@#define OMAP4430_D2D_STATDEP_SHIFT 18#define OMAP4430_D2D_STATDEP_MASK (1<< 18) +/* Used by CM_CLKSEL_DPLL_MPU */ +#define OMAP4460_DCC_COUNT_MAX_SHIFT 24 +#define OMAP4460_DCC_COUNT_MAX_MASK (0xff<< 24) + +/* Used by CM_CLKSEL_DPLL_MPU */ +#define OMAP4460_DCC_EN_SHIFT 22 +#define OMAP4460_DCC_EN_MASK (1<< 22) +/* * Used by CM_SSC_DELTAMSTEP_DPLL_ABE, CM_SSC_DELTAMSTEP_DPLL_CORE, * CM_SSC_DELTAMSTEP_DPLL_DDRPHY, CM_SSC_DELTAMSTEP_DPLL_IVA, @@ -551,6 +575,10 @@#define OMAP4430_DELTAMSTEP_SHIFT 0#define OMAP4430_DELTAMSTEP_MASK (0xfffff<< 0) +/* Renamed from DELTAMSTEP Used by CM_SSC_DELTAMSTEP_DPLL_USB */ +#define OMAP4460_DELTAMSTEP_0_20_SHIFT 0 +#define OMAP4460_DELTAMSTEP_0_20_MASK (0x1fffff<< 0) +/* Used by CM_DLL_CTRL */ #define OMAP4430_DLL_OVERRIDE_SHIFT 0#define OMAP4430_DLL_OVERRIDE_MASK (1<< 0)@@ -1079,6 +1107,10 @@#define OMAP4430_MODULEMODE_SHIFT 0#define OMAP4430_MODULEMODE_MASK (0x3<< 0) +/* Used by CM_L4CFG_DYNAMICDEP */ +#define OMAP4460_MPU_DYNDEP_SHIFT 19 +#define OMAP4460_MPU_DYNDEP_MASK (1<< 19) +/* Used by CM_DSS_DSS_CLKCTRL */ #define OMAP4430_OPTFCLKEN_48MHZ_CLK_SHIFT 9#define OMAP4430_OPTFCLKEN_48MHZ_CLK_MASK (1<< 9)@@ -1171,6 +1203,10 @@#define OMAP4430_OPTFCLKEN_SYS_CLK_SHIFT 10#define OMAP4430_OPTFCLKEN_SYS_CLK_MASK (1<< 10) +/* Used by CM_WKUP_BANDGAP_CLKCTRL */ +#define OMAP4460_OPTFCLKEN_TS_FCLK_SHIFT 8 +#define OMAP4460_OPTFCLKEN_TS_FCLK_MASK (1<< 8) +/* Used by CM_DSS_DSS_CLKCTRL */ #define OMAP4430_OPTFCLKEN_TV_CLK_SHIFT 11#define OMAP4430_OPTFCLKEN_TV_CLK_MASK (1<< 11)arch/arm/mach-omap2/prm-regbits-44xx.h +8
-1@@ -282,6 +282,14 @@#define OMAP4430_DUCATI_UNICACHE_STATEST_SHIFT 10#define OMAP4430_DUCATI_UNICACHE_STATEST_MASK (0x3<< 10) +/* Used by PRM_DEVICE_OFF_CTRL */ +#define OMAP4460_EMIF1_OFFWKUP_DISABLE_SHIFT 8 +#define OMAP4460_EMIF1_OFFWKUP_DISABLE_MASK (1<< 8) + +/* Used by PRM_DEVICE_OFF_CTRL */ +#define OMAP4460_EMIF2_OFFWKUP_DISABLE_SHIFT 9 +#define OMAP4460_EMIF2_OFFWKUP_DISABLE_MASK (1<< 9) +/* Used by RM_MPU_RSTST */ #define OMAP4430_EMULATION_RST_SHIFT 0#define OMAP4430_EMULATION_RST_MASK (1<< 0) --Quoted 2 lines
1.7.4.1
- Paul
Paul Walmsley
maintainerPATCH v2 3/6 OMAP4: PRCM: OMAP4460 specific PRM and CM register bitshifts
Quoted 15 lines · Rajendra Nayak
Hi Paul,
Quoted 12 lines · Paul Walmsley
Hi Rajendra
Quoted 7 lines · Rajendra Nayak
This patch adds additional register bitshifts for
registers added in OMAP4460 platform.Signed-off-by Rajendra Nayak<[email protected]>Signed-off-by Nishanth Menon<[email protected]>Signed-off-by Benoit Cousson<[email protected]>Reviewed-by Kevin Hilman<[email protected]>
Quoted 6 lines
Quoted 1 line
Does this data come from the autogenerator scripts?
Yes, it does. But the patch is created by manually diffing the 4430 and 4460 autogen script outputs. That's because the autogen scripts cannot generate data for multiple SoC's at once.
Okay. So then,
- Paul
Tony Lindgren
maintainerPATCH v2 3/6 OMAP4: PRCM: OMAP4460 specific PRM and CM register bitshifts
Quoted 19 lines · Paul Walmsley
Quoted 17 lines · Rajendra Nayak
Hi Paul,
Quoted 13 lines · Paul Walmsley
Hi Rajendra
Quoted 7 lines · Rajendra Nayak
This patch adds additional register bitshifts for
registers added in OMAP4460 platform.Signed-off-by Rajendra Nayak<[email protected]>Signed-off-by Nishanth Menon<[email protected]>Signed-off-by Benoit Cousson<[email protected]>Reviewed-by Kevin Hilman<[email protected]>Does this data come from the autogenerator scripts?
Quoted 8 lines
Quoted 4 lines
Yes, it does. But the patch is created by manually diffing the 4430 and 4460 autogen script outputs. That's because the autogen scripts cannot generate data for multiple SoC's at once.
Okay. So then,
Acked-by Paul Walmsley <[email protected]>
Here's this one updated.
Tony
From: Rajendra Nayak <[email protected]>
Date: Sat, 2 Jul 2011 08:00:23 +0530
Subject: [PATCH] OMAP4: PRCM: OMAP4460 specific PRM and CM register bitshifts
This patch adds additional register bitshifts for
registers added in OMAP4460 platform.
arch/arm/mach-omap2/cm-regbits-44xx.h +36 -0
@@ -106,6 +106,10 @@#define OMAP4430_CLKACTIVITY_CORE_DPLL_EMU_CLK_SHIFT 9#define OMAP4430_CLKACTIVITY_CORE_DPLL_EMU_CLK_MASK (1 << 9) +/* Used by CM_L4CFG_CLKSTCTRL */ +#define OMAP4460_CLKACTIVITY_CORE_TS_GFCLK_SHIFT 9 +#define OMAP4460_CLKACTIVITY_CORE_TS_GFCLK_MASK (1 << 9) +/* Used by CM_CEFUSE_CLKSTCTRL */ #define OMAP4430_CLKACTIVITY_CUST_EFUSE_SYS_CLK_SHIFT 9#define OMAP4430_CLKACTIVITY_CUST_EFUSE_SYS_CLK_MASK (1 << 9)
@@ -418,6 +422,10 @@#define OMAP4430_CLKACTIVITY_WKUP_32K_GFCLK_SHIFT 11#define OMAP4430_CLKACTIVITY_WKUP_32K_GFCLK_MASK (1 << 11) +/* Used by CM_WKUP_CLKSTCTRL */ +#define OMAP4460_CLKACTIVITY_WKUP_TS_GFCLK_SHIFT 13 +#define OMAP4460_CLKACTIVITY_WKUP_TS_GFCLK_MASK (1 << 13) +/* * Used by CM1_ABE_TIMER5_CLKCTRL, CM1_ABE_TIMER6_CLKCTRL, * CM1_ABE_TIMER7_CLKCTRL, CM1_ABE_TIMER8_CLKCTRL, CM_L3INIT_MMC1_CLKCTRL,
@@ -449,6 +457,10 @@#define OMAP4430_CLKSEL_60M_SHIFT 24#define OMAP4430_CLKSEL_60M_MASK (1 << 24) +/* Used by CM_MPU_MPU_CLKCTRL */ +#define OMAP4460_CLKSEL_ABE_DIV_MODE_SHIFT 25 +#define OMAP4460_CLKSEL_ABE_DIV_MODE_MASK (1 << 25) +/* Used by CM1_ABE_AESS_CLKCTRL */ #define OMAP4430_CLKSEL_AESS_FCLK_SHIFT 24#define OMAP4430_CLKSEL_AESS_FCLK_MASK (1 << 24)
@@ -468,6 +480,10 @@#define OMAP4430_CLKSEL_DIV_SHIFT 24#define OMAP4430_CLKSEL_DIV_MASK (1 << 24) +/* Used by CM_MPU_MPU_CLKCTRL */ +#define OMAP4460_CLKSEL_EMIF_DIV_MODE_SHIFT 24 +#define OMAP4460_CLKSEL_EMIF_DIV_MODE_MASK (1 << 24) +/* Used by CM_CAM_FDIF_CLKCTRL */ #define OMAP4430_CLKSEL_FCLK_SHIFT 24#define OMAP4430_CLKSEL_FCLK_MASK (0x3 << 24)
@@ -572,6 +588,14 @@#define OMAP4430_D2D_STATDEP_SHIFT 18#define OMAP4430_D2D_STATDEP_MASK (1 << 18) +/* Used by CM_CLKSEL_DPLL_MPU */ +#define OMAP4460_DCC_COUNT_MAX_SHIFT 24 +#define OMAP4460_DCC_COUNT_MAX_MASK (0xff << 24) + +/* Used by CM_CLKSEL_DPLL_MPU */ +#define OMAP4460_DCC_EN_SHIFT 22 +#define OMAP4460_DCC_EN_MASK (1 << 22) +/* * Used by CM_SSC_DELTAMSTEP_DPLL_ABE, CM_SSC_DELTAMSTEP_DPLL_CORE, * CM_SSC_DELTAMSTEP_DPLL_CORE_RESTORE, CM_SSC_DELTAMSTEP_DPLL_DDRPHY,
@@ -582,6 +606,10 @@#define OMAP4430_DELTAMSTEP_SHIFT 0#define OMAP4430_DELTAMSTEP_MASK (0xfffff << 0) +/* Renamed from DELTAMSTEP Used by CM_SSC_DELTAMSTEP_DPLL_USB */ +#define OMAP4460_DELTAMSTEP_0_20_SHIFT 0 +#define OMAP4460_DELTAMSTEP_0_20_MASK (0x1fffff << 0) +/* Used by CM_SHADOW_FREQ_CONFIG1, CM_SHADOW_FREQ_CONFIG1_RESTORE */ #define OMAP4430_DLL_OVERRIDE_SHIFT 2#define OMAP4430_DLL_OVERRIDE_MASK (1 << 2)
@@ -1204,6 +1232,10 @@#define OMAP4430_MODULEMODE_SHIFT 0#define OMAP4430_MODULEMODE_MASK (0x3 << 0) +/* Used by CM_L4CFG_DYNAMICDEP */ +#define OMAP4460_MPU_DYNDEP_SHIFT 19 +#define OMAP4460_MPU_DYNDEP_MASK (1 << 19) +/* Used by CM_DSS_DSS_CLKCTRL */ #define OMAP4430_OPTFCLKEN_48MHZ_CLK_SHIFT 9#define OMAP4430_OPTFCLKEN_48MHZ_CLK_MASK (1 << 9)
@@ -1298,6 +1330,10 @@#define OMAP4430_OPTFCLKEN_SYS_CLK_SHIFT 10#define OMAP4430_OPTFCLKEN_SYS_CLK_MASK (1 << 10) +/* Used by CM_WKUP_BANDGAP_CLKCTRL */ +#define OMAP4460_OPTFCLKEN_TS_FCLK_SHIFT 8 +#define OMAP4460_OPTFCLKEN_TS_FCLK_MASK (1 << 8) +/* Used by CM_DSS_DSS_CLKCTRL */ #define OMAP4430_OPTFCLKEN_TV_CLK_SHIFT 11#define OMAP4430_OPTFCLKEN_TV_CLK_MASK (1 << 11)
arch/arm/mach-omap2/prm-regbits-44xx.h +8 -0
@@ -283,6 +283,14 @@#define OMAP4430_DUCATI_UNICACHE_STATEST_SHIFT 10#define OMAP4430_DUCATI_UNICACHE_STATEST_MASK (0x3 << 10) +/* Used by PRM_DEVICE_OFF_CTRL */ +#define OMAP4460_EMIF1_OFFWKUP_DISABLE_SHIFT 8 +#define OMAP4460_EMIF1_OFFWKUP_DISABLE_MASK (1 << 8) + +/* Used by PRM_DEVICE_OFF_CTRL */ +#define OMAP4460_EMIF2_OFFWKUP_DISABLE_SHIFT 9 +#define OMAP4460_EMIF2_OFFWKUP_DISABLE_MASK (1 << 9) +/* Used by RM_MPU_RSTST */ #define OMAP4430_EMULATION_RST_SHIFT 0#define OMAP4430_EMULATION_RST_MASK (1 << 0)
Paul Walmsley
maintainerPATCH v2 2/6 OMAP4: ID: add omap_has_feature for max freq supported
In reply to Rajendra NayakQuoted 11 lines · Rajendra Nayak
From: Aneesh V <[email protected]>
Macros for identifying the max frequency supported by various OMAP4 variants - Expanding along the lines of OMAP3's feature handling.
[nm at ti.com: minor fixes for checks that should only for 443x|446x]Signed-off-by Nishanth Menon <[email protected]>Signed-off-by Aneesh V <[email protected]>Signed-off-by Rajendra Nayak <[email protected]>Reviewed-by Kevin Hilman <[email protected]>
The use of the id.c 'features' code to specify MPU speed limits doesn't look right to me, but I don't have a better solution in mind at the moment, so:
- Paul
PATCH v2 2/6 OMAP4: ID: add omap_has_feature for max freq supported
In reply to Rajendra NayakOn Fri, Jul 1, 2011 at 21:30, Rajendra Nayak <[email protected]> wrote:
[...]
Quoted 6 lines
(quoted diff) +6
-0+static void __init omap4_check_features(void) +{ + ? ? ? u32 si_type; + + ? ? ? if (cpu_is_omap443x()) + ? ? ? ? ? ? ? omap_features |= OMAP4_HAS_MPU_1GHZ;
Review
Quoted 10 lines
(quoted diff) +10
-0+ + + ? ? ? if (cpu_is_omap446x()) { + ? ? ? ? ? ? ? si_type = + ? ? ? ? ? ? ? ? ? ? ? read_tap_reg(OMAP4_CTRL_MODULE_CORE_STD_FUSE_PROD_ID_1); + ? ? ? ? ? ? ? switch ((si_type & (3 << 16)) >> 16) { + ? ? ? ? ? ? ? case 2: + ? ? ? ? ? ? ? ? ? ? ? /* High performance device */ + ? ? ? ? ? ? ? ? ? ? ? omap_features |= OMAP4_HAS_MPU_1_5GHZ; + ? ? ? ? ? ? ? ? ? ? ? break;
I have seen http://www.mail-archive.com/linux-omap at vger.kernel.org/msg51988.html and I disagree with this.
We are setting up a standard for all future silicon that omap_features if it contains a higher frequency will always support all lower frequencies in omap_feature. This may be convinent for the moment, BUT, I disagree with the approach as we cannot guarantee that this will be the approach for all silica in the future and approach taken here could be considered short-sighted. if 1.2GHz will be supported then a check for omap_has_1_2GHz should be true as well - which this patch will fail to support. E.g. on 4460 has_1GHz should'nt return true as it is 920MHz, but the check for 1_2GHz should be true - which
it wont as return omap_features & OMAP3_HAS_ ##flag; will not have
BIT(9) set.
Regards,
Nishanth Menon
Quoted 8 lines
+ ? ? ? ? ? ? ? case 1:
+ ? ? ? ? ? ? ? default:
+ ? ? ? ? ? ? ? ? ? ? ? /* Standard device */
+ ? ? ? ? ? ? ? ? ? ? ?omap_features|=OMAP4_HAS_MPU_1_2GHZ;
+ ? ? ? ? ? ? ? ? ? ? ? break;
+ ? ? ? ? ? ? ? }
+ ? ? ? }
+}
[...]
Paul Walmsley
maintainerPATCH v2 1/6 OMAP: ID: introduce chip detection for OMAP4460
In reply to Rajendra NayakQuoted 14 lines · Rajendra Nayak
From: Aneesh V <[email protected]>
Add support for detecting the latest in the OMAP4 family: OMAP4460 Among other changes, the new chip also can support 1.5GHz A9s, 1080p stereoscopic 3D and 12 MP stereo (dual camera). In addition, we have changes to OPPs supported, clock tree etc, hence having a chip detection is required.
For more details on OMAP4460, see
Highlights:
http://focus.ti.com/general/docs/wtbu/wtbuproductcontent.tsp?contentId=53243&navigationId=12843&templateId=6123
Public TRM is available here as usual:
http://focus.ti.com/general/docs/wtbu/wtbudocumentcenter.tsp?templateId=6123&navigationId=12667
Quoted 5 lines
[nm at ti.com: cleanups and introduction of ramp system]Signed-off-by Nishanth Menon <[email protected]>Signed-off-by Aneesh V <[email protected]>Signed-off-by Rajendra Nayak <[email protected]>Reviewed-by Kevin Hilman <[email protected]>
- Paul
Tony Lindgren
maintainerPATCH v2 1/6 OMAP: ID: introduce chip detection for OMAP4460
Quoted 16 lines · Paul Walmsley
Quoted 14 lines · Rajendra Nayak
From: Aneesh V <[email protected]>
Add support for detecting the latest in the OMAP4 family: OMAP4460 Among other changes, the new chip also can support 1.5GHz A9s, 1080p stereoscopic 3D and 12 MP stereo (dual camera). In addition, we have changes to OPPs supported, clock tree etc, hence having a chip detection is required.
For more details on OMAP4460, see
Highlights:
http://focus.ti.com/general/docs/wtbu/wtbuproductcontent.tsp?contentId=53243&navigationId=12843&templateId=6123
Public TRM is available here as usual:
http://focus.ti.com/general/docs/wtbu/wtbudocumentcenter.tsp?templateId=6123&navigationId=12667
Quoted 7 lines
Quoted 5 lines
[nm at ti.com: cleanups and introduction of ramp system]Signed-off-by Nishanth Menon <[email protected]>Signed-off-by Aneesh V <[email protected]>Signed-off-by Rajendra Nayak <[email protected]>Reviewed-by Kevin Hilman <[email protected]>Reviewed-by Paul Walmsley <[email protected]>
I've applied the first for patches of this series slightly modified on top of devel-cleanup branch.
I've left out the CHIP_IS_44XX dependency as we're running out of time here, and that leaves out three out of the eight orignal patches. That can be sorted out in a separate series.
Updated patch below.
Tony
From: Aneesh V <[email protected]>
Date: Sat, 2 Jul 2011 08:00:21 +0530
Subject: [PATCH] OMAP: ID: introduce chip detection for OMAP4460
Add support for detecting the latest in the OMAP4 family: OMAP4460 Among other changes, the new chip also can support 1.5GHz A9s, 1080p stereoscopic 3D and 12 MP stereo (dual camera). In addition, we have changes to OPPs supported, clock tree etc, hence having a chip detection is required.
For more details on OMAP4460, see Highlights:
http://focus.ti.com/general/docs/wtbu/wtbuproductcontent.tsp?contentId=53243&navigationId=12843&templateId=6123
Public TRM is available here as usual:
http://focus.ti.com/general/docs/wtbu/wtbudocumentcenter.tsp?templateId=6123&navigationId=12667
arch/arm/mach-omap2/id.c +11 -2
@@ -344,10 +344,10 @@ static void __init omap4_check_revision(void) rev = (idcode >>28 ) &0xf ;/* -* Few initial ES2.0 samples IDCODE is same as ES1.0 +* Few initial 4430 ES2.0 samples IDCODE is same as ES1.0 * Use ARM register to detect the correct ES version */ -if (!rev) { +if (!rev && (hawkeye !=0xb94e )) { idcode =read_cpuid (CPUID_ID ); rev = (idcode &0xf ) -1 ; }
@@ -377,6 +377,15 @@ static void __init omap4_check_revision(void) omap_chip.oc |=CHIP_IS_OMAP4430ES2_2 ; }break ; +case 0xb94e : +switch (rev) { +case 0 : +default : + omap_revision =OMAP4460_REV_ES1_0 ; + omap_chip.oc |=CHIP_IS_OMAP4460ES1_0 ; +break ; + } +break ;default :/* Unknown default to latest silicon rev as default */ omap_revision =OMAP4430_REV_ES2_2 ;
arch/arm/plat-omap/include/plat/cpu.h +11 -1
@@ -88,6 +88,7 @@ unsigned int omap_rev(void);* cpu_is_omap243x(): True for OMAP2430 * cpu_is_omap343x(): True for OMAP3430 * cpu_is_omap443x(): True for OMAP4430 +* cpu_is_omap446x(): True for OMAP4460 */ #define GET_OMAP_CLASS (omap_rev() & 0xff)
@@ -123,6 +124,7 @@ IS_OMAP_SUBCLASS(243x, 0x243) IS_OMAP_SUBCLASS(343x, 0x343) IS_OMAP_SUBCLASS(363x, 0x363) IS_OMAP_SUBCLASS(443x, 0x443) +IS_OMAP_SUBCLASS(446x, 0x446) IS_TI_SUBCLASS(816x, 0x816)
@@ -137,6 +139,7 @@ IS_TI_SUBCLASS(816x, 0x816)#define cpu_is_ti816x () 0#define cpu_is_omap44xx () 0#define cpu_is_omap443x () 0 +#define cpu_is_omap446x () 0#if defined(MULTI_OMAP1 )# if defined(CONFIG_ARCH_OMAP730 )
@@ -361,8 +364,10 @@ IS_OMAP_TYPE(3517, 0x3517)# if defined(CONFIG_ARCH_OMAP4 )# undef cpu_is_omap44xx# undef cpu_is_omap443x +# undef cpu_is_omap446x# define cpu_is_omap44xx () is_omap44xx()# define cpu_is_omap443x () is_omap443x() +# define cpu_is_omap446x () is_omap446x()# endif /* Macros to detect if we have OMAP1 or OMAP2 */
@@ -410,6 +415,9 @@ IS_OMAP_TYPE(3517, 0x3517)#define OMAP4430_REV_ES2_1 (OMAP443X_CLASS | (0x21 << 8))#define OMAP4430_REV_ES2_2 (OMAP443X_CLASS | (0x22 << 8)) +#define OMAP446X_CLASS 0x44600044 +#define OMAP4460_REV_ES1_0 (OMAP446X_CLASS | (0x10 << 8)) +/* * omap_chip bits *
@@ -439,13 +447,15 @@ IS_OMAP_TYPE(3517, 0x3517)#define CHIP_IS_OMAP4430ES2_1 (1 << 12)#define CHIP_IS_OMAP4430ES2_2 (1 << 13)#define CHIP_IS_TI816X (1 << 14) +#define CHIP_IS_OMAP4460ES1_0 (1 << 15)#define CHIP_IS_OMAP24XX (CHIP_IS_OMAP2420 | CHIP_IS_OMAP2430)#define CHIP_IS_OMAP4430 (CHIP_IS_OMAP4430ES1 | \ CHIP_IS_OMAP4430ES2 | \ CHIP_IS_OMAP4430ES2_1 | \ - CHIP_IS_OMAP4430ES2_2) + CHIP_IS_OMAP4430ES2_2 | \ + CHIP_IS_OMAP4460ES1_0)/* * "GE" here represents "greater than or equal to" in terms of ES