Re: [PATCH 1/2] soc/tegra: fuse: Support revision B01
From: Mikko Perttunen
Date: Tue Jul 21 2026 - 03:42:13 EST
On Saturday, July 18, 2026 8:19 AM Aaron Kling via B4 Relay wrote:
> From: Aaron Kling <webgeek1234@xxxxxxxxx>
>
> This is used by Tegra210B01
Please describe the change in full in the commit message, don't continue
the paragraph from the subject.
>
> Signed-off-by: Aaron Kling <webgeek1234@xxxxxxxxx>
> ---
> drivers/soc/tegra/fuse/fuse-tegra.c | 1 +
> drivers/soc/tegra/fuse/tegra-apbmisc.c | 45 +++++++++++++++++++---------------
> include/soc/tegra/fuse.h | 1 +
> 3 files changed, 27 insertions(+), 20 deletions(-)
>
> diff --git a/drivers/soc/tegra/fuse/fuse-tegra.c b/drivers/soc/tegra/fuse/fuse-tegra.c
> index 78b054d43a422..a37642dc92c61 100644
> --- a/drivers/soc/tegra/fuse/fuse-tegra.c
> +++ b/drivers/soc/tegra/fuse/fuse-tegra.c
> @@ -34,6 +34,7 @@ static const char *tegra_revision_name[TEGRA_REVISION_MAX] = {
> [TEGRA_REVISION_A03] = "A03",
> [TEGRA_REVISION_A03p] = "A03 prime",
> [TEGRA_REVISION_A04] = "A04",
> + [TEGRA_REVISION_B01] = "B01",
> };
>
> static const char *tegra_platform_name[TEGRA_PLATFORM_MAX] = {
> diff --git a/drivers/soc/tegra/fuse/tegra-apbmisc.c b/drivers/soc/tegra/fuse/tegra-apbmisc.c
> index 6af69ccaa295c..8df3bcd148ba7 100644
> --- a/drivers/soc/tegra/fuse/tegra-apbmisc.c
> +++ b/drivers/soc/tegra/fuse/tegra-apbmisc.c
> @@ -167,30 +167,35 @@ static const struct of_device_id apbmisc_match[] __initconst = {
>
> void __init tegra_init_revision(void)
> {
> - u8 chip_id, minor_rev;
> + u8 chip_id, major_rev, minor_rev;
>
> chip_id = tegra_get_chip_id();
> + major_rev = tegra_get_major_rev();
> minor_rev = tegra_get_minor_rev();
>
> - switch (minor_rev) {
> - case 1:
> - tegra_sku_info.revision = TEGRA_REVISION_A01;
> - break;
> - case 2:
> - tegra_sku_info.revision = TEGRA_REVISION_A02;
> - break;
> - case 3:
> - if (chip_id == TEGRA20 && (tegra_fuse_read_spare(18) ||
> - tegra_fuse_read_spare(19)))
> - tegra_sku_info.revision = TEGRA_REVISION_A03p;
> - else
> - tegra_sku_info.revision = TEGRA_REVISION_A03;
> - break;
> - case 4:
> - tegra_sku_info.revision = TEGRA_REVISION_A04;
> - break;
> - default:
> - tegra_sku_info.revision = TEGRA_REVISION_UNKNOWN;
> + if (major_rev > 1) {
> + tegra_sku_info.revision = TEGRA_REVISION_B01;
To match the A revisions, I think better to check minor_rev as well and
set to UNKNOWN if it's not as expected.
Thank you!
Mikko
> + } else {
> + switch (minor_rev) {
> + case 1:
> + tegra_sku_info.revision = TEGRA_REVISION_A01;
> + break;
> + case 2:
> + tegra_sku_info.revision = TEGRA_REVISION_A02;
> + break;
> + case 3:
> + if (chip_id == TEGRA20 && (tegra_fuse_read_spare(18) ||
> + tegra_fuse_read_spare(19)))
> + tegra_sku_info.revision = TEGRA_REVISION_A03p;
> + else
> + tegra_sku_info.revision = TEGRA_REVISION_A03;
> + break;
> + case 4:
> + tegra_sku_info.revision = TEGRA_REVISION_A04;
> + break;
> + default:
> + tegra_sku_info.revision = TEGRA_REVISION_UNKNOWN;
> + }
> }
>
> tegra_sku_info.sku_id = tegra_fuse_read_early(FUSE_SKU_INFO);
> diff --git a/include/soc/tegra/fuse.h b/include/soc/tegra/fuse.h
> index 8f421b9f7585c..30db79f7f17fd 100644
> --- a/include/soc/tegra/fuse.h
> +++ b/include/soc/tegra/fuse.h
> @@ -33,6 +33,7 @@ enum tegra_revision {
> TEGRA_REVISION_A03,
> TEGRA_REVISION_A03p,
> TEGRA_REVISION_A04,
> + TEGRA_REVISION_B01,
> TEGRA_REVISION_MAX,
> };
>
>
> --
> 2.54.0
>
>
>