Re: [PATCH 1/2] soc/tegra: fuse: Support revision B01
Mikko Perttunen <[email protected]> Tue, 21 Jul 2026 16:37:34 +0900
| Newsgroups | org.kernel.vger.linux-tegra,org.kernel.vger.linux-kernel |
|---|---|
| Message-ID | <[email protected]> |
On Saturday, July 18, 2026 8:19 AM Aaron Kling via B4 Relay wrote: > From: Aaron Kling <[email protected]> > > 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 <[email protected]> > --- > 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 > > >