Commit Graph

599614 Commits

Author SHA1 Message Date
Wadim Egorov
bbd87a7eba UPSTREAM: regulator: rk808: Add rk808_reg_ops_ranges for LDO3
LDO_REG3 descriptor is using linear_ranges.
Add and use proper ops for LDO_REG3.

Change-Id: Iad515fd23e7b3bca6248739a54335a71eed01238
Signed-off-by: Wadim Egorov <w.egorov@phytec.de>
Signed-off-by: Mark Brown <broonie@kernel.org>
(cherry picked from commit 129d7cf98f)
Signed-off-by: Elaine Zhang <zhangqing@rock-chips.com>
2017-02-28 09:48:12 +08:00
Arnd Bergmann
6bd7222399 UPSTREAM: regulator: rk808: remove unused rk808_reg_ops_ranges
After removing all uses of the range operations in a recent patch,
we get a warning about the symbol not being referenced anywhere:

drivers/regulator/rk808-regulator.c:306:29: 'rk808_reg_ops_ranges' defined but not used

This removes the now-unused structure along with the
rk808_set_suspend_voltage_range function that is only referenced from
rk808_reg_ops_ranges.

Fixes: afcd666d9d ("regulator: rk808: remove linear range definitions with a single range")
Change-Id: I565c91186ab5d7457a62b3bc4b4896a08f39dd2e
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Mark Brown <broonie@kernel.org>
(cherry picked from commit 4a5ed8c1ad)
Signed-off-by: Elaine Zhang <zhangqing@rock-chips.com>
2017-02-28 09:47:10 +08:00
Wadim Egorov
7b3aecc7db UPSTREAM: regulator: rk808: remove linear range definitions with a single range
The driver was using only linear ranges. Now we remove linear range
definitions with a single range. So we have to add an ops struct for
ranges and adjust all other ops functions accordingly.

Change-Id: I6b2dd5e035832f9460ec8a24b5214204f7a930b7
Signed-off-by: Wadim Egorov <w.egorov@phytec.de>
Signed-off-by: Mark Brown <broonie@kernel.org>
(cherry picked from commit afcd666d9d)
Signed-off-by: Elaine Zhang <zhangqing@rock-chips.com>
2017-02-28 09:46:22 +08:00
Huang, Tao
92f4f27b7f arm64: dts: rockchip: add dts file for rk3399-evb-rev3-android
Change-Id: I63306691f6b99243bec6289acda7abe303c70266
Signed-off-by: Huang, Tao <huangtao@rock-chips.com>
2017-02-27 21:10:55 +08:00
Huang, Tao
94380f7852 arm64: dts: rockchip: cleanup rk3399-android.dtsi
default enable rkvdec and vpu.
rga is default on, remove duplicate configuration.

Change-Id: I8375b2202a81977238e8120e1c2d60f2130844b5
Signed-off-by: Huang, Tao <huangtao@rock-chips.com>
2017-02-27 20:56:10 +08:00
Nickey Yang
3ca1558a7d drm/rockchip: dw_hdmi: add default 594Mhz clk for 4K@60hz
add 594Mhz configuration parameters in rockchip_phy_config

Change-Id: Iaa335cdd90059817fd9892877e574f8b84f2b5dc
Signed-off-by: Nickey Yang <nickey.yang@rock-chips.com>
2017-02-27 19:09:20 +08:00
Nickey Yang
6976f8c987 drm/edid: Add 3840x2160@60hz modes
Add 3840x2160@60hz modes in edid_4k_modes[] array.

Change-Id: I6d14cecebb68ccfaf4e92109a44bde0eb132f73b
Signed-off-by: Nickey Yang <nickey.yang@rock-chips.com>
2017-02-27 19:08:55 +08:00
Nickey Yang
6e9aa006c4 FROMLIST: drm: edid: HDMI 2.0 HF-VSDB block parsing
Adds parsing for HDMI 2.0 'HDMI Forum Vendor
Specific Data Block'. This block is present in
some HDMI 2.0 EDID's and gives information about
scrambling support, SCDC, 3D Views, and others.

Parsed parameters are stored in drm_connector
structure.
(am from: https://patchwork.kernel.org/patch/9273645)

Signed-off-by: Jose Abreu <joabreu@synopsys.com>
Change-Id: I5a1485b79a407fd27ac4754827de318175bb8f6a
Signed-off-by: Nickey Yang <nickey.yang@rock-chips.com>
2017-02-27 19:07:51 +08:00
Nickey Yang
ac0e805843 FROMLIST: drm: Add SCDC helpers
SCDC is a mechanism defined in the HDMI 2.0 specification that allows
the source and sink devices to communicate.

This commit introduces helpers to access the SCDC and provides the
symbolic names for the various registers defined in the specification.

(am from: https://patchwork.kernel.org/patch/7258251/)

Change-Id: I378bc2b465a720ccfede35a93bce0d9371e78f78
Signed-off-by: Thierry Reding <treding@nvidia.com>
Signed-off-by: Nickey Yang <nickey.yang@rock-chips.com>
2017-02-27 19:07:34 +08:00
Mark Yao
7bf5444245 dt-bindings: rockchip: add missing vop document
Change-Id: Idd86084787216bc835d9e3e8cf4e9d04975da68c
Signed-off-by: Mark Yao <mark.yao@rock-chips.com>
2017-02-27 18:59:32 +08:00
Mark Yao
973af15856 ARM64: dts: rk3328: add vop display node
Change-Id: I60322993b782a6d04ca7e46fdc114a0fbc43778a
Signed-off-by: Mark Yao <mark.yao@rock-chips.com>
2017-02-27 18:59:07 +08:00
Mark Yao
8aefd4b3e3 drm/rockchip: support rk3328 vop
Change-Id: Ic8c1073a22b62fc9a1b2e758429298538727c20e
Signed-off-by: Mark Yao <mark.yao@rock-chips.com>
2017-02-27 18:57:54 +08:00
Mark Yao
84ebff1a85 drm/rockchip: vop: get rid of max_output_fb
max_output_fb is similar to max_display_output

Change-Id: I2045dd1ca5f7c99d723122d1b6c9dbf600db9c61
Signed-off-by: Mark Yao <mark.yao@rock-chips.com>
2017-02-27 18:57:40 +08:00
Mark Yao
0f8aea826a drm/rockchip: vop: improve and add more info to vop sysfs
cat /sys/kernel/debug/dri/0/summary:

VOP [ff900000.vop]: ACTIVE
    Connector: DSI
        bus_format[0] output_mode[0]
    Display mode: 1200x1920p60
        clk[159390] real_clk[159390] type[8] flag[a]
        H: 1200 1280 1281 1341
        V: 1920 1955 1956 1981
    win0-0: DISABLED
    win1-0: DISABLED
    win2-0: ACTIVE
        format: XB24 little-endian (0x34324258)
        zpos: 0
        src: pos[0x0] rect[1200x1920]
        dst: pos[0x0] rect[1200x1920]
        buf[0]: addr: 0x0000000002d3a000 pitch: 4800 offset: 0
    win2-0: DISABLED
    win2-1: DISABLED
    win2-2: DISABLED
    win3-0: DISABLED
    win3-0: DISABLED
    win3-1: DISABLED
    win3-2: DISABLED
VOP [ff8f0000.vop]: DISABLED

Change-Id: I7811b2411bd9d2d52059d15645de399b0de5a49b
Signed-off-by: Mark Yao <mark.yao@rock-chips.com>
2017-02-27 18:57:11 +08:00
Mark Yao
e350deddeb drm: support drm_get_connector_name
Change-Id: I075d948afc2baa47fb147f9a967844a872171397
Signed-off-by: Mark Yao <mark.yao@rock-chips.com>
2017-02-27 18:56:51 +08:00
Rocky Hao
1def405432 arm64: dts: rockchip: add cpu's power coefficient for rk3328
Change-Id: I33112b21b8f92482ba8e337d622e51948ec923a0
Signed-off-by: Rocky Hao <rocky.hao@rock-chips.com>
2017-02-27 18:55:08 +08:00
Rocky Hao
a065a81f3d arm64: dts: rockchip: add tsadc and thermal basic config for rk3328
Change-Id: Ic0d417093c54fea5948fd79cab276ebe7aea0f2e
Signed-off-by: Rocky Hao <rocky.hao@rock-chips.com>
2017-02-27 18:53:23 +08:00
Rocky Hao
25e1c1c286 thermal: rockchip: add rk3328 support
Change-Id: I31f87741a874657fb7caf494ebafd53b6c0ef3b1
Signed-off-by: Rocky Hao <rocky.hao@rock-chips.com>
2017-02-27 14:49:58 +08:00
Rocky Hao
1b4cb8f061 arm64: dts: rockchip: complete cpufreq config data for rk3328
Change-Id: I422ec388ab6d66e1ba669028d7b88525569e88d5
Signed-off-by: Rocky Hao <rocky.hao@rock-chips.com>
2017-02-27 14:49:51 +08:00
Zheng Yang
1300b43673 drm/rockchip: dw_hdmi: use crtc_clock as vpll clock rate
adjusted_mode.crtc_clock is the real pixel clock rate.

Change-Id: Iac242b89e3144bc53c40170c2cec0c0913ef6ee0
Signed-off-by: Zheng Yang <zhengyang@rock-chips.com>
2017-02-24 18:34:20 +08:00
Zheng Yang
cc81ed9f9b drm: bridge/dw_hdmi: support DRM_MODE_FLAG_DBLCLK
Change-Id: I66d9456d6bde38fcf17d5cd5f6394517e4308a68
Signed-off-by: Zheng Yang <zhengyang@rock-chips.com>
2017-02-24 18:33:59 +08:00
Mark Yao
5f60b8bb4e drm/rockchip: vop: support DRM_MODE_FLAG_DBLCLK
Change-Id: I604e6ba32a2ac3a6569d341d23f9a3368f921120
Signed-off-by: Mark Yao <mark.yao@rock-chips.com>
2017-02-24 18:33:52 +08:00
chenjh
8f704d158a mfd: rk805: fix submodules node available match error
include: rtc, gpio, pwrkey

Change-Id: I3c91e2ade911017125c80008c122f4bf484767f3
Signed-off-by: chenjh <chenjh@rock-chips.com>
2017-02-24 14:40:40 +08:00
Zhangbin Tong
d8b1268195 arm64: dts: rockchip: Add RK3399 Excavator box dts for drm
Change-Id: Ie3c9cadb3cfbd9d4080ff54c0b65933f347e093a
Signed-off-by: Zhangbin Tong <zebulun.tong@rock-chips.com>
2017-02-24 10:59:02 +08:00
Mark Yao
ea14f43e25 arm64: dts: rockchip: clk: rk3399: support dual pll for drm linux
Change-Id: Ifb38159915939731c3cfc83c7e71000281997cf3
Signed-off-by: Mark Yao <mark.yao@rock-chips.com>
2017-02-24 10:39:21 +08:00
Mark Yao
d199b70013 drm: print framebuffer size when plane check fail
Change-Id: Id51f25e407953cf123444cf961da8a0f8f5745e8
Signed-off-by: Mark Yao <mark.yao@rock-chips.com>
2017-02-24 10:39:20 +08:00
Jacob Chen
31b04cfa69 arm64: configs: enable network filesystem for rockchip linux
NFS is a important feature and should be enabled.

Change-Id: Ibc3794bd31f9ddad94af7d3c06d5569fe6feeaf8
Signed-off-by: Jacob Chen <jacob2.chen@rock-chips.com>
2017-02-23 17:34:09 +08:00
Jacob Chen
48384af2c2 ARM: configs: enable network filesystem for rockchip linux
NFS is a important feature and should be enabled.

Change-Id: If38086293c47e038fa605a013786465a466f107a
Signed-off-by: Jacob Chen <jacob2.chen@rock-chips.com>
2017-02-23 17:33:48 +08:00
William Wu
9c5e6aa15e arm64: rockchip_linux_defconfig: enable USB_CONFIGFS_ACM
Change-Id: I70555f8a3897540092068393fea62308fc5e098c
Signed-off-by: William Wu <wulf@rock-chips.com>
2017-02-23 15:34:57 +08:00
William Wu
5ed01faaed arm64: rockchip_defconfig: enable USB_CONFIGFS_MASS_STORAGE
Change-Id: Idb0d19f2ccad9026f3078724cffbd44b67c5d043
Signed-off-by: William Wu <wulf@rock-chips.com>
2017-02-23 15:34:36 +08:00
William Wu
9f27b96874 arm64: rockchip_defconfig: enable USB_CONFIGFS_ACM
Change-Id: I4abe4b08d9dde1e873221431af680298269ddfa5
Signed-off-by: William Wu <wulf@rock-chips.com>
2017-02-23 15:34:29 +08:00
Jacob Chen
0d963185e2 ARM: rockchip_linux_defconfig: enable MASS_STORAGE config
Change-Id: Ib23f4c7c6d302203fcb759e93efc4601ca1a13bd
Signed-off-by: Jacob Chen <jacob2.chen@rock-chips.com>
2017-02-23 14:38:33 +08:00
Bin Yang
3bcded966b drm/rockchip: cdn-dp: modify switchdev name to "cdn-dp"
If DP and HDMI are enabled at the same board, they will be
register switchdev with the same name in the same directory.
This would cause register switchdev fail.

Resulting in the following error:
[    0.882415] [<ffffff8008212044>] sysfs_warn_dup+0x60/0x7c
[    0.882424] [<ffffff800821212c>] sysfs_create_dir_ns+0x74/0x94
[    0.882436] [<ffffff8008359fc0>] kobject_add_internal+0xc8/0x290
[    0.882446] [<ffffff800835a428>] kobject_add+0xe0/0x10c
[    0.882454] [<ffffff80084c2874>] device_add+0xec/0x508
[    0.882462] [<ffffff80084c2e3c>] device_create_groups_vargs+0xb4/0xf8
[    0.882471] [<ffffff80084c2eac>] device_create_vargs+0x2c/0x34
[    0.882479] [<ffffff80084c2f14>] device_create+0x60/0x80
[    0.882491] [<ffffff80087248bc>] switch_dev_register+0x8c/0x120
[    0.882502] [<ffffff80084709ec>] cdn_dp_bind+0x4c4/0x644
[    0.882511] [<ffffff80084c091c>] component_bind_all+0x94/0x1c0
[    0.882523] [<ffffff8008478550>] rockchip_drm_bind+0x1c4/0xb54
[    0.882533] [<ffffff80084c0554>] try_to_bring_up_master.part.3+0xac/0x114
[    0.882542] [<ffffff80084c0780>] component_add+0x88/0xf8
[    0.882550] [<ffffff8008470504>] cdn_dp_probe+0x140/0x164
[    0.882559] [<ffffff80084c71f8>] platform_drv_probe+0x58/0xa4
[    0.882568] [<ffffff80084c5498>] driver_probe_device+0x118/0x2ac
[    0.882576] [<ffffff80084c5778>] __device_attach_driver+0x88/0x98
[    0.882584] [<ffffff80084c38a0>] bus_for_each_drv+0x7c/0xac
[    0.882592] [<ffffff80084c52cc>] __device_attach+0xa4/0x124
[    0.882600] [<ffffff80084c58e4>] device_initial_probe+0x10/0x18
[    0.882609] [<ffffff80084c4924>] bus_probe_device+0x2c/0x8c
[    0.882617] [<ffffff80084c4da0>] deferred_probe_work_func+0x74/0xa0
[    0.882628] [<ffffff80080b2b38>] process_one_work+0x218/0x3e0
[    0.882636] [<ffffff80080b3538>] worker_thread+0x2e8/0x404
[    0.882644] [<ffffff80080b7e70>] kthread+0xe8/0xf0
[    0.882653] [<ffffff8008082690>] ret_from_fork+0x10/0x40
[    0.882675] kobject_add_internal failed for hdmi with -EEXIST, don't try to
register things with the same name in the same directory.

Change-Id: I0c1b175a2483d5524d9cc0e5261d332c5ad286c8
Signed-off-by: Bin Yang <yangbin@rock-chips.com>
2017-02-22 16:08:10 +08:00
Sugar Zhang
f2217176e0 ASoC: rockchip: i2s: add a delay before i2s clear
in order to keep i2s lrck signal integrity, when i2s stop,
need at least one lrck cycle to ensure signal integrity.

the max delay time is when lrck is 8khz, the delay time is
125us(1/8khz), using udelay(150) with a 25us margin.

Change-Id: Ia0b0c8b0153e25ed3686eee2e13f370d0c3da380
Signed-off-by: Sugar Zhang <sugar.zhang@rock-chips.com>
2017-02-22 14:55:08 +08:00
Binyuan Lan
bfc4493a96 arm64: rockchip_linux_defconfig: enable MASS_STORAGE config
Change-Id: Ibe549b102632e6c19c508f46df1b4d4a2b518d51
Signed-off-by: Binyuan Lan <lby@rock-chips.com>
2017-02-22 14:51:57 +08:00
Mark Yao
4d89a73831 drm/rockchip: support cpu cache for drm memory
Change-Id: Ic9ca3d0862eb8c5c4d8a002db8cbbcc93d2dcc02
Signed-off-by: Mark Yao <mark.yao@rock-chips.com>
2017-02-22 14:51:15 +08:00
Zhou weixin
fbf97c9bc4 ARM64: dts: rk3399-tve1205g: set fixed clock timing of panel
Change-Id: I1872ddc5d386b6707ec9ac4e1843b8346a5b36e7
Signed-off-by: Zhou weixin <zwx@rock-chips.com>
2017-02-22 14:31:55 +08:00
Mark Yao
b2558e4432 drm/rockchip: fixup input source check
check destination with max_input is wrong.

Change-Id: If5499b0bc61c84f2b91b641b1974b29b6c042215
Signed-off-by: Mark Yao <mark.yao@rock-chips.com>
2017-02-22 14:27:30 +08:00
Mark Yao
5334ebb963 rockchip: clk: rk3399: default enable dual pll for vop
Change-Id: I88a2a549eaafa91e4159f262a5f5838c834a89e9
Signed-off-by: Mark Yao <mark.yao@rock-chips.com>
2017-02-22 14:24:04 +08:00
Elaine Zhang
bb3fdd8743 clk: rockchip: add pll_wait_lock for pll_enable
if pll is power down,when power up pll need wait pll lock.

Change-Id: I2e795a682a0c9712b41e00ddf054065dde4a5c7c
Signed-off-by: Elaine Zhang <zhangqing@rock-chips.com>
2017-02-22 14:23:34 +08:00
William Wu
0ee3686bdf phy: rockchip-inno-usb3: support u3 to work on u2 only mode
Current code set usb2.0 only mode by type in command and may be
failed if change to usb3.0 for that we need reset the controller
when change mode. This patch add a node in debug file system for
config usb2.0 only or usb2.0/usb3.0 mode. So SLT testing or anyone
else can use this node to change config mode.

1. Config to usb2.0/usb3.0 mode:
   echo u3 > /sys/kernel/debug/<phy name>/u3phy_mode

2. Config to usb2.0 only mode:
   echo u2 > /sys/kernel/debug/<phy name>/u3phy_mode

Change-Id: I11338d8307e771b7d76b61a91477d353444c011c
Signed-off-by: William Wu <wulf@rock-chips.com>
2017-02-22 14:20:06 +08:00
William Wu
ba2cbacfca arm64: dts: rockchip: add grf handle for rk3328 u3phy
The USB 3.0 PHY need to config grf when change between
USB 2.0 only and USB 2.0/3.0 mode, so we add grf property
for u3phy node.

Change-Id: I4ff2670d0637e9d0cbae06f5e9efbde9a8513bb3
Signed-off-by: William Wu <wulf@rock-chips.com>
2017-02-22 14:19:40 +08:00
William Wu
e1b26377c7 usb: dwc3: rockchip-inno: support to set testmodes via debugfs
This patch create host_testmode file in debugfs for
USB HOST. It's useful for us to use a scope to verify
signal integrity for USB2/USB3 HOST.

For example, set testmodes for rk3328 board USB:
1. set test packet for the USB2 port of USB3 interface:
   echo test_packet > /sys/kernel/debug/usb.23/host_testmode

2. set compliance mode for the USB3 port of USB3 interface:
   echo test_u3 > /sys/kernel/debug/usb.23/host_testmode

3. check the testmode status:
   cat /sys/kernel/debug/usb.23/host_testmode
   The log maybe like this:
   U2: test_packet     /* means that U2 in test mode */
   U3: compliance mode /* means that U3 in test mode */

Change-Id: I6ddead14a7b78a011bbffcec6bf865df0632fe1b
Signed-off-by: William Wu <wulf@rock-chips.com>
2017-02-22 14:19:19 +08:00
William Wu
9053aa40d0 phy: rockchip-inno-usb3: add phy_cp_test function for u3phy
The Inno USB3 PHY disable the ability to toggle the CP test
pattern by default. But when do do USB3 compliance test, it
need to change the CP test pattern according to the requirement
of oscilloscope.

This patch add phy_cp_test function to enable the USB3 PHY
to detect the negative pulse which from the Aux Out of the
oscilloscope in SSRX+, and then the USB3 PHY can toggle the
CP test pattern while do USB3 compliance test.

Change-Id: Idbdf937a7a032dcedfd5f207b2d6d5961ed27b15
Signed-off-by: William Wu <wulf@rock-chips.com>
2017-02-22 14:18:58 +08:00
William Wu
4224e942fd phy: add cp_test callback
There are several SoCs (e.g. rk3228h and rk3328) that integrated
with Inno USB3 PHY, they can't toggle CP test pattern when do
USB3 compliance test by default.

This patch add a cp_test callback for USB3 controller to enable
the special USB3 PHY to toggle the CP test pattern.

Change-Id: I2d603202723a4c044d4231af10cfe2c60ec0e988
Signed-off-by: William Wu <wulf@rock-chips.com>
2017-02-22 14:18:11 +08:00
William Wu
d4179fa840 usb: host: xhci-plat: get the usb3 phy for shared_hcd
This patch tries to get the USB3 PHY using, and associates
the XHCI shared_hcd device with it.

With this patch, the USB HUB core driver can do USB PHY
operations base on USB PHY framework, e.g. call usb_phy_
notify_connect() or usb_phy_notify_disconnect() to notify
USB PHY driver to do soft connect or soft disconnect.

Change-Id: I3b51181b840a68ae477b764013446f49dbf7ca70
Signed-off-by: William Wu <wulf@rock-chips.com>
2017-02-22 14:17:39 +08:00
William Wu
1758c75d33 arm64: dts: rockchip: add u3 autosuspend quirk for rk3328
This patch adds a quirk to disable rk3328 xHCI controller
USB3 port autosuspend function, and USB2 port autosuspend
function is still enabled.

Change-Id: Ie5e6883811b09a9a0d839ce59d8f9c4ad8ad3378
Signed-off-by: William Wu <wulf@rock-chips.com>
2017-02-22 14:17:18 +08:00
William Wu
de4d2cb869 usb: dwc3: add dis_u3_autosuspend_quirk
Some xHCI controllers (e.g. Rockchip rk3328 SoC) integrated
in DWC3 IP, don't support USB 3.0 autosuspend well, so we
need to disable USB 3.0 HUB autosuspend function with a quirk.

Change-Id: I72d93837496f875dbcbb16818aa3690017cc1085
Signed-off-by: William Wu <wulf@rock-chips.com>
2017-02-22 14:16:55 +08:00
William Wu
4eab21e6bf usb: host: xhci: set xhci autosuspend quirk based on platform data
Some USB controllers (such as rk3328 SoC DWC3 controller with INNO
USB 3.0 PHY) don't support autosuspend well, when receive remote
wakeup signal from autosuspend, the Port Link State training failed,
the correct PLC is Resume->Recovery->U0, but when the issue happens,
the wrong PLC is Resume->Recovery->Inactive, cause resuming SS port
fail. This issue always occurs when connect with external USB 3.0 HUB.

This patch add a quirk to disable autosuspend function, and add new
'usb3_disable_autosuspend' member in xHCI platform data to support
set the quirk based on platform data.

Change-Id: Ice01d70178206e22658660361dd3a525046cbcf5
Signed-off-by: William Wu <wulf@rock-chips.com>
2017-02-22 14:16:41 +08:00
William Wu
52fc3f5c80 usb: core: hub: add quirk for hub with broken autosuspend function
Some USB host controller seems to have problems with
autosuspend. For example, Rockchip rk3328 SoC USB 3.0
wouldn't handle remote wakeup correctly with external
hub after entered autosuspend, caused to resume SS
port fail.

This patch introduces a new quirk flag for hub that
should remain disabled for autosuspend.

Change-Id: I6d14222b2c5025583fea811a6afd6abd22f41cb9
Signed-off-by: William Wu <wulf@rock-chips.com>
2017-02-22 14:16:04 +08:00