Commit Graph

1053423 Commits

Author SHA1 Message Date
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
Elaine Zhang
dd5ed2c51a FROMGIT: clk: rockchip: support more core div setting
Use arrays to support more core independent div settings.
A55 supports each core to work at different frequencies, and each core
has an independent divider control.

Change-Id: I40dde15e25843090160bbc32d2de8e2cddffc96e
Signed-off-by: Elaine Zhang <zhangqing@rock-chips.com>
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>
Acked-by: Stephen Boyd <sboyd@kernel.org>
Link: https://lore.kernel.org/r/20210315085608.16010-4-zhangqing@rock-chips.com
Signed-off-by: Heiko Stuebner <heiko@sntech.de>
(cherry picked from commit a3561e77cf
 git://git.kernel.org/pub/scm/linux/kernel/git/mmind/linux-rockchip.git v5.13-clk/next)
2021-04-01 15:48:17 +08:00
Sugar Zhang
2a8e2fccde clk: rockchip: Add support for clk compensation
Change-Id: I099261a5906dd72dca15cbbf6acea16179c471ad
Signed-off-by: Elaine Zhang <zhangqing@rock-chips.com>
Signed-off-by: Sugar Zhang <sugar.zhang@rock-chips.com>
2021-04-01 15:12:26 +08:00
Elaine Zhang
2aed1b5b93 clk: rockchip: rv1126: mux clocks to none-cpll/hpll
There is a lower power dissipation requirement for some products, like
battery ipc, bell, etc... We have to gate cpll/hpll to reduce power
dissipation.

Signed-off-by: Elaine Zhang <zhangqing@rock-chips.com>
Signed-off-by: Ziyuan Xu <xzy.xu@rock-chips.com>
Change-Id: I48fae621c980b6f7f7d8e8ca71171febd6c6a9a8
Signed-off-by: Elaine Zhang <zhangqing@rock-chips.com>
2021-04-01 15:12:26 +08:00
Finley Xiao
f44db7e0f1 clk: rockchip: Add support for cpu boost
Change-Id: Ie473d60c1076e6b137e2bc7407db73624cd6145f
Signed-off-by: Finley Xiao <finley.xiao@rock-chips.com>
Signed-off-by: Elaine Zhang <zhangqing@rock-chips.com>
2021-04-01 15:12:26 +08:00
Finley Xiao
29d9818f3e clk: rockchip: Add support to get clk scale and rate
Change-Id: I2eeb9f47bffafda4a9706fd48c50d22dd88df2c7
Signed-off-by: Finley Xiao <finley.xiao@rock-chips.com>
Signed-off-by: Elaine Zhang <zhangqing@rock-chips.com>
2021-04-01 15:12:26 +08:00
Finley Xiao
2046169992 clk: rockchip: Fix rk3036 pll rate overflow calculation on 32-bit
Change-Id: I4e367893e97828b01b3e6ec457714c722d2c0af6
Signed-off-by: Finley Xiao <finley.xiao@rock-chips.com>
Signed-off-by: Elaine Zhang <zhangqing@rock-chips.com>
2021-04-01 15:12:26 +08:00
Liang Chen
816ae96705 clk: rockchip: Add adaptive frequency scaling for pll_rk3036
Change-Id: Ifd035967afc1852df81daa2b15afea764c5b851d
Signed-off-by: Liang Chen <cl@rock-chips.com>
Signed-off-by: Elaine Zhang <zhangqing@rock-chips.com>
2021-04-01 15:12:26 +08:00
Finley Xiao
b2ebd03a39 clk: rockchip: Add adaptive frequency scaling for pll_rk3399
Change-Id: Id7be0fd4045f273052d69f49df1272922fb8f8dc
Signed-off-by: Finley Xiao <finley.xiao@rock-chips.com>
Signed-off-by: Elaine Zhang <zhangqing@rock-chips.com>
2021-04-01 15:12:26 +08:00
Finley Xiao
d25e9e589c clk: rockchip: Add adaptive frequency scaling for pll_rk3066
Change-Id: I9c3422a45f86e8b95be0ad069ac70d5490eb5161
Signed-off-by: Finley Xiao <finley.xiao@rock-chips.com>
Signed-off-by: Elaine Zhang <zhangqing@rock-chips.com>
2021-04-01 15:12:26 +08:00
Elaine Zhang
89fdf6df28 clk: rockchip: rk3399: add pll up and down when change pll freq
set pll sequence:
	->set pll to slow mode or other plls
	->set pll down
	->set pll params
	->set pll up
	->wait pll lock status
	->set pll to normal mode

To slove the system error:
rockchip_rk3399_wait_pll_lock: timeout waiting for pll to lock
rockchip_rk3399_pll_set_params: pll update unsucessful,
				trying to restore old params

Change-Id: I62aecd9f292de5a3c7bcd8a87231785bf115159d
Signed-off-by: Elaine Zhang <zhangqing@rock-chips.com>
2021-04-01 15:12:26 +08:00
Elaine Zhang
d8ebdb44b6 clk: rockchip: rk3399: support pll setting by auto
If setting freq is not support in rockchip_pll_rate_table rk3399_pll_rates[],
It can set pll params by auto.

Change-Id: I5016cece64dca4c2efec18d552ee6be426f6b95a
Signed-off-by: Elaine Zhang <zhangqing@rock-chips.com>
2021-04-01 15:12:26 +08:00
Elaine Zhang
e83dd493be clk: rockchip: rk3368: add cru regs dump for panic
Add cru regs dump when system panic.
It's just for debug.

Change-Id: I3aeeeb7f7b9240c917c18bc2d36b082003dc6370
Signed-off-by: Elaine Zhang <zhangqing@rock-chips.com>
2021-04-01 15:07:21 +08:00
Elaine Zhang
6cbf201cec clk: rockchip: add a clock-type for muxes based in the pmugrf
Rockchip socs often have some tiny number of muxes not controlled from
the core clock controller but through bits set in the pmugrf.
Use MUXPMUGRF() to cover this special clock-type.

Change-Id: Iac962a27a3c88ce188d03c416cb4b3b45a462c0a
Signed-off-by: Elaine Zhang <zhangqing@rock-chips.com>
2021-04-01 15:07:20 +08:00