Commit Graph

1059249 Commits

Author SHA1 Message Date
Caesar Wang
a7f311f133 ARM: dts: rk3036: support wifi/bt for kylin
In order to support the ap6212 module with rockchip wlan driver,
the kylin dts has to change the below for working.

1) We should add the 'supports-sdio' property for mmc tuning,
that's the rockchip private property, not on the upstream.

2) We should add the wifi power control pin and wifi/bt data for dts,
Maybe the history issue, they like the old driver for power
contronlling, the upstream didn't need these for working. we should
remove it in the future.

Change-Id: Id49de7ad77b8658a551a07659a8a2ddc9691874c
Signed-off-by: Caesar Wang <wxt@rock-chips.com>
2021-08-04 21:26:51 +08:00
Caesar Wang
9ea8a4b9ef ARM: dts: rk3036: add the aclk for hdmi
As the inno-hdmi driver introduced this clock, add it for dts supporting.

Change-Id: I43328a25f0ac72d5a5b7631cc8ff6ce98b78669a
Signed-off-by: Caesar Wang <wxt@rock-chips.com>
2021-08-04 21:26:51 +08:00
Zhen Chen
7573287026 ARM: dts: rockchip: fix vdd_cpu to 1.25V on rk3036 kylin board
In rk3036, the voltages of CPU and GPU are controlled by the same
regulator 'vdd_cpu'.
Here, we fix it to 1.25v to ensure that GPU could work well in
development period.
The actual voltage GPU needs might be much lower, and relative to
the frequency GPU runs at. this would be optimized when we implement
GPU DVFS with devfreq.

Change-Id: Ia25f0a67577fbfe248a25e4d913dc5f14fa40f0d
Signed-off-by: Zhen Chen <chenzhen@rock-chips.com>
2021-08-04 21:26:29 +08:00
Jacob Chen
ab2e46bf9e ARM: dts: rockchip: merge the hdmi-audio card with rt5616-codec card
Change-Id: I2888cbb7df9d4cd9d270f7fd81f34b27b40997cc
Signed-off-by: Yakir Yang <ykk@rock-chips.com>
Signed-off-by: Jacob Chen <jacob2.chen@rock-chips.com>
2021-08-04 21:10:32 +08:00
Jeffy Chen
d21ed31d1a ARM: dts: rk3036: limit vpu aclk freq to 297M
Change-Id: I5fe0d49b7bde947188fcf718ffdb850e0c20c066
Signed-off-by: Jeffy Chen <jeffy.chen@rock-chips.com>
2021-08-04 21:10:32 +08:00
Jeffy Chen
49c14e6700 ARM: dts: rockchip: enable rockchip-vpu node for rk3036 kylin
Change-Id: I82fe6cd685bbf8e7eb360b40d308890735dcf608
Signed-off-by: Jeffy Chen <jeffy.chen@rock-chips.com>
2021-08-04 21:10:32 +08:00
Jeffy Chen
0cb97665cf ARM: dts: rockchip: add rockchip-vpu node for rk3036
Change-Id: If4ce05777e4e4fd2460c76a5fff75c8b1901529e
Signed-off-by: Jeffy Chen <jeffy.chen@rock-chips.com>
2021-08-04 21:10:32 +08:00
Yakir Yang
41bec5ca99 FROMLIST: ARM: dts: rockchip: enable hdmi audio on rk3036-kylin
Enable the basic hdmi audio function on rk3036 kylin board.

Change-Id: Id9d0971203a75bba9a885d590c40b2ddce355b9f
Signed-off-by: Yakir Yang <ykk@rock-chips.com>
(am from https://patchwork.kernel.org/patch/9178535/)
2021-08-04 21:10:32 +08:00
Caesar Wang
b06afc1fe3 ARM: dts: rk3036: add the supports-emmc for emmc property
I don't need send for upstream since the rockchip inside kernel
need it for tuning. At least the upstream can work it with dwmmc.

Change-Id: Ia9f0836624e8ef1df225dbc6ad1792ec4fb2abbd
Signed-off-by: Caesar Wang <wxt@rock-chips.com>
2021-08-04 21:10:32 +08:00
Yakir Yang
ec89532499 FROMLIST: ARM: dts: rockchip: add simple sound card for RK3036 SoCs
Using I2S as the audio input source, and force the mclk_fs to 256.

Change-Id: Ib85ba7be4de430d5536aaaebe74bb9fde9174f16
Signed-off-by: Yakir Yang <ykk@rock-chips.com>
(am from https://patchwork.kernel.org/patch/9178533/)
2021-08-04 21:10:31 +08:00
Finley Xiao
0ccdc18121 arm: dts: rk3066a-rayeager: Enable cpu and gpu opp table
Change-Id: I7c4a6ce9d9ba81e37a05462ccfc34dd4697492d7
Signed-off-by: Finley Xiao <finley.xiao@rock-chips.com>
2021-08-04 20:40:34 +08:00
Finley Xiao
f467c0ecb0 clk: rockchip: rk3066a: Rename i2s hclk id
Change-Id: I0a5ccf1846950353ea6fc6980c1c4a4fb3457fd1
Signed-off-by: Finley Xiao <finley.xiao@rock-chips.com>
2021-08-04 20:40:34 +08:00
Finley Xiao
2454224752 arm: dts: rk3066a: Add operating-points-v2 property for cpu
This patch adds a new opp table for cpu.

Change-Id: I236fd158efc404c3d3611e3e7d1860cdf534aa57
Signed-off-by: Finley Xiao <finley.xiao@rock-chips.com>
2021-08-04 20:40:34 +08:00
Zhen Chen
85ade7c9f9 ARM: dts: rockchip: rk3066a: correct and add settings of gpu node
Change-Id: I969ced5b48b470868558f19088b8413e1fb99226
Signed-off-by: Zhen Chen <chenzhen@rock-chips.com>
2021-08-04 20:40:34 +08:00
David Wu
8653b5e81c ARM: dts: rk3066a-rayeager: Make hdmi regulator always on
Change-Id: I9bca56928f6f9c12579107f430f8cd0eedd69665
Signed-off-by: David Wu <david.wu@rock-chips.com>
2021-08-04 20:40:34 +08:00
David Wu
82f9c0ec03 ARM: dts: rk3066a-rayeager: Enable vop0 at dts level
Change-Id: Ie3fe65d6d4d59b24a5fa22772e39496914bb0f13
Signed-off-by: David Wu <david.wu@rock-chips.com>
2021-08-04 20:40:33 +08:00
Sugar Zhang
4dbf68fcf2 ARM: dts: rk3066-rayeager: add support for hdmi audio
Change-Id: Idc15040a95a97584117f2f229063b7b404ab2268
Signed-off-by: Sugar Zhang <sugar.zhang@rock-chips.com>
2021-08-04 20:40:33 +08:00
Jacob Chen
ffc238e511 ARM: dts: rockchip: add ums boot mode for Linux
Change-Id: I7f5edb9edbe5b9656fafdfb84f523aa45aa93d93
Signed-off-by: Jacob Chen <jacob2.chen@rock-chips.com>
2021-08-04 20:40:33 +08:00
Chris Zhong
14822c3036 ARM: dts: rk3066a-rayeager: bring up wifi
Change-Id: Iffcf4970fdd5bf1976860a9be695452a748bdc2a
Signed-off-by: Chris Zhong <zyw@rock-chips.com>
2021-08-04 20:40:33 +08:00
Chris Zhong
d8a0e6703b ARM: dts: rockchip: add nandc node for rk3066a/rk3188
Change-Id: I496f76e9aef91f35c2b7fde285b67add7d5f90ae
Signed-off-by: Chris Zhong <zyw@rock-chips.com>
2021-08-04 20:40:33 +08:00
Mark Yao
153b2b0498 ARM: dts: rk3066a-rayeager: enable gpu function
Change-Id: Ib4fe4770129eacfd7d6f1d6434f065aeb3123d5c
Signed-off-by: Mark Yao <mark.yao@rock-chips.com>
2021-08-04 20:40:33 +08:00
Mark Yao
9754d6f1a9 ARM: dts: rockchip: rk3066a: add mali gpu node
Change-Id: I193269edc32fc40d825f69820f77a96c5d06084c
Signed-off-by: Mark Yao <mark.yao@rock-chips.com>
2021-08-04 20:40:33 +08:00
Finley Xiao
1be6b60452 ARM: dts: rockchip: rk3066a: Add assigned-clocks for cru
Change-Id: I82713524f754b05b8f53921bc4730a10163963be
Signed-off-by: Finley Xiao <finley.xiao@rock-chips.com>
2021-08-04 20:31:25 +08:00
Mark Yao
1a93d5a002 ARM: dts: rockchip: add emac phy-reset for rk3066a-rayeager
Change-Id: I0fb2dfa7c6772189b24fe651ca01511509ff1e87
Signed-off-by: Chris Zhong <zyw@rock-chips.com>
Signed-off-by: Mark Yao <mark.yao@rock-chips.com>
2021-08-04 20:31:25 +08:00
Sandy Huang
8aa6aa0bf2 drm: support ignore drm ioctl permission
Change-Id: I269766a9f3f844933bd294ce681466f5a97b1d43
Signed-off-by: Mark Yao <mark.yao@rock-chips.com>
Signed-off-by: Sandy Huang <hjc@rock-chips.com>
2021-08-04 20:01:16 +08:00
Sandy Huang
d513513390 drm/rockchip: drv: add support afbc
Signed-off-by: Sandy Huang <hjc@rock-chips.com>
Change-Id: I04e99d4d1cfdda75d1938dd2c1e79767ee39b559
2021-08-04 17:36:09 +08:00
Sandy Huang
b33b4d6a73 drm/rockchip: support using reserved memory region for cma
Change-Id: I829162c21748052525b0583185db67015f24141d
Signed-off-by: Mark Yao <mark.yao@rock-chips.com>
Signed-off-by: Sandy Huang <hjc@rock-chips.com>
2021-08-04 17:36:09 +08:00
Sandy Huang
c0be657e1e drm/rockchp: drv: Add support for more than 4G memory
fix log:

rockchip-drm display-subsystem: swiotlb buffer is full (sz: 262144 bytes)

Change-Id: I05fd8a2674e1e73fb1d35c75c009eacc7ba8a236
Signed-off-by: Sandy Huang <hjc@rock-chips.com>
2021-08-04 17:36:09 +08:00
Yu Qiaowei
e35fa0a231 video/rockchip: rga2: Remove the useless code about the src1 channel
1. Remove the useless code about the coordinate after rotation in
   the src1 channel.
2. Remove 4 alignment of the src1 channel.

Signed-off-by: Yu Qiaowei <cerf.yu@rock-chips.com>
Change-Id: Ib780c0143a76e4bfc50c0be95e483c503525ab9f
2021-08-04 09:55:20 +08:00
Jianqun Xu
072228d44e arm64: dts: rockchip: rk3399-android: use irq mode for fiq-debugger
Signed-off-by: Jianqun Xu <jay.xu@rock-chips.com>
Change-Id: I18f48e8a0df6c861bf3ff58a99f724268faa06c6
2021-08-03 15:38:21 +08:00
Tao Huang
e3114d3911 arm64: rockchip_gki.config: Enable CONFIG_PHY_ROCKCHIP_INNO_HDMI
Signed-off-by: Tao Huang <huangtao@rock-chips.com>
Change-Id: I4b72d9621d95d2df2f878dbb2faa2faa39b50f29
2021-08-03 15:18:24 +08:00
Algea Cao
7132bf4dcd phy/rockchip: inno-hdmi: using kernel4.19 inno-hdmi phy driver
Signed-off-by: Algea Cao <algea.cao@rock-chips.com>
Change-Id: I87775498a06539c007051024e403812e6d92ffbe
2021-08-03 15:18:00 +08:00
David Wu
9be1cd8653 i2c: rk3x: Remove start state and irq
Let configuration start and count be performed at the
same time as much as possible, which can reduce the
interval between the start signal and the data signal,
and can also reduce a start irq.

Signed-off-by: David Wu <david.wu@rock-chips.com>
Change-Id: I529300a083dcd264cc5f25a2069b88601cade83e
2021-08-03 14:55:57 +08:00
David Wu
87bf929a47 i2c: rk3x: set special bit for rv1126 i2c2
If want to use i2c2, we must write i2c2 register bit with 1 at PMUGRF.

Change-Id: Id2b5c1b06c206e43de19fe42024846918fa0b145
Signed-off-by: David Wu <david.wu@rock-chips.com>
2021-08-03 14:55:36 +08:00
David Wu
17e882e4bd i2c: busses: rk3x: Fix i2c grf special bit setting
When the property "rockchip,grf" of i2c DTS node exists and
the GRF offset is also valid, special bit needs to be configured.

Change-Id: If7ea4185b940ad026ed822b44cfb0c8acda83500
Signed-off-by: David Wu <david.wu@rock-chips.com>
2021-08-03 14:55:09 +08:00
David Wu
06aaf9fc7b i2c: rk3x: set special bit for rv1108 i2c2
If want to use i2c2, we must write i2c2 register bit with 1 at GRF.

Change-Id: Ia7e59c105647304162bde283a3fb98d9e0db75c3
Signed-off-by: David Wu <david.wu@rock-chips.com>
2021-08-03 14:54:49 +08:00
David Wu
fd1cd4a26c i2c: rk3x: Disable irq after i2c transfer finished
In some case,log like this:

[   12.393926] rk3x-i2c ff150000.i2c: irq in STATE_IDLE, ipd = 0x51
[   12.416592] rk3x-i2c ff150000.i2c: irq in STATE_IDLE, ipd = 0x51

The i2c clock is disabled, so the pending irq clean is not
worked. Disable the interrupt after the i2c jobs were done,
the error log would not happen.

Change-Id: If04a2e2214d675410c67db0f131ee7ef635ddcb4
Signed-off-by: David Wu <david.wu@rock-chips.com>
2021-08-03 14:54:03 +08:00
David Wu
442d0afc25 i2c: rk3x: Disable i2c controller after i2c transfer finished
If the slave hold the scl low for a long time, we will send
the stop because the i2c transfer is timeout. Then reset the
slave, the scl will be released to high by slave, the data
hold low, but the controller's state is messy now, need to
disable i2c controller, it is better to reset i2c controller,
it will go back to normal state.

The log like this:

[ 117.444700] rk3x-i2c ff3d0000.i2c: timeout, ipd: 0x93, state: 2
[ 118.466410] rk3x-i2c ff3d0000.i2c: timeout, ipd: 0x00, state: 1
[ 119.486217] rk3x-i2c ff3d0000.i2c: timeout, ipd: 0x00, state: 1

or

[  91.733176] rk3x-i2c ff3d0000.i2c: timeout, ipd: 0x80, state: 1
[ 103.406776] rk3x-i2c ff3d0000.i2c: timeout, ipd: 0x00, state: 2
[ 104.426636] rk3x-i2c ff3d0000.i2c: timeout, ipd: 0x00, state: 2

Change-Id: I53e6e383c849cea22d870f9488c23720e74115df
Signed-off-by: David Wu <david.wu@rock-chips.com>
2021-08-03 14:53:08 +08:00
David Wu
3dab2c9f64 i2c: rk3x: Leave the irq handle if received nack irq
In the TRX mode, if there was a nack signal at the hardware's
tx, we can get start and nack ipd from the I2C_IPD register,
which will enter nack process, send stop command, change the
state to stop, and enter the handler of stop irq, but the stop
irq may not be generated, it has a latency. So the log will like
this:

[ 69.961944] rk3x-i2c ff650000.i2c: unexpected irq in STOP: 0x10
[ 70.959690] rk3x-i2c ff650000.i2c: timeout, ipd: 0x00, state: 4

This error log will confuse us, it is not easier to locate the problem,
we should get nack error at this time, and processing stop interrupt at
the next, then complete this i2c job.

Change-Id: I073ef288557b1b6f525d936e8f32d9d165c81ec4
Signed-off-by: David Wu <david.wu@rock-chips.com>
2021-08-03 14:49:26 +08:00
David Wu
0f8ac2a29c i2c: rk3x: Add slave_hold_scl ipd clean
The bit7 of I2C_IPD register also needs to be clean, otherwise,
it will always exist.

Change-Id: Iee01bffd83909e84ed99c9fab821e621c970efd3
Signed-off-by: David Wu <david.wu@rock-chips.com>
2021-08-03 14:49:26 +08:00
David Wu
36094b61ce i2c: rk3x: Add "suspended" flag to forbid access I2C bus during suspend/resume noirq
Add "suspended" flag in suspend_noirq()/resume_noirq() callback
to prevent new i2c job started, and use i2c_lock_adapter() to wait
for current i2c transfer finished.

If any i2c client try to access I2C after suspend_noirq() or
before resume_noirq() callback, return the error, and they
should fix it, not to start i2c access at this moment.

Change-Id: Idd1142058d10547d085895a498201c2ade6b9e96
Signed-off-by: David Wu <david.wu@rock-chips.com>
2021-08-03 14:49:10 +08:00
Zhang aihui
37fd8ed0a9 i2c: Devices which have some i2c addr can work in same i2c bus
If i2c slave devices don't work at the same time, which have
the same i2c addr, this patch can make them working.

Change-Id: I1bfb7783924b08bdc6e12bf47c2de01bdac7c2e2
Signed-off-by: Zhang aihui <zah@rock-chips.com>
Signed-off-by: Wang Jie <dave.wang@rock-chips.com>
2021-08-03 14:46:23 +08:00
David Wu
497e7bd6e1 i2c: rk3x: Make sure the i2c transfer to be finished before system reboot
If the system rebooted, there might be i2c transfer at the
same time, it will make something unpredictable, because
the i2c host was reset, but the slave device wasn't, such
as rk808 pmic, so make sure the i2c transfer to be finished
before system shutdown at the reset mode.

This call chain is expected to be executed before kernel_restart
to do something before reset system. such as, i2c restart,
boot mode config.

Change-Id: I3c09f3acbe86595c295edc191aa38351adb7d5dc
Signed-off-by: David Wu <david.wu@rock-chips.com>
Signed-off-by: Jianqun Xu <jay.xu@rock-chips.com>
Signed-off-by: Sugar Zhang <sugar.zhang@rock-chips.com>
2021-08-03 14:44:16 +08:00
David Wu
72dd938512 iio: adc: rockchip: Don't return fail at probe when the regulator is dummy
If the referenced regulator is a dummy, the voltage is invalid,
but someone doesn't need the voltage, just need the adc value,
so don't return fail at probe when the regulator is dummy. If
he wants the voltage, configures the actual referenced regulator
at dts.

Change-Id: I8eaecc1a8e7e57c3a87aa69b9b852735bf4a025a
Signed-off-by: David Wu <david.wu@rock-chips.com>
2021-08-03 11:40:46 +08:00
David Wu
a220765c61 iio: adc: rockchip_saradc: Just get referenced voltage once at probe
The referenced voltage is not changed after initiation, so just only
get referenced voltage once.

Change-Id: I1eeab03f68855fafe010db328ec7bbcfa7d52310
Signed-off-by: David Wu <david.wu@rock-chips.com>
2021-08-03 11:40:11 +08:00
David Wu
a195f5035c dts: rockchip: Set pwm pin pull down when used for negative pwm regulator
As a second global reset, the GRF is not reset, the iomux and
pull of PWM pin is still keeping, but PWM controller is reset,
PWM pin goes into input mode. However, the pull is still none
changed in kernel, which can cause voltage problems, so should
always keep the PWM pin pull down mode, with 0~50 μA power
increase.

Change-Id: Ibbb9465f7c550d49d416bc3438c5199434df6eba
Signed-off-by: David Wu <david.wu@rock-chips.com>
2021-08-02 17:39:00 +08:00
David Wu
718c02ce18 pwm: rockchip: Make pwm pinctrl setting after pwm enabled
If the PWM pinctrl uses default state, the iomux setting will
be done at probe, the PWM may not be enabled at this moment.
It will make PWM into an intermediate state, destroy the default
hardware state, the PWM is not ready for work yet. So it is better
for doing PWM pinctrl setting after PWM enabled.

Change-Id: Iea34a7baf6a4d7df0c631f7f4fdab5b9d61bbd5f
Signed-off-by: David Wu <david.wu@rock-chips.com>
2021-08-02 17:39:00 +08:00
Tao Huang
69f5bbb436 i2c: rk3x: Call rk3x_i2c_driver_init() early when CONFIG_ROCKCHIP_THUNDER_BOOT=y
Change-Id: Ia723fcbb4bc5cf65843d343645b6ace538a536db
Signed-off-by: Tao Huang <huangtao@rock-chips.com>
2021-08-02 16:44:56 +08:00
Shawn Lin
d80d5062b2 mmc: dw_mmc-rockchip: Always fix ID mode clk request into 375KHz for RK356X
RK356X SoCs only support 375KHz for ID mode, otherwise it will be always
failed to set clk if the first attempt to identify cards.

Signed-off-by: Shawn Lin <shawn.lin@rock-chips.com>
Change-Id: I99ba322b3eeb4c4658869dc88b7a9f303081e12e
2021-08-02 14:34:35 +08:00
Yifeng Zhao
30f84d3755 mmc: sdhci-of-dwcmshc: rk3568: do not enable DLL while the clock rate less than 52mhz
The DLL may not be able to lock while the clock rate less than 52mhz.

Signed-off-by: Yifeng Zhao <yifeng.zhao@rock-chips.com>
Change-Id: Ifacc3da516d78f5f242d8b03a60500a7dfe28993
2021-08-02 14:34:35 +08:00