From nobody Thu Apr 9 17:04:05 2026 Received: from mail-wm1-f42.google.com (mail-wm1-f42.google.com [209.85.128.42]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 55469385504 for ; Fri, 6 Mar 2026 23:38:33 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.42 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1772840315; cv=none; b=DTnz8GoOEkkYtTheUPbtGnvMiSMLTb1nVptEDAMpgRU+X5Lg2jkjHdhHkSibe2FImMbbrAK7l4kOyvB9L06mueu8x3TSLDQAz7cs6NhDF09UNWufHk4hV9pWptD0xXWqyaIokJdeFE5QeLlYiuRo9RCL+RSxws0bMrrM3ufESoY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1772840315; c=relaxed/simple; bh=BvdT1RoBm/QOBF6eCg9y1yblD0om5TFiWfVmubhqdqU=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=Ar1XHRqswegzrfMHQcT4LwQPRhiXZUPyqGah23CfhIRC7TNPgXubHxjKqw22VYeRNtXO6x3kJ+u3wMxpcsd/0PZ8dlof/wugis1fY8jkJy/2Miu8v0RQ/Z37us6JThTIg/UANcL2dSiK8ra5/gGUd5xT0h3As9wrOZ6eXwZbN00= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=suse.com; spf=pass smtp.mailfrom=suse.com; dkim=pass (2048-bit key) header.d=suse.com header.i=@suse.com header.b=TDXg3WK1; arc=none smtp.client-ip=209.85.128.42 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=suse.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=suse.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=suse.com header.i=@suse.com header.b="TDXg3WK1" Received: by mail-wm1-f42.google.com with SMTP id 5b1f17b1804b1-4806f3fc50bso106501745e9.0 for ; Fri, 06 Mar 2026 15:38:33 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=google; t=1772840312; x=1773445112; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=i4NuxzLDGj8yS8JkPsoLwHvhkLdZ7UNN2cfrgeUVnLo=; b=TDXg3WK1LGOGGA5gAKd6P9TFTLaaFo+MMXAHO9CIp7Z7ESVb7PdGM+uIaTpR5KpcrW wnJPYLrRr8jctEhWzGx0OviT1OL6FZiFlJUWn67FO+CeKM3uvWEgWH8fBGU2VGVLN4X9 7B27ebvtteu6jOvoNbATUiu8zqYtkcAedDAxhN+dRTt2ygGpNUtgB2ln2S8bqWWtUTmE 1Bj6es4ZJNl59KHlB4vg5j/reiwEpVwhMXEnKesUREsiU4FQsmLTjBqje7WKal3RvFzg hJ6OkF4xefMeL0hcdNUKCaDOsx5xYMBBlr9rkdY8sVzYIFAMXran5APrDtzYHouJRm2v givw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1772840312; x=1773445112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=i4NuxzLDGj8yS8JkPsoLwHvhkLdZ7UNN2cfrgeUVnLo=; b=Cjy32q59wRxwvvtTL+l9vpsGhKVx5ZXDFgIFxboBoIRg5CalNrDeu+7iGXs/rghSsW 5iav7SQmCTbqIqvB6+iWWwUsvtdubNEJxft2IX0kwFO0A8x+qYje6ushT4G1P5Nv0IPQ 6iNQizqghmiegJqqo7gJqpyTDKpa2jgvEvKvM1tTWm/pu99XNlrHXUr8YFyf2pLZhRwP QfQuvfd+s7SKni/mtp9/uZ2Wg+CdUKrURESd/eEjB2ktYA5yTdqce/DmpO/RvX/09Jqj GKgBQaa/NqwXCjOq/vZ8uv37a+jWpKWK4+WbybSVQk54Mm14njO8XIVcNHERLlzedTwj 7pGw== X-Forwarded-Encrypted: i=1; AJvYcCW9vGMrpKibDudM2DBjcxQROSVWAbNE6CcAxXonQkHNlweQBQmL+WvZajc3SW39luoQwUPxFPeasOAG4Sk=@vger.kernel.org X-Gm-Message-State: AOJu0Yz2kyvk5hLDWKjrYF/TJNuHzriO675Qxi0RjTyn0memmx5bR4Xz 2vcpiLtslMLTIMJUYSL8Kh2L9RJQvAg4n7i+VcZV0EZGUQFwqjjWYlOTdjOURhv+OBw= X-Gm-Gg: ATEYQzx3Ojy82dK1iPKWMKKPoLgUgaE/GBFEaMI0IxvWYh1qYIGKugOsiNfpbL+GmJB /kLzzc3hKTMxAal6fvIOh9gAMEwB5bJsKmewLpcXKkS5rPZt5zKZOE1/fAWUgvIdSqKh1eca25V /l6kTCClbJyWSV/kwg7rNcxJ0jAohikLsOo28mMuC82j7Vi13Xxlg/09GqgG6Ocyd6Egzx3mwBt AVIybTP+Z9XELDXQ1EgEwJ6/v7pMYBEMu/ijy0y3w2R9WK9Yf9pJD+pD3JpBDlr4x6LQh0Jhk0i gfAKWS+FAj1q+v0daEqtKpJGex5H+QORNSgth6Itt/NefRvTA28MT5Ke3T57+in3CiI+dBuU+IB cNZopSg0YoL6mN5P3xFam73yOybsklMgo6sx2MXs6pv6S1XDQ7dggKo9U22s9/o9MnOUIVFhpn6 mgHGmfdoCBdtFgvRN8867UwlA7GwrBCh0EPDI+cISDfI0wjwlyf7RimL4lKImOpjvtMA== X-Received: by 2002:a05:600c:c088:b0:483:a922:2e8d with SMTP id 5b1f17b1804b1-48526919884mr59641445e9.4.1772840311638; Fri, 06 Mar 2026 15:38:31 -0800 (PST) Received: from localhost (host-79-12-214-40.retail.telecomitalia.it. [79.12.214.40]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-439dad97da3sm7209369f8f.12.2026.03.06.15.38.30 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 06 Mar 2026 15:38:31 -0800 (PST) From: Andrea della Porta To: Lee Jones , Florian Fainelli , Broadcom internal kernel review list , Ray Jui , Scott Branden , linux-rpi-kernel@lists.infradead.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, Phil Elwell , Stanimir Varbanov Cc: Andrea della Porta Subject: [PATCH 1/2] mfd: bcm2835-pm: Introduce SoC-specific type identifier Date: Sat, 7 Mar 2026 00:41:21 +0100 Message-ID: X-Mailer: git-send-email 2.51.0 In-Reply-To: References: Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Phil Elwell Power management blocks across the BCM2835 family share a common base but require variant-specific handling. For instance, the BCM2712 lacks ASB register space, yet it manages the power domain for the V3D graphics block. Add a hardware type identifier to the driver's private data. This allows the driver to distinguish between SoC models and implement custom quirks or features as needed. Signed-off-by: Phil Elwell Co-developed-by: Stanimir Varbanov Signed-off-by: Stanimir Varbanov Signed-off-by: Andrea della Porta Reviewed-by: Florian Fainelli --- drivers/mfd/bcm2835-pm.c | 7 ++++--- include/linux/mfd/bcm2835-pm.h | 7 +++++++ 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/drivers/mfd/bcm2835-pm.c b/drivers/mfd/bcm2835-pm.c index 8bed59816e82e..2d5dc521b623d 100644 --- a/drivers/mfd/bcm2835-pm.c +++ b/drivers/mfd/bcm2835-pm.c @@ -81,6 +81,7 @@ static int bcm2835_pm_probe(struct platform_device *pdev) platform_set_drvdata(pdev, pm); =20 pm->dev =3D dev; + pm->soc =3D (uintptr_t)device_get_match_data(dev); =20 ret =3D bcm2835_pm_get_pdata(pdev, pm); if (ret) @@ -106,9 +107,9 @@ static int bcm2835_pm_probe(struct platform_device *pde= v) =20 static const struct of_device_id bcm2835_pm_of_match[] =3D { { .compatible =3D "brcm,bcm2835-pm-wdt", }, - { .compatible =3D "brcm,bcm2835-pm", }, - { .compatible =3D "brcm,bcm2711-pm", }, - { .compatible =3D "brcm,bcm2712-pm", }, + { .compatible =3D "brcm,bcm2835-pm", .data =3D (void *)BCM2835_PM_SOC_BCM= 2835 }, + { .compatible =3D "brcm,bcm2711-pm", .data =3D (void *)BCM2835_PM_SOC_BCM= 2711 }, + { .compatible =3D "brcm,bcm2712-pm", .data =3D (void *)BCM2835_PM_SOC_BCM= 2712 }, {}, }; MODULE_DEVICE_TABLE(of, bcm2835_pm_of_match); diff --git a/include/linux/mfd/bcm2835-pm.h b/include/linux/mfd/bcm2835-pm.h index f70a810c55f7d..d2e17ab1dbfc5 100644 --- a/include/linux/mfd/bcm2835-pm.h +++ b/include/linux/mfd/bcm2835-pm.h @@ -5,11 +5,18 @@ =20 #include =20 +enum bcm2835_soc { + BCM2835_PM_SOC_BCM2835, + BCM2835_PM_SOC_BCM2711, + BCM2835_PM_SOC_BCM2712, +}; + struct bcm2835_pm { struct device *dev; void __iomem *base; void __iomem *asb; void __iomem *rpivid_asb; + enum bcm2835_soc soc; }; =20 #endif /* BCM2835_MFD_PM_H */ --=20 2.35.3