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
> 
> 
>