[PATCH v2] soc: qcom: pd-mapper: Add support for SA8775P and QCS8300

Mohammad Rafi Shaik posted 1 patch 1 week, 4 days ago
drivers/soc/qcom/qcom_pd_mapper.c | 24 ++++++++++++++++++++++++
1 file changed, 24 insertions(+)
[PATCH v2] soc: qcom: pd-mapper: Add support for SA8775P and QCS8300
Posted by Mohammad Rafi Shaik 1 week, 4 days ago
Add support for the Qualcomm SA8775P and QCS8300 SoCs to the
protection domain mapper. SA8775P and QCS8300 share the same
protection domain configuration as SM8550 with an additional
gpdsp domain, except for charger_pd and mpss_pd.

Add an entry to the kernel, to avoid the need for userspace to
provide this service.

Signed-off-by: Mohammad Rafi Shaik <mohammad.rafi.shaik@oss.qualcomm.com>
---
changes in [v2]:
 - Added missing GPDSP power domain configuration as suggested by Dmitry.
 - Link to V1: https://lore.kernel.org/all/20251230102508.1491296-1-mohammad.rafi.shaik@oss.qualcomm.com/
---
 drivers/soc/qcom/qcom_pd_mapper.c | 24 ++++++++++++++++++++++++
 1 file changed, 24 insertions(+)

diff --git a/drivers/soc/qcom/qcom_pd_mapper.c b/drivers/soc/qcom/qcom_pd_mapper.c
index 1bcbe6968..aec7ff054 100644
--- a/drivers/soc/qcom/qcom_pd_mapper.c
+++ b/drivers/soc/qcom/qcom_pd_mapper.c
@@ -305,6 +305,18 @@ static const struct qcom_pdm_domain_data cdsp_root_pd = {
 	.services = { NULL },
 };
 
+static const struct qcom_pdm_domain_data gpdsp_root_pd = {
+	.domain = "msm/gpdsp/root_pd",
+	.instance_id = 192,
+	.services = { NULL },
+};
+
+static const struct qcom_pdm_domain_data gpdsp1_root_pd = {
+	.domain = "msm/gpdsp1/root_pd",
+	.instance_id = 241,
+	.services = { NULL },
+};
+
 static const struct qcom_pdm_domain_data slpi_root_pd = {
 	.domain = "msm/slpi/root_pd",
 	.instance_id = 90,
@@ -401,6 +413,16 @@ static const struct qcom_pdm_domain_data *qcs404_domains[] = {
 	NULL,
 };
 
+static const struct qcom_pdm_domain_data *sa8775p_domains[] = {
+	&adsp_audio_pd,
+	&adsp_root_pd,
+	&adsp_sensor_pd,
+	&cdsp_root_pd,
+	&gpdsp_root_pd,
+	&gpdsp1_root_pd,
+	NULL,
+};
+
 static const struct qcom_pdm_domain_data *sc7180_domains[] = {
 	&adsp_audio_pd,
 	&adsp_root_pd_pdr,
@@ -572,6 +594,8 @@ static const struct of_device_id qcom_pdm_domains[] __maybe_unused = {
 	{ .compatible = "qcom,qcm2290", .data = qcm2290_domains, },
 	{ .compatible = "qcom,qcm6490", .data = sc7280_domains, },
 	{ .compatible = "qcom,qcs404", .data = qcs404_domains, },
+	{ .compatible = "qcom,qcs8300", .data = sa8775p_domains, },
+	{ .compatible = "qcom,sa8775p", .data = sa8775p_domains, },
 	{ .compatible = "qcom,sc7180", .data = sc7180_domains, },
 	{ .compatible = "qcom,sc7280", .data = sc7280_domains, },
 	{ .compatible = "qcom,sc8180x", .data = sc8180x_domains, },
-- 
2.34.1
Re: [PATCH v2] soc: qcom: pd-mapper: Add support for SA8775P and QCS8300
Posted by Dmitry Baryshkov 1 week, 4 days ago
On Tue, Jan 27, 2026 at 08:13:15PM +0530, Mohammad Rafi Shaik wrote:
> Add support for the Qualcomm SA8775P and QCS8300 SoCs to the
> protection domain mapper. SA8775P and QCS8300 share the same
> protection domain configuration as SM8550 with an additional
> gpdsp domain, except for charger_pd and mpss_pd.
> 
> Add an entry to the kernel, to avoid the need for userspace to
> provide this service.
> 
> Signed-off-by: Mohammad Rafi Shaik <mohammad.rafi.shaik@oss.qualcomm.com>
> ---
> changes in [v2]:
>  - Added missing GPDSP power domain configuration as suggested by Dmitry.
>  - Link to V1: https://lore.kernel.org/all/20251230102508.1491296-1-mohammad.rafi.shaik@oss.qualcomm.com/
> ---
>  drivers/soc/qcom/qcom_pd_mapper.c | 24 ++++++++++++++++++++++++
>  1 file changed, 24 insertions(+)
> 
> diff --git a/drivers/soc/qcom/qcom_pd_mapper.c b/drivers/soc/qcom/qcom_pd_mapper.c
> index 1bcbe6968..aec7ff054 100644
> --- a/drivers/soc/qcom/qcom_pd_mapper.c
> +++ b/drivers/soc/qcom/qcom_pd_mapper.c
> @@ -305,6 +305,18 @@ static const struct qcom_pdm_domain_data cdsp_root_pd = {
>  	.services = { NULL },
>  };
>  
> +static const struct qcom_pdm_domain_data gpdsp_root_pd = {
> +	.domain = "msm/gpdsp/root_pd",
> +	.instance_id = 192,
> +	.services = { NULL },
> +};
> +
> +static const struct qcom_pdm_domain_data gpdsp1_root_pd = {
> +	.domain = "msm/gpdsp1/root_pd",
> +	.instance_id = 241,
> +	.services = { NULL },
> +};
> +
>  static const struct qcom_pdm_domain_data slpi_root_pd = {
>  	.domain = "msm/slpi/root_pd",
>  	.instance_id = 90,
> @@ -401,6 +413,16 @@ static const struct qcom_pdm_domain_data *qcs404_domains[] = {
>  	NULL,
>  };
>  
> +static const struct qcom_pdm_domain_data *sa8775p_domains[] = {
> +	&adsp_audio_pd,
> +	&adsp_root_pd,
> +	&adsp_sensor_pd,

I don't see sensors PD in linux-firmware.

> +	&cdsp_root_pd,
> +	&gpdsp_root_pd,
> +	&gpdsp1_root_pd,
> +	NULL,
> +};
> +
>  static const struct qcom_pdm_domain_data *sc7180_domains[] = {
>  	&adsp_audio_pd,
>  	&adsp_root_pd_pdr,
> @@ -572,6 +594,8 @@ static const struct of_device_id qcom_pdm_domains[] __maybe_unused = {
>  	{ .compatible = "qcom,qcm2290", .data = qcm2290_domains, },
>  	{ .compatible = "qcom,qcm6490", .data = sc7280_domains, },
>  	{ .compatible = "qcom,qcs404", .data = qcs404_domains, },
> +	{ .compatible = "qcom,qcs8300", .data = sa8775p_domains, },
> +	{ .compatible = "qcom,sa8775p", .data = sa8775p_domains, },

THis is definitely not correct, QCS8300 and SA8755P have different sets
of protection domains.

>  	{ .compatible = "qcom,sc7180", .data = sc7180_domains, },
>  	{ .compatible = "qcom,sc7280", .data = sc7280_domains, },
>  	{ .compatible = "qcom,sc8180x", .data = sc8180x_domains, },
> -- 
> 2.34.1
> 

-- 
With best wishes
Dmitry
Re: [PATCH v2] soc: qcom: pd-mapper: Add support for SA8775P and QCS8300
Posted by Mohammad Rafi Shaik 1 week, 4 days ago

On 1/27/2026 8:46 PM, Dmitry Baryshkov wrote:
> On Tue, Jan 27, 2026 at 08:13:15PM +0530, Mohammad Rafi Shaik wrote:
>> Add support for the Qualcomm SA8775P and QCS8300 SoCs to the
>> protection domain mapper. SA8775P and QCS8300 share the same
>> protection domain configuration as SM8550 with an additional
>> gpdsp domain, except for charger_pd and mpss_pd.
>>
>> Add an entry to the kernel, to avoid the need for userspace to
>> provide this service.
>>
>> Signed-off-by: Mohammad Rafi Shaik <mohammad.rafi.shaik@oss.qualcomm.com>
>> ---
>> changes in [v2]:
>>   - Added missing GPDSP power domain configuration as suggested by Dmitry.
>>   - Link to V1: https://lore.kernel.org/all/20251230102508.1491296-1-mohammad.rafi.shaik@oss.qualcomm.com/
>> ---
>>   drivers/soc/qcom/qcom_pd_mapper.c | 24 ++++++++++++++++++++++++
>>   1 file changed, 24 insertions(+)
>>
>> diff --git a/drivers/soc/qcom/qcom_pd_mapper.c b/drivers/soc/qcom/qcom_pd_mapper.c
>> index 1bcbe6968..aec7ff054 100644
>> --- a/drivers/soc/qcom/qcom_pd_mapper.c
>> +++ b/drivers/soc/qcom/qcom_pd_mapper.c
>> @@ -305,6 +305,18 @@ static const struct qcom_pdm_domain_data cdsp_root_pd = {
>>   	.services = { NULL },
>>   };
>>   
>> +static const struct qcom_pdm_domain_data gpdsp_root_pd = {
>> +	.domain = "msm/gpdsp/root_pd",
>> +	.instance_id = 192,
>> +	.services = { NULL },
>> +};
>> +
>> +static const struct qcom_pdm_domain_data gpdsp1_root_pd = {
>> +	.domain = "msm/gpdsp1/root_pd",
>> +	.instance_id = 241,
>> +	.services = { NULL },
>> +};
>> +
>>   static const struct qcom_pdm_domain_data slpi_root_pd = {
>>   	.domain = "msm/slpi/root_pd",
>>   	.instance_id = 90,
>> @@ -401,6 +413,16 @@ static const struct qcom_pdm_domain_data *qcs404_domains[] = {
>>   	NULL,
>>   };
>>   
>> +static const struct qcom_pdm_domain_data *sa8775p_domains[] = {
>> +	&adsp_audio_pd,
>> +	&adsp_root_pd,
>> +	&adsp_sensor_pd,
> 
> I don't see sensors PD in linux-firmware.
> 
>> +	&cdsp_root_pd,
>> +	&gpdsp_root_pd,
>> +	&gpdsp1_root_pd,
>> +	NULL,
>> +};
>> +
>>   static const struct qcom_pdm_domain_data *sc7180_domains[] = {
>>   	&adsp_audio_pd,
>>   	&adsp_root_pd_pdr,
>> @@ -572,6 +594,8 @@ static const struct of_device_id qcom_pdm_domains[] __maybe_unused = {
>>   	{ .compatible = "qcom,qcm2290", .data = qcm2290_domains, },
>>   	{ .compatible = "qcom,qcm6490", .data = sc7280_domains, },
>>   	{ .compatible = "qcom,qcs404", .data = qcs404_domains, },
>> +	{ .compatible = "qcom,qcs8300", .data = sa8775p_domains, },
>> +	{ .compatible = "qcom,sa8775p", .data = sa8775p_domains, },
> 
> THis is definitely not correct, QCS8300 and SA8755P have different sets
> of protection domains.
> 
ACK,

Sorry for the incorrect mapping,

will make sure never happen again, will cross check with linux-firmware 
and update the change

Thank you for highlighting this.

Best Regards,
Rafi.

>>   	{ .compatible = "qcom,sc7180", .data = sc7180_domains, },
>>   	{ .compatible = "qcom,sc7280", .data = sc7280_domains, },
>>   	{ .compatible = "qcom,sc8180x", .data = sc8180x_domains, },
>> -- 
>> 2.34.1
>>
>