Commit Graph

1053436 Commits

Author SHA1 Message Date
Elaine Zhang
14d85ea556 regulator: fan53555: fix up the dcdc is disabled when reboot
Before reboot if the DCDC is disabled,
the DCDC is still disabled after restart.
We have an method to workaround:
Use vsel pin to switch the voltage between value in FAN53555_VSEL0
and FAN53555_VSEL1. If VSEL pin is inactive, the voltage of DCDC
are controlled by FAN53555_VSEL0, when we pull vsel pin to active,
they would be controlled by FAN53555_VSEL1.
In this case, we can set FAN53555_VSEL1 to disable dcdc,
So we can make vsel pin to active to disable dcdc,
VSEL pin is inactive to enable DCDC.

Change-Id: I14c823ed11dc3369044ad2ed0b53a6027acbccd0
Signed-off-by: Elaine Zhang <zhangqing@rock-chips.com>
2021-04-06 16:30:19 +08:00
Elaine Zhang
30c764755f regulator: fan53555: add regulator-initial-mode to set default mode
regulator-initial-mode: default mode to set on startup
regulator-initial-mode is set as:
        REGULATOR_MODE_FAST                     0x1
        REGULATOR_MODE_NORMAL                   0x2
Example:
 vdd_cpu_b: syr827@40 {
                compatible = "silergy,syr827";
                reg = <0x40>;
                vin-supply = <&vcc5v0_sys>;
                regulator-compatible = "fan53555-reg";
                regulator-name = "vdd_cpu_b";
                regulator-min-microvolt = <712500>;
                regulator-max-microvolt = <1500000>;
                regulator-ramp-delay = <1000>;
                fcs,suspend-voltage-selector = <1>;
                regulator-always-on;
                regulator-boot-on;
                regulator-initial-state = <3>;
                regulator-initial-mode = <1>;/*1:pwm 2: auto mode*/
                        regulator-state-mem {
                        regulator-off-in-suspend;
                };
        };

Change-Id: I4d3bbd50fd40531113f2cc6fe63905e24888a752
Signed-off-by: Elaine Zhang <zhangqing@rock-chips.com>
2021-04-06 15:21:48 +08:00
Jianqun Xu
1f0218269b pinctrl: rockchip: Add iomux recalculated for rk3328 GPIO2B0~GPIO2B6
The pins from GPIO2B0 to GPIO2B6 are located at GRF_GPIO2BL_IOMUX,
they are recalculated to get correct iomux.

Change-Id: I1e46697c4508c396b5e8140c32c4185925a040ea
Signed-off-by: David Wu <david.wu@rock-chips.com>
Signed-off-by: Jianqun Xu <jay.xu@rock-chips.com>
2021-04-02 16:31:07 +08:00
Jianqun Xu
5f5cb213bc pinctrl: rockchip: Add pinctrl support for rk3308b
The main description for rk3308b is as follows:
 - Old iomux multiplexing extension;
 - GRF_SOC_CON5 register add some bits;
 - Newly added GRF_SOC_CON13/15 register.

Change-Id: I94bfcae5387aceae14895f1cafa0bfea51bf8b63
Signed-off-by: David Wu <david.wu@rock-chips.com>
Signed-off-by: Andy Yan <andy.yan@rock-chips.com>
Signed-off-by: Jianqun Xu <jay.xu@rock-chips.com>
2021-04-02 16:31:07 +08:00
Jianqun Xu
8e4bbb805b pinctrl: rockchip: Add IOMUX_WRITABLE_32BIT flag for rk3288 gpio0 iomux
There are writable 32 bits for PMU_GPIO0's iomux, so add the
IOMUX_WRITABLE_32BIT to read iomux register at first, it would
not change others' bits.

Change-Id: I1fb27c60d5d26e5719b6911a78e7cdf144feba26
Signed-off-by: David Wu <david.wu@rock-chips.com>
Signed-off-by: Jianqun Xu <jay.xu@rock-chips.com>
2021-04-02 16:31:07 +08:00
Jianqun Xu
4ef0e1ab0c pinctrl: rockchip: add support for rv1126
Change-Id: Icf6b6b1291cbc5a6116451ac6280e497bf59318f
Signed-off-by: Jianqun Xu <jay.xu@rock-chips.com>
Signed-off-by: Sugar Zhang <sugar.zhang@rock-chips.com>
2021-04-02 16:31:07 +08:00
Jianqun Xu
026f6903b1 pinctrl: rockchip: add support for rk1808 SoCs
Add support for pinctrl on RK1808 SoCs.

Change-Id: I0688a61af139cc24363b7515036c80d25ff6a738
Signed-off-by: Jianqun Xu <jay.xu@rock-chips.com>
2021-04-02 16:31:07 +08:00
Jianqun Xu
659709bf6a pinctrl: rockchip: rk3568 support set slew rate
Signed-off-by: Jianqun Xu <jay.xu@rock-chips.com>
Change-Id: Ie6eef8318ea0d9273a325ffe18660fb8e8f94dd7
2021-04-02 16:31:02 +08:00
Jianqun Xu
412274582b pinctrl: rockchip: px30 support set slew rate
This patch actually is part of last patch.

Signed-off-by: Jianqun Xu <jay.xu@rock-chips.com>
Change-Id: I7287da4328f5fdf20e5e24b5250c060db2ce815b
2021-04-02 16:30:57 +08:00
Jianqun Xu
e81f2fafc9 pinctrl: rockchip: Add slew rate support
The origin commit is 'pinctrl: rockchip: Add slew rate support for
px30', this commit only pick the support codes without px30, that will
be supported in another path.

The usage of slew rate is needed to config it at DTS,
such as:
  fast speed: slew-rate = <1>;
  slew speed: slew-rate = <0>;

Change-Id: Iefa9c15a35c6c1e94f716f5d6dd7e30d20a7293f
Signed-off-by: David Wu <david.wu@rock-chips.com>
Signed-off-by: Jianqun Xu <jay.xu@rock-chips.com>
2021-04-02 16:30:45 +08:00
Jianqun Xu
68c7a8b0f4 pinctrl: rockchip: support gpio version 2.0
The gpio v2 has some new features:
- Use mask bit for register write;
- Both edge intterupt supported;
- longer debounce time for input intterupt.

Change-Id: I61f3974d2e0cf0e93c686aa11cd35162e59f393b
Signed-off-by: David Wu <david.wu@rock-chips.com>
Signed-off-by: Jianqun Xu <jay.xu@rock-chips.com>
2021-04-02 16:30:45 +08:00
Elaine Zhang
f75ff7765e clk: rockchip: rk3399: add CLK_SET_RATE_PARENT for spdif\i2s\uart1 clks
Change-Id: I797b06e412a0029087bb10ead200f6fca9babbb1
Signed-off-by: Elaine Zhang <zhangqing@rock-chips.com>
2021-04-02 14:21:46 +08:00
Elaine Zhang
01ff13404d clk: rockchip: rk3399: Update the isp clocks
fixed up the isp clk tree change:
    old:
    aclk_isp0-->
            --> hclk_isp1_wrapper
            --> aclk_isp0_wrapper
            --> aclk_isp0_noc
            --> hclk_isp0
                     --> hclk_isp0_noc
                     --> hclk_isp0_wrapper

    aclk_isp1-->
            --> aclk_isp1_noc
            --> hclk_isp1
                     --> hclk_isp1_noc
                     --> aclk_isp1_wrapper
    new:
    aclk_isp0-->
            --> aclk_isp0_wrapper
            --> aclk_isp0_noc
            --> hclk_isp0
                     --> hclk_isp0_noc
                     --> hclk_isp0_wrapper

    aclk_isp1-->
            --> aclk_isp1_wrapper
            --> aclk_isp1_noc
            --> hclk_isp1
                     --> hclk_isp1_noc
                     --> hclk_isp1_wrapper

Change-Id: Icb86b5f87af8a71de5787be3eebe8adcdaf8885e
Signed-off-by: Elaine Zhang <zhangqing@rock-chips.com>
2021-04-02 14:20:13 +08:00
Elaine Zhang
120387c548 clk: rockchip: rk3399: Use MUXTBL to cover Mux selects priorities
add CLK_SET_RATE_PARENT for clk_uartx_frac.

Change-Id: Ide6eab4bd76b9900a8a55f2dc3c79563fc8feda3
Signed-off-by: Elaine Zhang <zhangqing@rock-chips.com>
2021-04-02 14:19:34 +08:00
Elaine Zhang
64f77336b9 clk: rockchip: rk3399: fix up the clk tree description for clk_uart4
slove clk_uart4 set rate error.

Change-Id: Icf8f36a5c68658ed92a1b794dc68f37c729d2646
Signed-off-by: Elaine Zhang <zhangqing@rock-chips.com>
2021-04-02 11:51:49 +08:00
Elaine Zhang
7b581139c3 clk: rockchip: rk3399: fix up some regs description error
Change-Id: Ia992b20f13ba7037b93fcd2fbd67a4d6b3fd1266
Signed-off-by: Elaine Zhang <zhangqing@rock-chips.com>
2021-04-02 11:51:07 +08:00
Elaine Zhang
9de42c75ff clk: rockchip: rk3399: export SCLK_I2SOUT_SRC clk ID for i2s
Change-Id: Ifbcea830e5f49946c1feea3f51d125e6ed566d5f
Signed-off-by: Elaine Zhang <zhangqing@rock-chips.com>
2021-04-02 11:50:54 +08:00
Elaine Zhang
d658ee9626 clk: rockchip: rk3399: export CIF_OUT_SRC clock id for cif
Change-Id: I77423891821dae0412dda4414222ba64bd0a4a4a
Signed-off-by: Elaine Zhang <zhangqing@rock-chips.com>
2021-04-02 11:50:37 +08:00
Elaine Zhang
1f9d2a5bd7 clk: rockchip: rk3399: remove the flag ROCKCHIP_PLL_SYNC_RATE for VPLL and CPLL
to slove the display shaking, when uboot logo display to kernel show.

Change-Id: I804aa09f24bc4fa7b6314a7a5487f0ee1a321724
Signed-off-by: Elaine Zhang <zhangqing@rock-chips.com>
2021-04-02 11:49:52 +08:00
Elaine Zhang
1f7732bedf clk: rockchip: rk3399: make the cpll as parent just for vop
others clk change it's parent from cpll to dummy_cpll.
the vop's parent just vpll and cpll,
make sure each vop have it's own pll as parent.

Change-Id: Ia61e10918e14a69c053455018ddf0183ff15ea19
Signed-off-by: Elaine Zhang <zhangqing@rock-chips.com>
2021-04-02 11:49:52 +08:00
Xing Zheng
fda5ee0f9a clk: rockchip: rk3399: export 480M_SRC clock id for usbphy0/usbphy1
Change-Id: Icd566864d3651e7b64ee8209b66e8a326011422f
Signed-off-by: Xing Zheng <zhengxing@rock-chips.com>
Signed-off-by: Elaine Zhang <zhangqing@rock-chips.com>
2021-04-02 11:49:52 +08:00
Elaine Zhang
156fe5d8c8 clk: rockchip: rk3399: remove unnecessary CLK_IGNORE_UNUSED flags
remove unnecessary CLK_IGNORE_UNUSED flags for m0.

Change-Id: Iba9daf76980c969b90700c175bfa5fec044f3524
Signed-off-by: Elaine Zhang <zhangqing@rock-chips.com>
2021-04-02 11:49:45 +08:00
Elaine Zhang
f5ade2b39d clk: rockchip: rk3399: add cru regs dump for panic
Add cru and pmucru regs dump when system panic.
It's just for debug.

Change-Id: I3f837f2941054129d20c2355d86f575d6ee84665
Signed-off-by: Elaine Zhang <zhangqing@rock-chips.com>
2021-04-02 11:21:52 +08:00
Xing Zheng
9612ffbe54 clk: rockchip: rk3399: Add support frac mode frequencies for independent VPLL
These clock rate are used for HDMI display.

Change-Id: I4742dcfe8ddedfa6b86c38ce03bcaa5c28b34c4e
Signed-off-by: Xing Zheng <zhengxing@rock-chips.com>
Signed-off-by: Elaine Zhang <zhangqing@rock-chips.com>
2021-04-02 11:21:05 +08:00
Xing Zheng
b18ee8cb46 clk: rockchip: rk3399: add all of NOCs into critical clocks
We need to declare that we enable all NOCs which are critical clocks
always and clearly and explicitly show that we have enabled them at
clk_summary.

Change-Id: I859664692b4d1bb0dda0ee38295dfcbc3cc70019
Signed-off-by: Xing Zheng <zhengxing@rock-chips.com>
Signed-off-by: Elaine Zhang <zhangqing@rock-chips.com>
2021-04-02 11:20:00 +08:00
Elaine Zhang
ea2205c458 clk: rockchip: rk3568: use CLK_FRAC_DIVIDER_NO_LIMIT flag for uart clk
Change-Id: I7aa00abf3623f1b96571f327824161428a367892
Signed-off-by: Elaine Zhang <zhangqing@rock-chips.com>
2021-04-02 10:50:45 +08:00
Elaine Zhang
7f5a4fb5e8 clk: rockchip: add flag CLK_FRAC_DIVIDER_NO_LIMIT for fractional divider
There are some clks(uart) that do not have to comply with the 20 times
fractional divider limit.

Change-Id: I420d8ba3b5de65d9e0ea74920d5ea8450ae94465
Signed-off-by: Elaine Zhang <zhangqing@rock-chips.com>
2021-04-02 10:49:58 +08:00
Elaine Zhang
849daef18c clk: rockchip: add clock controller for rk3568
Add the clock tree definition for the new rk3568 SoC.

Signed-off-by: Elaine Zhang <zhangqing@rock-chips.com>
Change-Id: I9c2282938ec51ddf2dd71390b9b0cfef1f0d2735
2021-04-01 18:50:16 +08:00
Elaine Zhang
7713d7fa28 soc: rockchip: power-domain: remove the flag GENPD_FLAG_PM_CLK
make CLK and PD independent on/off.

Change-Id: I77de7602f10a6cca5e9cea342b064e7f3aae4e29
Signed-off-by: Elaine Zhang <zhangqing@rock-chips.com>
2021-04-01 18:13:50 +08:00
Finley Xiao
744b3f1856 soc: rockchip: power-domain: add power domain support for rk3568
This driver is modified to support RK3568 SoCs.

Change-Id: I5895cedad8c8e89f0657276c913e6e99d9544762
Signed-off-by: Finley Xiao <finley.xiao@rock-chips.com>
Signed-off-by: Elaine Zhang <zhangqing@rock-chips.com>
2021-04-01 18:13:50 +08:00
Elaine Zhang
cb96205e58 soc: rockchip: pm_domain: support driver build as tristate module
Change-Id: I017a2892863a2c941163a81f34aeb03e2d0e537b
Signed-off-by: Elaine Zhang <zhangqing@rock-chips.com>
2021-04-01 18:13:50 +08:00
Elaine Zhang
4910bdcba8 soc: rockchip: power-domain: support qos init
init qos once when pd is initialized.
e.g:
	&qos_vop {
		priority-init = <0x202>;
		mode-init = <0x1>;
		bandwidth-init = <0x281>;
		saturation-init = <0x41>;
		extcontrol-init = <0x1>;
	};

Change-Id: I2ff600e97e772f209dd29400cd1fde2edb66dd2b
Signed-off-by: Elaine Zhang <zhangqing@rock-chips.com>
2021-04-01 18:13:50 +08:00
Elaine Zhang
0cf912946e soc: rockchip: power-domain: add power domain support for rv1126
This driver is modified to support RV1126 SoC.

Change-Id: I1a3c87d9b17b198e5cf5408b732b2a53363f4ef1
Signed-off-by: Elaine Zhang <zhangqing@rock-chips.com>
2021-04-01 18:13:50 +08:00
Elaine Zhang
43a0c422db soc: rockchip: power-domain: export pd on/off and pd status
Some special applications of video may require:
rockchip_pmu_pd_on(dev)---> force power on pd
rockchip_pmu_pd_off(dev)---> force power down pd
rockchip_pmu_pd_is_on(dev)---> pd status

Change-Id: I264d76559aef0b0540130bf29a4635a3f5380a7c
Signed-off-by: Elaine Zhang <zhangqing@rock-chips.com>
2021-04-01 18:13:50 +08:00
Finley Xiao
9163d61374 soc: rockchip: power-domain: Add dmcfreq lock when pd on/off
In order to fix deadlock between dmcfreq and vop on/off,
When change vop status and ddr frequency at the same time,
the following deadlock will happen:

vop no/off                            dmcfreq
vop_crtc_disable                      update_devfreq
->mutex_lock(&vop->vop_lock);         ->mutex_lock(&pd->pmu->mutex);
->pm_runtime_put(vop->dev);           ->mutex_lock(&vop->vop_lock);
  ->mutex_lock(&pd->pmu->mutex);      ...

Change-Id: I56a4ee944200826d2a09e3ae8d2f4837f6f769d6
Signed-off-by: Finley Xiao <finley.xiao@rock-chips.com>
Signed-off-by: Elaine Zhang <zhangqing@rock-chips.com>
2021-04-01 18:13:50 +08:00
Elaine Zhang
68b2fe5e6d soc: rockchip: power-domain: Add protection for some special pd during startup
Use DOMAIN_RKXX_PROTECT to keepon the pd during startup.

Change-Id: I526b97ec273e056e703b6e187d0e6ffec44e730c
Signed-off-by: Elaine Zhang <zhangqing@rock-chips.com>
2021-04-01 18:09:38 +08:00
Elaine Zhang
8b9bedf44e soc: rockchip: power-domain: support qos node status get
check if qos node is available for use.

Change-Id: Ife40ee58664cd53a9705cda934b92d886ca35522
Signed-off-by: Elaine Zhang <zhangqing@rock-chips.com>
2021-04-01 18:09:38 +08:00
Elaine Zhang
c31ce8bf63 soc: rockchip: power-domain: Add regulator support
The power domains are supplied by regulators. Add support for them so
that the regulators are properly turned on before a domain is powered up
and turned off when a domain is powered down.

Change-Id: I43ad569e1b82a8e818cbbf2ffcfa6a965d993bbf
Signed-off-by: Elaine Zhang <zhangqing@rock-chips.com>
2021-04-01 18:09:38 +08:00
Elaine Zhang
a46d0a350e soc: rockchip: power-domain: remove the rockchip_pd_power(pd, true)
It's not need to power on all pd when add pm domain.
Use pd's real status for pm_genpd_init().

Change-Id: I9a976f01c1b0ff192e09494dcfa236d786495e96
Signed-off-by: Elaine Zhang <zhangqing@rock-chips.com>
2021-04-01 18:09:38 +08:00
Elaine Zhang
72be71bf71 soc: rockchip: power-domain: add power domain support for rk1808
This driver is modified to support RK1808 SoC.

Change-Id: Id622e126936a242f3dfbab94b0e7c7818b41f9ae
Signed-off-by: Elaine Zhang <zhangqing@rock-chips.com>
2021-04-01 18:09:38 +08:00
Elaine Zhang
a8dd883a2a soc: rockchip: power-domain: add panic when wait status timeout
Change-Id: Ic0ce83068091313942f9277ba56abffa525da1d2
Signed-off-by: Elaine Zhang <zhangqing@rock-chips.com>
2021-04-01 18:09:37 +08:00
Finley Xiao
deb5bade24 soc: rockchip: power-domain: Fix restore error qos value
Change-Id: I74692018652ed2aa45b666f1598662146beec92e
Signed-off-by: Finley Xiao <finley.xiao@rock-chips.com>
Signed-off-by: Elaine Zhang <zhangqing@rock-chips.com>
2021-04-01 18:09:37 +08:00
Finley Xiao
bb88b31d18 soc: rockchip: power-domain: Add support to ignore on/off
Change-Id: I96c3ae8ae53b9ae95f6f896363b761798a534821
Signed-off-by: Finley Xiao <finley.xiao@rock-chips.com>
Signed-off-by: Elaine Zhang <zhangqing@rock-chips.com>
2021-04-01 18:09:37 +08:00
Finley Xiao
bce1425f50 soc: rockchip: power-domain: export qos save and restore
Change-Id: I89af4462f561fa06ace7761e20cf522b5954aaed
Signed-off-by: Finley Xiao <finley.xiao@rock-chips.com>
Signed-off-by: Elaine Zhang <zhangqing@rock-chips.com>
2021-04-01 18:09:37 +08:00
Caesar Wang
0b54bf037b soc: rockchip: power-domain: export idle request
We need to put the power status of HEVC IP into IDLE unless
we can't reset that IP or the SoC would crash down.
rockchip_pmu_idle_request(dev, true)---> enter idle
rockchip_pmu_idle_request(dev, false)---> exit idle

Change-Id: I76733efd2de4f7ee183c1b6bd1545d60038ee31b
Signed-off-by: Caesar Wang <wxt@rock-chips.com>
Signed-off-by: Jeffy Chen <jeffy.chen@rock-chips.com>
Signed-off-by: Randy Li <randy.li@rock-chips.com>
Signed-off-by: Elaine Zhang <zhangqing@rock-chips.com>
2021-04-01 18:09:37 +08:00
Jianqun Xu
eb22b17844 arm64: dts: rockchip: rk3568 fix gpio nodes
Signed-off-by: Jianqun Xu <jay.xu@rock-chips.com>
Change-Id: If8f2290be609b00e37fd34c6abbb7a9192d71978
2021-04-01 16:30:18 +08:00
Jianqun Xu
6c671b92dd FROMLIST: pinctrl: rockchip: add support for rk3568
RK3568 SoCs have 5 gpio controllers, each gpio has 32 pins. GPIO supports
set iomux, pull, drive strength and schmitt.

Change-Id: I857882a985f10fdd8551bbacb632fe206052f40c
Signed-off-by: Jianqun Xu <jay.xu@rock-chips.com>
2021-04-01 16:30:18 +08:00
Jianqun Xu
0f764fec09 FROMGIT: pinctrl: rockchip: make driver be tristate module
Make pinctrl-rockchip driver to be tristate module, support to build as
a module, this is useful for GKI.

Reviewed-by: Heiko Stuebner <heiko@sntech.de>
Signed-off-by: Jianqun Xu <jay.xu@rock-chips.com>
Link: https://lore.kernel.org/r/20210305003907.1692515-3-jay.xu@rock-chips.com
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
(cherry picked from commit be786ac5a6
 git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-pinctrl for-next)
Change-Id: I03d844355d96408774b6a3c8458759e364db4491
2021-04-01 16:30:18 +08:00
Jianqun Xu
569f3cac68 FROMGIT: pinctrl: rockchip: clear int status when driver probed
Some devices may do gpio interrupt trigger and make an int status before
pinctrl driver probed, then the gpio handler will keep complain untill
the device driver works to stop trigger.

Signed-off-by: Ziyuan Xu <xzy.xu@rock-chips.com>
Signed-off-by: Jianqun Xu <jay.xu@rock-chips.com>
Reviewed-by: Heiko Stuebner <heiko@sntech.de>
Link: https://lore.kernel.org/r/20210223101937.273085-1-jay.xu@rock-chips.com
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
(cherry picked from commit b37c35781d
 git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-pinctrl for-next)
Change-Id: I93625437bc4e0096fbc6eca42f6bb3852a672d94
2021-04-01 16:30:18 +08:00
Wang Panzhenzhuan
5f4c98e33d UPSTREAM: pinctrl: rockchip: fix restore error in resume
The restore in resume should match to suspend which only set for RK3288
SoCs pinctrl.

Fixes: 8dca933127 ("pinctrl: rockchip: save and restore gpio6_c6 pinmux in suspend/resume")
Reviewed-by: Jianqun Xu <jay.xu@rock-chips.com>
Reviewed-by: Heiko Stuebner <heiko@sntech.de>
Signed-off-by: Wang Panzhenzhuan <randy.wang@rock-chips.com>
Signed-off-by: Jianqun Xu <jay.xu@rock-chips.com>
Link: https://lore.kernel.org/r/20210223100725.269240-1-jay.xu@rock-chips.com
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
(cherry picked from commit c971af25cd)
Change-Id: Icb7700ff63e3cb8ca46025e6efd260d91608f23f
2021-04-01 16:30:18 +08:00