On Monday 19 May 2014 08:57 PM, Nishanth Menon wrote:
> Currently the files in /sys/devices/soc0/ show no information about
> DRA7. Few userspace programs do depend on this information to make SoC
> specific support. So update logic to detect the relevant information and
> provide to userspace.
> 
> Signed-off-by: Nishanth Menon <n...@ti.com>
> ---
> based on v3.15-rc5
> 
> Test log: http://slexy.org/view/s2FDZatq6f
> 
>  arch/arm/mach-omap2/id.c  |   37 +++++++++++++++++++++++++++++++++++++
>  arch/arm/mach-omap2/io.c  |    1 +
>  arch/arm/mach-omap2/soc.h |    5 +++++
>  3 files changed, 43 insertions(+)
> 
> diff --git a/arch/arm/mach-omap2/id.c b/arch/arm/mach-omap2/id.c
> index 157412e..71bf216 100644
> --- a/arch/arm/mach-omap2/id.c
> +++ b/arch/arm/mach-omap2/id.c
> @@ -628,6 +628,41 @@ void __init omap5xxx_check_revision(void)
>       pr_info("%s %s\n", soc_name, soc_rev);
>  }
>  
> +void __init dra7xxx_check_revision(void)
> +{
> +     u32 idcode;
> +     u16 hawkeye;
> +     u8 rev;
> +
> +     idcode = read_tap_reg(OMAP_TAP_IDCODE);
> +     hawkeye = (idcode >> 12) & 0xffff;
> +     rev = (idcode >> 28) & 0xff;
> +     switch (hawkeye) {
> +     case 0xb990:
> +             switch (rev) {
> +             case 0:
> +                     omap_revision = DRA752_REV_ES1_0;
> +                     break;
> +             case 1:
> +             default:
> +                     omap_revision = DRA752_REV_ES1_1;
> +             }
> +             break;

So we are back to checking revisions based on idcode register then?
This patch was posted almost a year back and was shot down by you
included saying we need to use dt compatibles for it.

https://www.mail-archive.com/linux-omap@vger.kernel.org/msg93136.html

> +
> +     default:
> +             /* Unknown default to latest silicon rev as default*/
> +             pr_warn("%s: unknown idcode=0x%08x (hawkeye=0x%08x,rev=0x%d)\n",
> +                     __func__, idcode, hawkeye, rev);
> +             omap_revision = DRA752_REV_ES1_1;
> +     }
> +
> +     sprintf(soc_name, "DRA%03x", omap_rev() >> 16);
> +     sprintf(soc_rev, "ES%d.%d", (omap_rev() >> 12) & 0xf,
> +             (omap_rev() >> 8) & 0xf);
> +
> +     pr_info("%s %s\n", soc_name, soc_rev);
> +}
> +
>  /*
>   * Set up things for map_io and processor detection later on. Gets called
>   * pretty much first thing from board init. For multi-omap, this gets
> @@ -669,6 +704,8 @@ static const char * __init omap_get_family(void)
>               return kasprintf(GFP_KERNEL, "OMAP5");
>       else if (soc_is_am43xx())
>               return kasprintf(GFP_KERNEL, "AM43xx");
> +     else if (soc_is_dra7xx())
> +             return kasprintf(GFP_KERNEL, "DRA7");
>       else
>               return kasprintf(GFP_KERNEL, "Unknown");
>  }
> diff --git a/arch/arm/mach-omap2/io.c b/arch/arm/mach-omap2/io.c
> index f14f9ac..4ec3b4a 100644
> --- a/arch/arm/mach-omap2/io.c
> +++ b/arch/arm/mach-omap2/io.c
> @@ -693,6 +693,7 @@ void __init dra7xx_init_early(void)
>       omap_prm_base_init();
>       omap_cm_base_init();
>       omap44xx_prm_init();
> +     dra7xxx_check_revision();
>       dra7xx_powerdomains_init();
>       dra7xx_clockdomains_init();
>       dra7xx_hwmod_init();
> diff --git a/arch/arm/mach-omap2/soc.h b/arch/arm/mach-omap2/soc.h
> index 30abcc8..de2a34c 100644
> --- a/arch/arm/mach-omap2/soc.h
> +++ b/arch/arm/mach-omap2/soc.h
> @@ -459,10 +459,15 @@ IS_OMAP_TYPE(3430, 0x3430)
>  #define OMAP5430_REV_ES2_0   (OMAP54XX_CLASS | (0x30 << 16) | (0x20 << 8))
>  #define OMAP5432_REV_ES2_0   (OMAP54XX_CLASS | (0x32 << 16) | (0x20 << 8))
>  
> +#define DRA7XX_CLASS         0x07000000
> +#define DRA752_REV_ES1_0     (DRA7XX_CLASS | (0x52 << 16) | (0x10 << 8))
> +#define DRA752_REV_ES1_1     (DRA7XX_CLASS | (0x52 << 16) | (0x11 << 8))
> +
>  void omap2xxx_check_revision(void);
>  void omap3xxx_check_revision(void);
>  void omap4xxx_check_revision(void);
>  void omap5xxx_check_revision(void);
> +void dra7xxx_check_revision(void);
>  void omap3xxx_check_features(void);
>  void ti81xx_check_features(void);
>  void am33xx_check_features(void);
> 

--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to