On 13:16-20141031, Vignesh R wrote:
> This patch adds hwmod support for tscadc to work on am43xx-evm. The am33xx
> hwmod structures of tscadc has been moved to ipblock_data so that it can
> be reused in am43xx. The clock domain names are separately set for am33xx
> and am43xx. Thus tscadc dt entries can now be added to am43xx board
> dt files.
> 
> Signed-off-by: Vignesh R <[email protected]>
> ---
>  .../mach-omap2/omap_hwmod_33xx_43xx_common_data.h  |  1 +
>  .../mach-omap2/omap_hwmod_33xx_43xx_ipblock_data.c | 64 
> ++++++++++++++++++++++
>  arch/arm/mach-omap2/omap_hwmod_33xx_data.c         | 49 -----------------
>  arch/arm/mach-omap2/omap_hwmod_43xx_data.c         |  1 +
>  4 files changed, 66 insertions(+), 49 deletions(-)
> 
> diff --git a/arch/arm/mach-omap2/omap_hwmod_33xx_43xx_common_data.h 
> b/arch/arm/mach-omap2/omap_hwmod_33xx_43xx_common_data.h
> index 6e57b8ad0db5..b92a7c7825fa 100644
> --- a/arch/arm/mach-omap2/omap_hwmod_33xx_43xx_common_data.h
> +++ b/arch/arm/mach-omap2/omap_hwmod_33xx_43xx_common_data.h
> @@ -65,6 +65,7 @@ extern struct omap_hwmod_ocp_if am33xx_l4_ls__timer4;
>  extern struct omap_hwmod_ocp_if am33xx_l4_ls__timer5;
>  extern struct omap_hwmod_ocp_if am33xx_l4_ls__timer6;
>  extern struct omap_hwmod_ocp_if am33xx_l4_ls__timer7;
> +extern struct omap_hwmod_ocp_if am33xx_l4_wkup__adc_tsc;
>  extern struct omap_hwmod_ocp_if am33xx_l3_main__tpcc;
>  extern struct omap_hwmod_ocp_if am33xx_l3_main__tptc0;
>  extern struct omap_hwmod_ocp_if am33xx_l3_main__tptc1;
> diff --git a/arch/arm/mach-omap2/omap_hwmod_33xx_43xx_ipblock_data.c 
> b/arch/arm/mach-omap2/omap_hwmod_33xx_43xx_ipblock_data.c
> index 7f44922ab540..ef14e56a3968 100644
> --- a/arch/arm/mach-omap2/omap_hwmod_33xx_43xx_ipblock_data.c
> +++ b/arch/arm/mach-omap2/omap_hwmod_33xx_43xx_ipblock_data.c
> @@ -151,6 +151,54 @@ struct omap_hwmod_class am33xx_wkup_m3_hwmod_class = {
>  };
>  
>  /*
> + * 'adc/tsc' class
> + * TouchScreen Controller (Anolog-To-Digital Converter)
> + */
> +static struct omap_hwmod_class_sysconfig am33xx_adc_tsc_sysc = {
> +     .rev_offs       = 0x00,
> +     .sysc_offs      = 0x10,
> +     .sysc_flags     = SYSC_HAS_SIDLEMODE,
> +     .idlemodes      = (SIDLE_FORCE | SIDLE_NO | SIDLE_SMART |
> +                     SIDLE_SMART_WKUP),
> +     .sysc_fields    = &omap_hwmod_sysc_type2,
> +};
> +
> +static struct omap_hwmod_class am33xx_adc_tsc_hwmod_class = {
> +     .name           = "adc_tsc",
> +     .sysc           = &am33xx_adc_tsc_sysc,
> +};
> +
> +struct omap_hwmod am33xx_adc_tsc_hwmod = {
> +     .name           = "adc_tsc",
> +     .class          = &am33xx_adc_tsc_hwmod_class,
> +     .clkdm_name     = "l4_wkup_clkdm",
> +     .main_clk       = "adc_tsc_fck",
> +     .prcm           = {
> +             .omap4  = {
> +                     .modulemode     = MODULEMODE_SWCTRL,
> +             },
> +     },
> +};
> +
> +/* L4 WKUP -> ADC_TSC */
> +static struct omap_hwmod_addr_space am33xx_adc_tsc_addrs[] = {
> +     {
> +             .pa_start       = 0x44E0D000,
> +             .pa_end         = 0x44E0D000 + SZ_8K - 1,
> +             .flags          = ADDR_TYPE_RT
> +     },
> +     { }
> +};

NAK. we dont want to see phy addresses in hwmod anymore. please add that
to DT. I suggest doing that clean up prior to this patch.

> +
> +struct omap_hwmod_ocp_if am33xx_l4_wkup__adc_tsc = {
> +     .master         = &am33xx_l4_wkup_hwmod,
> +     .slave          = &am33xx_adc_tsc_hwmod,
> +     .clk            = "dpll_core_m4_div2_ck",
> +     .addr           = am33xx_adc_tsc_addrs,
> +     .user           = OCP_USER_MPU,
> +};
> +
> +/*
>   * 'pru-icss' class
>   * Programmable Real-Time Unit and Industrial Communication Subsystem
>   */
> @@ -1370,6 +1418,7 @@ static void omap_hwmod_am33xx_clkctrl(void)
>       CLKCTRL(am33xx_timer5_hwmod, AM33XX_CM_PER_TIMER5_CLKCTRL_OFFSET);
>       CLKCTRL(am33xx_timer6_hwmod, AM33XX_CM_PER_TIMER6_CLKCTRL_OFFSET);
>       CLKCTRL(am33xx_timer7_hwmod, AM33XX_CM_PER_TIMER7_CLKCTRL_OFFSET);
> +     CLKCTRL(am33xx_adc_tsc_hwmod, AM33XX_CM_WKUP_ADC_TSC_CLKCTRL_OFFSET);
>       CLKCTRL(am33xx_smartreflex0_hwmod,
>               AM33XX_CM_WKUP_SMARTREFLEX0_CLKCTRL_OFFSET);
>       CLKCTRL(am33xx_smartreflex1_hwmod,
> @@ -1398,6 +1447,18 @@ static void omap_hwmod_am33xx_clkctrl(void)
>       CLKCTRL(am33xx_aes0_hwmod , AM33XX_CM_PER_AES0_CLKCTRL_OFFSET);
>  }
>  
> +static void am33xx_hwmod_clockdomain(void)
> +{
> +     am33xx_l4_hs_hwmod.clkdm_name = "l4hs_clkdm";
> +     am33xx_adc_tsc_hwmod.clkdm_name = "l4_wkup_clkdm";
> +}
> +
> +static void am43xx_hwmod_clockdomain(void)
> +{
> +     am33xx_l4_hs_hwmod.clkdm_name = "l3_clkdm";
> +     am33xx_adc_tsc_hwmod.clkdm_name = "l3s_tsc_clkdm";
> +}
> +

maybe do something similar to CLKCTRL macro?

>  static void omap_hwmod_am33xx_rst(void)
>  {
>       RSTCTRL(am33xx_pruss_hwmod, AM33XX_RM_PER_RSTCTRL_OFFSET);
> @@ -1409,6 +1470,7 @@ void omap_hwmod_am33xx_reg(void)
>  {
>       omap_hwmod_am33xx_clkctrl();
>       omap_hwmod_am33xx_rst();
> +     am33xx_hwmod_clockdomain();
>  }
>  
>  static void omap_hwmod_am43xx_clkctrl(void)
> @@ -1443,6 +1505,7 @@ static void omap_hwmod_am43xx_clkctrl(void)
>       CLKCTRL(am33xx_timer5_hwmod, AM43XX_CM_PER_TIMER5_CLKCTRL_OFFSET);
>       CLKCTRL(am33xx_timer6_hwmod, AM43XX_CM_PER_TIMER6_CLKCTRL_OFFSET);
>       CLKCTRL(am33xx_timer7_hwmod, AM43XX_CM_PER_TIMER7_CLKCTRL_OFFSET);
> +     CLKCTRL(am33xx_adc_tsc_hwmod, AM43XX_CM_WKUP_ADC_TSC_CLKCTRL_OFFSET);
>       CLKCTRL(am33xx_smartreflex0_hwmod,
>               AM43XX_CM_WKUP_SMARTREFLEX0_CLKCTRL_OFFSET);
>       CLKCTRL(am33xx_smartreflex1_hwmod,
> @@ -1482,4 +1545,5 @@ void omap_hwmod_am43xx_reg(void)
>  {
>       omap_hwmod_am43xx_clkctrl();
>       omap_hwmod_am43xx_rst();
> +     am43xx_hwmod_clockdomain();
>  }
> diff --git a/arch/arm/mach-omap2/omap_hwmod_33xx_data.c 
> b/arch/arm/mach-omap2/omap_hwmod_33xx_data.c
> index ce7d260495cb..c3ff14828850 100644
> --- a/arch/arm/mach-omap2/omap_hwmod_33xx_data.c
> +++ b/arch/arm/mach-omap2/omap_hwmod_33xx_data.c
> @@ -88,37 +88,6 @@ static struct omap_hwmod am33xx_wkup_m3_hwmod = {
>  };
>  
>  /*
> - * 'adc/tsc' class
> - * TouchScreen Controller (Anolog-To-Digital Converter)
> - */
> -static struct omap_hwmod_class_sysconfig am33xx_adc_tsc_sysc = {
> -     .rev_offs       = 0x00,
> -     .sysc_offs      = 0x10,
> -     .sysc_flags     = SYSC_HAS_SIDLEMODE,
> -     .idlemodes      = (SIDLE_FORCE | SIDLE_NO | SIDLE_SMART |
> -                     SIDLE_SMART_WKUP),
> -     .sysc_fields    = &omap_hwmod_sysc_type2,
> -};
> -
> -static struct omap_hwmod_class am33xx_adc_tsc_hwmod_class = {
> -     .name           = "adc_tsc",
> -     .sysc           = &am33xx_adc_tsc_sysc,
> -};
> -
> -static struct omap_hwmod am33xx_adc_tsc_hwmod = {
> -     .name           = "adc_tsc",
> -     .class          = &am33xx_adc_tsc_hwmod_class,
> -     .clkdm_name     = "l4_wkup_clkdm",
> -     .main_clk       = "adc_tsc_fck",
> -     .prcm           = {
> -             .omap4  = {
> -                     .clkctrl_offs   = AM33XX_CM_WKUP_ADC_TSC_CLKCTRL_OFFSET,
> -                     .modulemode     = MODULEMODE_SWCTRL,
> -             },
> -     },
> -};
> -
> -/*
>   * Modules omap_hwmod structures
>   *
>   * The following IPs are excluded for the moment because:
> @@ -426,24 +395,6 @@ static struct omap_hwmod_ocp_if am33xx_l4_wkup__gpio0 = {
>       .user           = OCP_USER_MPU | OCP_USER_SDMA,
>  };
>  
> -/* L4 WKUP -> ADC_TSC */
> -static struct omap_hwmod_addr_space am33xx_adc_tsc_addrs[] = {
> -     {
> -             .pa_start       = 0x44E0D000,
> -             .pa_end         = 0x44E0D000 + SZ_8K - 1,
> -             .flags          = ADDR_TYPE_RT
> -     },
> -     { }
> -};
> -
> -static struct omap_hwmod_ocp_if am33xx_l4_wkup__adc_tsc = {
> -     .master         = &am33xx_l4_wkup_hwmod,
> -     .slave          = &am33xx_adc_tsc_hwmod,
> -     .clk            = "dpll_core_m4_div2_ck",
> -     .addr           = am33xx_adc_tsc_addrs,
> -     .user           = OCP_USER_MPU,
> -};
> -
>  static struct omap_hwmod_ocp_if am33xx_l4_hs__cpgmac0 = {
>       .master         = &am33xx_l4_hs_hwmod,
>       .slave          = &am33xx_cpgmac0_hwmod,
> diff --git a/arch/arm/mach-omap2/omap_hwmod_43xx_data.c 
> b/arch/arm/mach-omap2/omap_hwmod_43xx_data.c
> index fea01aa3ef42..3ce8d28c0f9a 100644
> --- a/arch/arm/mach-omap2/omap_hwmod_43xx_data.c
> +++ b/arch/arm/mach-omap2/omap_hwmod_43xx_data.c
> @@ -809,6 +809,7 @@ static struct omap_hwmod_ocp_if *am43xx_hwmod_ocp_ifs[] 
> __initdata = {
>       &am33xx_l4_ls__timer5,
>       &am33xx_l4_ls__timer6,
>       &am33xx_l4_ls__timer7,
> +     &am33xx_l4_wkup__adc_tsc,
>       &am33xx_l3_main__tpcc,
>       &am33xx_l4_ls__uart2,
>       &am33xx_l4_ls__uart3,
> -- 
> 1.9.1
> 
> --
> To unsubscribe from this list: send the line "unsubscribe linux-omap" in
> the body of a message to [email protected]
> More majordomo info at  http://vger.kernel.org/majordomo-info.html

-- 
Regards,
Nishanth Menon
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to