[PATCH 5/9] soc/tegra: fuse: Extract tegra_get_platform()
Jon Hunter
jonathanh at nvidia.com
Mon Sep 7 15:30:46 EDT 2020
On 16/07/2020 15:18, Thierry Reding wrote:
> From: Thierry Reding <treding at nvidia.com>
>
> This function extracts the PRE_SI_PLATFORM field from the HIDREV
> register and can be used to determine which platform the kernel runs on
> (silicon, simulation, ...). Note that while only Tegra194 and later
> define this field, it should be safe to call this on prior generations
> as well since this field should read as 0, indicating silicon.
>
> Signed-off-by: Thierry Reding <treding at nvidia.com>
> ---
> drivers/soc/tegra/fuse/fuse-tegra.c | 2 +-
> drivers/soc/tegra/fuse/tegra-apbmisc.c | 5 +++++
> include/soc/tegra/fuse.h | 1 +
> 3 files changed, 7 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/soc/tegra/fuse/fuse-tegra.c b/drivers/soc/tegra/fuse/fuse-tegra.c
> index d1f8dd0289e6..7e6b6ee59120 100644
> --- a/drivers/soc/tegra/fuse/fuse-tegra.c
> +++ b/drivers/soc/tegra/fuse/fuse-tegra.c
> @@ -336,7 +336,7 @@ static ssize_t platform_show(struct device *dev, struct device_attribute *attr,
> * platform type is silicon and all other non-zero values indicate
> * the type of simulation platform is being used.
> */
> - return sprintf(buf, "%d\n", (tegra_read_chipid() >> 20) & 0xf);
> + return sprintf(buf, "%d\n", tegra_get_platform());
> }
>
> static DEVICE_ATTR_RO(platform);
> diff --git a/drivers/soc/tegra/fuse/tegra-apbmisc.c b/drivers/soc/tegra/fuse/tegra-apbmisc.c
> index 3cdd69d1bd4d..89f1479b4d0e 100644
> --- a/drivers/soc/tegra/fuse/tegra-apbmisc.c
> +++ b/drivers/soc/tegra/fuse/tegra-apbmisc.c
> @@ -47,6 +47,11 @@ u8 tegra_get_minor_rev(void)
> return (tegra_read_chipid() >> 16) & 0xf;
> }
>
> +u8 tegra_get_platform(void)
> +{
> + return (tegra_read_chipid() >> 20) & 0xf;
> +}
> +
> u32 tegra_read_straps(void)
> {
> WARN(!chipid, "Tegra ABP MISC not yet available\n");
> diff --git a/include/soc/tegra/fuse.h b/include/soc/tegra/fuse.h
> index 1097feca41ed..214908fc5581 100644
> --- a/include/soc/tegra/fuse.h
> +++ b/include/soc/tegra/fuse.h
> @@ -23,6 +23,7 @@
>
> u32 tegra_read_chipid(void);
> u8 tegra_get_chip_id(void);
> +u8 tegra_get_platform(void);
>
> enum tegra_revision {
> TEGRA_REVISION_UNKNOWN = 0,
>
Reviewed-by: Jon Hunter <jonathanh at nvidia.com>
Cheers
Jon
--
nvpublic
More information about the linux-arm-kernel
mailing list