mirror of
https://github.com/torvalds/linux.git
synced 2026-05-24 23:22:31 +02:00
More Qualcomm driver updates for v6.15
Introduce Devicetree binding for providing board-specific firmware-name for the GENI serial engine block. Add SDM630/636 support in pd-mapper. Clean up and fix error handling in the SSC block bus driver. Add missing msm8916-acc compatible to resolve a number of Devicetree validation errors. -----BEGIN PGP SIGNATURE----- iQJJBAABCAAzFiEEBd4DzF816k8JZtUlCx85Pw2ZrcUFAmfa04sVHGFuZGVyc3Nv bkBrZXJuZWwub3JnAAoJEAsfOT8Nma3FVXcQAIpzeRpJw0eBo9oFhM3mFu46E54V l0NHseV2NKE55t/arwYvNqC/fLSp5M7g8uOLSq3icBAUkm0xuzmk147QPqzsOLOc yxqE+GpGFU7iBFPe1HNDHRAdMbeRa6EZJjqhioXdISdBneFpgMk4gnyT+qrMonvz MkSATkrZdZpG5urdxxUkx6R5Mcha/+Dm5a/9PuWJntC+nS4xrEnysKitOiXWnEJu K44HVYFQp+fHFThGq3Nf//5eXp0aXKaVcyvCVB9q8+sbghpbhfDtlfN0d1R6hqB7 +dND+gih4shdMcOaQTuJlEk5BJxPvY9Ck/gDdXah4IWexI96ELMhor2EzKWQdeHH tCIpyE7OTZ123zbjzPsO/aps6owTaFtMIm5HHSz1h0eyboye9bceog6x572Z9uhM rSb1e+NWDQqbAdDIsVVnTSTXRTIwxOnaDsUmucF4/DgAotZBi7QdohBNhpmGhQyV dzPcgtjtxVHgmx/Q0Fd7ND3uGr0aQe4cuzxZPsCRI+JBTdMU/+Ru82Y7i8Zselbb lEippsTiG93n0Id9nxrINnnY4j+51CnH5s0d1n9gt91Y/+7RDkgNlXrt95uS1Mj1 tYiyuIJ2PJxcC1EmLwqL1PyVDaPh5ahHCQCTKZEeF+FAfMjBw1S9XKf4Mfmv2TTM OgK2ff9AfSqxjHAs =L0ts -----END PGP SIGNATURE----- gpgsig -----BEGIN PGP SIGNATURE----- iQIzBAABCgAdFiEEiK/NIGsWEZVxh/FrYKtH/8kJUicFAmfbPWQACgkQYKtH/8kJ UicNGBAArVLfm+j6kHTj0ZltT88HjkhPEaq1Ldxnli9e4s8s7Rs79HHHGIpXcdYi FMPxbN4hw0rbHxCM2VNngNDM7MIA1LTsRchVGfIKsDnqr+DS34CRyPWz+cm719s3 zk62jRCoQq5y50pJYFUPLvNSdixSFkne3Z25vfRqW1qudn/kfZX3DXOKFr7Tso22 hM+/DQa1SNybM3YXMt7++RUjm2WCfsTymhlsT3ptwjFNljePI/CTAnllsMo9U9tw EuKFxCDJ5tlHtlB2p8hCj8GloSvkKQvypl/oOoaW4G/OSocoBILrKiJgNNUo8R9g ykaaTHXDVg6HB6UUNXvtY5EvcUk0kLUmmOqISZIV5IOpB3zx2cIs27z7FiJCQnec c8zjaAEfKzp4yBDN8cz2NurooNB4Igg5QOdYzlRAwrydmo9GNp1BWQ/iTFqijfDH 4I+Uq7NMyIBHYEZNt/dXHcZoeMA4KLueRmvraKTJf7+wfJfONzeK0LZkkyFfWErU y+4gHjRPO3rrYcbJUqLq2ibWaDVQXj3HA1187/Rimv4OBt2S/P0/Dq8dyQDoA9UV GspS576TZEkfIpDvePIaj4laSfOYwCyRc3ppKjcs9W80BcBla6kUMfmgAEFPIyLy 1E8ptLwqZ64CwQ39RDhBcGDAi6vCsPgJ8z5F3TEpZ0xjDpy/Ru0= =2s7I -----END PGP SIGNATURE----- Merge tag 'qcom-drivers-for-6.15-2' of https://git.kernel.org/pub/scm/linux/kernel/git/qcom/linux into soc/drivers More Qualcomm driver updates for v6.15 Introduce Devicetree binding for providing board-specific firmware-name for the GENI serial engine block. Add SDM630/636 support in pd-mapper. Clean up and fix error handling in the SSC block bus driver. Add missing msm8916-acc compatible to resolve a number of Devicetree validation errors. * tag 'qcom-drivers-for-6.15-2' of https://git.kernel.org/pub/scm/linux/kernel/git/qcom/linux: dt-bindings: power: qcom,kpss-acc-v2: add qcom,msm8916-acc compatible bus: qcom-ssc-block-bus: Fix the error handling path of qcom_ssc_block_bus_probe() bus: qcom-ssc-block-bus: Remove some duplicated iounmap() calls soc: qcom: pd-mapper: Add support for SDM630/636 dt-bindings: qcom: geni-se: Add 'firmware-name' property for firmware loading Link: https://lore.kernel.org/r/20250319142448.2279164-1-andersson@kernel.org Signed-off-by: Arnd Bergmann <arnd@arndb.de>
This commit is contained in:
commit
7a85394813
|
|
@ -18,7 +18,9 @@ description:
|
|||
|
||||
properties:
|
||||
compatible:
|
||||
const: qcom,kpss-acc-v2
|
||||
enum:
|
||||
- qcom,kpss-acc-v2
|
||||
- qcom,msm8916-acc
|
||||
|
||||
reg:
|
||||
items:
|
||||
|
|
|
|||
|
|
@ -54,6 +54,10 @@ properties:
|
|||
|
||||
dma-coherent: true
|
||||
|
||||
firmware-name:
|
||||
maxItems: 1
|
||||
description: Specify the name of the QUP firmware to load.
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- reg
|
||||
|
|
@ -135,6 +139,7 @@ examples:
|
|||
#address-cells = <2>;
|
||||
#size-cells = <2>;
|
||||
ranges;
|
||||
firmware-name = "qcom/sa8775p/qupv3fw.elf";
|
||||
|
||||
i2c0: i2c@a94000 {
|
||||
compatible = "qcom,geni-i2c";
|
||||
|
|
|
|||
|
|
@ -264,18 +264,6 @@ static int qcom_ssc_block_bus_probe(struct platform_device *pdev)
|
|||
|
||||
platform_set_drvdata(pdev, data);
|
||||
|
||||
data->pd_names = qcom_ssc_block_pd_names;
|
||||
data->num_pds = ARRAY_SIZE(qcom_ssc_block_pd_names);
|
||||
|
||||
/* power domains */
|
||||
ret = qcom_ssc_block_bus_pds_attach(&pdev->dev, data->pds, data->pd_names, data->num_pds);
|
||||
if (ret < 0)
|
||||
return dev_err_probe(&pdev->dev, ret, "error when attaching power domains\n");
|
||||
|
||||
ret = qcom_ssc_block_bus_pds_enable(data->pds, data->num_pds);
|
||||
if (ret < 0)
|
||||
return dev_err_probe(&pdev->dev, ret, "error when enabling power domains\n");
|
||||
|
||||
/* low level overrides for when the HW logic doesn't "just work" */
|
||||
res = platform_get_resource_byname(pdev, IORESOURCE_MEM, "mpm_sscaon_config0");
|
||||
data->reg_mpm_sscaon_config0 = devm_ioremap_resource(&pdev->dev, res);
|
||||
|
|
@ -343,11 +331,30 @@ static int qcom_ssc_block_bus_probe(struct platform_device *pdev)
|
|||
|
||||
data->ssc_axi_halt = halt_args.args[0];
|
||||
|
||||
/* power domains */
|
||||
data->pd_names = qcom_ssc_block_pd_names;
|
||||
data->num_pds = ARRAY_SIZE(qcom_ssc_block_pd_names);
|
||||
|
||||
ret = qcom_ssc_block_bus_pds_attach(&pdev->dev, data->pds, data->pd_names, data->num_pds);
|
||||
if (ret < 0)
|
||||
return dev_err_probe(&pdev->dev, ret, "error when attaching power domains\n");
|
||||
|
||||
ret = qcom_ssc_block_bus_pds_enable(data->pds, data->num_pds);
|
||||
if (ret < 0) {
|
||||
dev_err_probe(&pdev->dev, ret, "error when enabling power domains\n");
|
||||
goto err_detach_pds_bus;
|
||||
}
|
||||
|
||||
qcom_ssc_block_bus_init(&pdev->dev);
|
||||
|
||||
of_platform_populate(np, NULL, NULL, &pdev->dev);
|
||||
|
||||
return 0;
|
||||
|
||||
err_detach_pds_bus:
|
||||
qcom_ssc_block_bus_pds_detach(&pdev->dev, data->pds, data->num_pds);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
static void qcom_ssc_block_bus_remove(struct platform_device *pdev)
|
||||
|
|
@ -356,9 +363,6 @@ static void qcom_ssc_block_bus_remove(struct platform_device *pdev)
|
|||
|
||||
qcom_ssc_block_bus_deinit(&pdev->dev);
|
||||
|
||||
iounmap(data->reg_mpm_sscaon_config0);
|
||||
iounmap(data->reg_mpm_sscaon_config1);
|
||||
|
||||
qcom_ssc_block_bus_pds_disable(data->pds, data->num_pds);
|
||||
qcom_ssc_block_bus_pds_detach(&pdev->dev, data->pds, data->num_pds);
|
||||
pm_runtime_disable(&pdev->dev);
|
||||
|
|
|
|||
|
|
@ -429,6 +429,16 @@ static const struct qcom_pdm_domain_data *sc8280xp_domains[] = {
|
|||
NULL,
|
||||
};
|
||||
|
||||
/* Unlike SDM660, SDM630/636 lack CDSP */
|
||||
static const struct qcom_pdm_domain_data *sdm630_domains[] = {
|
||||
&adsp_audio_pd,
|
||||
&adsp_root_pd,
|
||||
&adsp_sensor_pd,
|
||||
&mpss_root_pd,
|
||||
&mpss_wlan_pd,
|
||||
NULL,
|
||||
};
|
||||
|
||||
static const struct qcom_pdm_domain_data *sdm660_domains[] = {
|
||||
&adsp_audio_pd,
|
||||
&adsp_root_pd,
|
||||
|
|
@ -546,6 +556,8 @@ static const struct of_device_id qcom_pdm_domains[] __maybe_unused = {
|
|||
{ .compatible = "qcom,sc7280", .data = sc7280_domains, },
|
||||
{ .compatible = "qcom,sc8180x", .data = sc8180x_domains, },
|
||||
{ .compatible = "qcom,sc8280xp", .data = sc8280xp_domains, },
|
||||
{ .compatible = "qcom,sdm630", .data = sdm630_domains, },
|
||||
{ .compatible = "qcom,sdm636", .data = sdm630_domains, },
|
||||
{ .compatible = "qcom,sda660", .data = sdm660_domains, },
|
||||
{ .compatible = "qcom,sdm660", .data = sdm660_domains, },
|
||||
{ .compatible = "qcom,sdm670", .data = sdm670_domains, },
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user