Merge tag 'v5.19-rockchip-drivers1' of git://git.kernel.org/pub/scm/linux/kernel/git/mmind/linux-rockchip into arm/drivers
Powerdomain fixes and improvements, some GRF compatible properties and a rk3566 GRF clocksource default setup. * tag 'v5.19-rockchip-drivers1' of git://git.kernel.org/pub/scm/linux/kernel/git/mmind/linux-rockchip: soc: rockchip: Fix compile-testing SoC drivers soc: rockchip: power-domain: Replace dsb() with smb() soc: rockchip: Clean up Kconfig whitespace soc: rockchip: set dwc3 clock for rk3566 dt-bindings: soc: rockchip: add rk3566-pipe-grf compatible soc: rockchip: pm_domains: Fix typo in comment dt-bindings: soc: rockchip: add naneng combo phy register compatible Link: https://lore.kernel.org/r/3998951.tdWV9SEqCh@phil Signed-off-by: Arnd Bergmann <arnd@arndb.de>
This commit is contained in:
@@ -15,6 +15,9 @@ properties:
|
||||
- items:
|
||||
- enum:
|
||||
- rockchip,rk3288-sgrf
|
||||
- rockchip,rk3566-pipe-grf
|
||||
- rockchip,rk3568-pipe-grf
|
||||
- rockchip,rk3568-pipe-phy-grf
|
||||
- rockchip,rk3568-usb2phy-grf
|
||||
- rockchip,rv1108-usbgrf
|
||||
- const: syscon
|
||||
|
||||
@@ -22,7 +22,7 @@ obj-y += microchip/
|
||||
obj-y += amlogic/
|
||||
obj-y += qcom/
|
||||
obj-y += renesas/
|
||||
obj-$(CONFIG_ARCH_ROCKCHIP) += rockchip/
|
||||
obj-y += rockchip/
|
||||
obj-$(CONFIG_SOC_SAMSUNG) += samsung/
|
||||
obj-$(CONFIG_SOC_SIFIVE) += sifive/
|
||||
obj-y += sunxi/
|
||||
|
||||
@@ -23,23 +23,23 @@ config ROCKCHIP_IODOMAIN
|
||||
voltage supplied by the regulators.
|
||||
|
||||
config ROCKCHIP_PM_DOMAINS
|
||||
bool "Rockchip generic power domain"
|
||||
depends on PM
|
||||
select PM_GENERIC_DOMAINS
|
||||
help
|
||||
Say y here to enable power domain support.
|
||||
In order to meet high performance and low power requirements, a power
|
||||
management unit is designed or saving power when RK3288 in low power
|
||||
mode. The RK3288 PMU is dedicated for managing the power of the whole chip.
|
||||
bool "Rockchip generic power domain"
|
||||
depends on PM
|
||||
select PM_GENERIC_DOMAINS
|
||||
help
|
||||
Say y here to enable power domain support.
|
||||
In order to meet high performance and low power requirements, a power
|
||||
management unit is designed or saving power when RK3288 in low power
|
||||
mode. The RK3288 PMU is dedicated for managing the power of the whole chip.
|
||||
|
||||
If unsure, say N.
|
||||
If unsure, say N.
|
||||
|
||||
config ROCKCHIP_DTPM
|
||||
tristate "Rockchip DTPM hierarchy"
|
||||
depends on DTPM && m
|
||||
help
|
||||
Describe the hierarchy for the Dynamic Thermal Power
|
||||
Management tree on this platform. That will create all the
|
||||
power capping capable devices.
|
||||
Describe the hierarchy for the Dynamic Thermal Power Management tree
|
||||
on this platform. That will create all the power capping capable
|
||||
devices.
|
||||
|
||||
endif
|
||||
|
||||
@@ -108,6 +108,20 @@ static const struct rockchip_grf_info rk3399_grf __initconst = {
|
||||
.num_values = ARRAY_SIZE(rk3399_defaults),
|
||||
};
|
||||
|
||||
#define RK3566_GRF_USB3OTG0_CON1 0x0104
|
||||
|
||||
static const struct rockchip_grf_value rk3566_defaults[] __initconst = {
|
||||
{ "usb3otg port switch", RK3566_GRF_USB3OTG0_CON1, HIWORD_UPDATE(0, 1, 12) },
|
||||
{ "usb3otg clock switch", RK3566_GRF_USB3OTG0_CON1, HIWORD_UPDATE(1, 1, 7) },
|
||||
{ "usb3otg disable usb3", RK3566_GRF_USB3OTG0_CON1, HIWORD_UPDATE(1, 1, 0) },
|
||||
};
|
||||
|
||||
static const struct rockchip_grf_info rk3566_pipegrf __initconst = {
|
||||
.values = rk3566_defaults,
|
||||
.num_values = ARRAY_SIZE(rk3566_defaults),
|
||||
};
|
||||
|
||||
|
||||
static const struct of_device_id rockchip_grf_dt_match[] __initconst = {
|
||||
{
|
||||
.compatible = "rockchip,rk3036-grf",
|
||||
@@ -130,6 +144,9 @@ static const struct of_device_id rockchip_grf_dt_match[] __initconst = {
|
||||
}, {
|
||||
.compatible = "rockchip,rk3399-grf",
|
||||
.data = (void *)&rk3399_grf,
|
||||
}, {
|
||||
.compatible = "rockchip,rk3566-pipe-grf",
|
||||
.data = (void *)&rk3566_pipegrf,
|
||||
},
|
||||
{ /* sentinel */ },
|
||||
};
|
||||
|
||||
@@ -178,7 +178,7 @@ static int rockchip_pmu_set_idle_request(struct rockchip_pm_domain *pd,
|
||||
regmap_update_bits(pmu->regmap, pmu->info->req_offset,
|
||||
pd_info->req_mask, idle ? -1U : 0);
|
||||
|
||||
dsb(sy);
|
||||
wmb();
|
||||
|
||||
/* Wait util idle_ack = 1 */
|
||||
target_ack = idle ? pd_info->ack_mask : 0;
|
||||
@@ -285,7 +285,7 @@ static void rockchip_do_pmu_set_power_domain(struct rockchip_pm_domain *pd,
|
||||
regmap_update_bits(pmu->regmap, pmu->info->pwr_offset,
|
||||
pd->info->pwr_mask, on ? 0 : -1U);
|
||||
|
||||
dsb(sy);
|
||||
wmb();
|
||||
|
||||
if (readx_poll_timeout_atomic(rockchip_pmu_domain_is_on, pd, is_on,
|
||||
is_on == on, 0, 10000)) {
|
||||
@@ -1068,9 +1068,9 @@ static struct platform_driver rockchip_pm_domain_driver = {
|
||||
.name = "rockchip-pm-domain",
|
||||
.of_match_table = rockchip_pm_domain_dt_match,
|
||||
/*
|
||||
* We can't forcibly eject devices form power domain,
|
||||
* so we can't really remove power domains once they
|
||||
* were added.
|
||||
* We can't forcibly eject devices from the power
|
||||
* domain, so we can't really remove power domains
|
||||
* once they were added.
|
||||
*/
|
||||
.suppress_bind_attrs = true,
|
||||
},
|
||||
|
||||
Reference in New Issue
Block a user