Commit d4a3b442 authored by Arnd Bergmann's avatar Arnd Bergmann

Merge tag 'v5.19-rockchip-drivers1' of...

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@philSigned-off-by: default avatarArnd Bergmann <arnd@arndb.de>
parents 3f656f26 add9f6f3
...@@ -15,6 +15,9 @@ properties: ...@@ -15,6 +15,9 @@ properties:
- items: - items:
- enum: - enum:
- rockchip,rk3288-sgrf - rockchip,rk3288-sgrf
- rockchip,rk3566-pipe-grf
- rockchip,rk3568-pipe-grf
- rockchip,rk3568-pipe-phy-grf
- rockchip,rk3568-usb2phy-grf - rockchip,rk3568-usb2phy-grf
- rockchip,rv1108-usbgrf - rockchip,rv1108-usbgrf
- const: syscon - const: syscon
......
...@@ -22,7 +22,7 @@ obj-y += microchip/ ...@@ -22,7 +22,7 @@ obj-y += microchip/
obj-y += amlogic/ obj-y += amlogic/
obj-y += qcom/ obj-y += qcom/
obj-y += renesas/ obj-y += renesas/
obj-$(CONFIG_ARCH_ROCKCHIP) += rockchip/ obj-y += rockchip/
obj-$(CONFIG_SOC_SAMSUNG) += samsung/ obj-$(CONFIG_SOC_SAMSUNG) += samsung/
obj-$(CONFIG_SOC_SIFIVE) += sifive/ obj-$(CONFIG_SOC_SIFIVE) += sifive/
obj-y += sunxi/ obj-y += sunxi/
......
...@@ -38,8 +38,8 @@ config ROCKCHIP_DTPM ...@@ -38,8 +38,8 @@ config ROCKCHIP_DTPM
tristate "Rockchip DTPM hierarchy" tristate "Rockchip DTPM hierarchy"
depends on DTPM && m depends on DTPM && m
help help
Describe the hierarchy for the Dynamic Thermal Power Describe the hierarchy for the Dynamic Thermal Power Management tree
Management tree on this platform. That will create all the on this platform. That will create all the power capping capable
power capping capable devices. devices.
endif endif
...@@ -108,6 +108,20 @@ static const struct rockchip_grf_info rk3399_grf __initconst = { ...@@ -108,6 +108,20 @@ static const struct rockchip_grf_info rk3399_grf __initconst = {
.num_values = ARRAY_SIZE(rk3399_defaults), .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 = { static const struct of_device_id rockchip_grf_dt_match[] __initconst = {
{ {
.compatible = "rockchip,rk3036-grf", .compatible = "rockchip,rk3036-grf",
...@@ -130,6 +144,9 @@ static const struct of_device_id rockchip_grf_dt_match[] __initconst = { ...@@ -130,6 +144,9 @@ static const struct of_device_id rockchip_grf_dt_match[] __initconst = {
}, { }, {
.compatible = "rockchip,rk3399-grf", .compatible = "rockchip,rk3399-grf",
.data = (void *)&rk3399_grf, .data = (void *)&rk3399_grf,
}, {
.compatible = "rockchip,rk3566-pipe-grf",
.data = (void *)&rk3566_pipegrf,
}, },
{ /* sentinel */ }, { /* sentinel */ },
}; };
......
...@@ -178,7 +178,7 @@ static int rockchip_pmu_set_idle_request(struct rockchip_pm_domain *pd, ...@@ -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, regmap_update_bits(pmu->regmap, pmu->info->req_offset,
pd_info->req_mask, idle ? -1U : 0); pd_info->req_mask, idle ? -1U : 0);
dsb(sy); wmb();
/* Wait util idle_ack = 1 */ /* Wait util idle_ack = 1 */
target_ack = idle ? pd_info->ack_mask : 0; 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, ...@@ -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, regmap_update_bits(pmu->regmap, pmu->info->pwr_offset,
pd->info->pwr_mask, on ? 0 : -1U); pd->info->pwr_mask, on ? 0 : -1U);
dsb(sy); wmb();
if (readx_poll_timeout_atomic(rockchip_pmu_domain_is_on, pd, is_on, if (readx_poll_timeout_atomic(rockchip_pmu_domain_is_on, pd, is_on,
is_on == on, 0, 10000)) { is_on == on, 0, 10000)) {
...@@ -1068,9 +1068,9 @@ static struct platform_driver rockchip_pm_domain_driver = { ...@@ -1068,9 +1068,9 @@ static struct platform_driver rockchip_pm_domain_driver = {
.name = "rockchip-pm-domain", .name = "rockchip-pm-domain",
.of_match_table = rockchip_pm_domain_dt_match, .of_match_table = rockchip_pm_domain_dt_match,
/* /*
* We can't forcibly eject devices form power domain, * We can't forcibly eject devices from the power
* so we can't really remove power domains once they * domain, so we can't really remove power domains
* were added. * once they were added.
*/ */
.suppress_bind_attrs = true, .suppress_bind_attrs = true,
}, },
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment