Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

interconnect: icc-rpm: Add support for bus power domain

Add support for attaching to a power domain. This is required
for Aggregate 0 NoC on MSM8996, which is powered by a GDSC.

Signed-off-by: Yassine Oudjana <y.oudjana@protonmail.com>
Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
Tested-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org> #db820c
Link: https://lore.kernel.org/r/20211021132329.234942-3-y.oudjana@protonmail.com
Signed-off-by: Georgi Djakov <djakov@kernel.org>

authored by

Yassine Oudjana and committed by
Georgi Djakov
7de109c0 45c548cc

+8
+7
drivers/interconnect/qcom/icc-rpm.c
··· 11 11 #include <linux/of_device.h> 12 12 #include <linux/of_platform.h> 13 13 #include <linux/platform_device.h> 14 + #include <linux/pm_domain.h> 14 15 #include <linux/regmap.h> 15 16 #include <linux/slab.h> 16 17 ··· 340 339 ret = clk_bulk_prepare_enable(qp->num_clks, qp->bus_clks); 341 340 if (ret) 342 341 return ret; 342 + 343 + if (desc->has_bus_pd) { 344 + ret = dev_pm_domain_attach(dev, true); 345 + if (ret) 346 + return ret; 347 + } 343 348 344 349 provider = &qp->provider; 345 350 INIT_LIST_HEAD(&provider->nodes);
+1
drivers/interconnect/qcom/icc-rpm.h
··· 77 77 size_t num_nodes; 78 78 const char * const *clocks; 79 79 size_t num_clocks; 80 + bool has_bus_pd; 80 81 bool is_bimc_node; 81 82 const struct regmap_config *regmap_cfg; 82 83 unsigned int qos_offset;