The MAX96745 convert DP1.4 and eDP1.4a to single or dual GMSL2 serial.
Signed-off-by: Wyon Bi <bivvy.bi@rock-chips.com>
Change-Id: I63951d28b4f8e6be6d1671650cee208ff0760e95
The MAX96745 and MAX96747 convert DP1.4 and
eDP1.4a to single or dual GMSL2 serial. They also send
and receive control channel and peripheral control data,
enabling bidirectional transmission of video and data over
cables in excess of 15 meters in length.
Signed-off-by: Wyon Bi <bivvy.bi@rock-chips.com>
Change-Id: I59a338b0ef092bde1d1a444600acd92348cc9443
The MAX96752F deserializers convert a single- or
dual-link GMSL2 serial input to single or dual OLDI.
Signed-off-by: Wyon Bi <bivvy.bi@rock-chips.com>
Change-Id: Ic0582fa9ce077e0af79ecd0d63af38b23feb7265
The MAX96752F/MAX96754F deserializers convert a
single- or dual-link GMSL2 serial input to single or dual
OLDI. They also send and receive side-channel and
peripheral control data, enabling full-duplex, single wire,
bidirectional transmission of video and data over 15
meter cables.
Signed-off-by: Wyon Bi <bivvy.bi@rock-chips.com>
Change-Id: Ibac9f881bd832e96a8606b9f6492e80f8d2494c6
The dvbm does not work, so there is no need to poweron.
Signed-off-by: Yandong Lin <yandong.lin@rock-chips.com>
Change-Id: I5405e884ddec28da2796e7ce1a5bb0f96d663f11
When a video port just connect to dp and without hdmi, it still
can use hdmi phy pll as clk source if the pixel clk more than
600MHz.
Signed-off-by: Zhang Yubing <yubing.zhang@rock-chips.com>
Change-Id: I975a0faaad867361c0888b795e9369ca1381634f
Current code only supports parsing the first CEA block.
But CTS requires parsing multiple blocks.
Signed-off-by: Algea Cao <algea.cao@rock-chips.com>
Change-Id: I3c4b15fd5f0f08419aa540007722387bee921286
Tuning pre-emphasis and other properties for RK3308BS SoCs.
Signed-off-by: Frank Wang <frank.wang@rock-chips.com>
Change-Id: If7bb89c04a487c54bcca81d2cdaa9ee9bb26533f
This adds the necessary data for handling otp on the rk3308bs.
Signed-off-by: Finley Xiao <finley.xiao@rock-chips.com>
Change-Id: If146859d4c275bbd9ef80653d8ef206b573e0b77
This adds the necessary data for handling efuse on the px30s.
Change-Id: Iaa509d8d22102ff4d054e855d330792f0da8f382
Signed-off-by: Finley Xiao <finley.xiao@rock-chips.com>
Signed-off-by: Jianqun Xu <jay.xu@rock-chips.com>
SC8886 will shutdown the output off in these cases
when battery was removed:
1. INPUT CRRENT is set to 0. In Battery system, battery
would take over system supply, but in no battery system,
it would restart due to system poweroff.
2. VBat is higher than VSysmin, sc8886 would switch
system supply to VBat, But in no battery system, there
is just a capacitance, the voltage of capacitance would
be pull down quickly when supply switch and it make
system restart.
Signed-off-by: Zain Wang <wzz@rock-chips.com>
Change-Id: I0398d55d511254821744c4e7d4448ef4605af509
The value of bit[15:14] in DDR_GRF_BASE1 define px30/px30s.
px30: bit[15:14]=0x00
px30s: bit[15:14]=0x03
Change-Id: I07e31e8fd56ee2eea7883a5f5de012740ec0e98a
Signed-off-by: Liang Chen <cl@rock-chips.com>
On rockchip platforms (e.g. RK3588/RV1106), the dwc3 drd port
can be designed with Type-A interface, and when the drd work
as device mode, the vbus may be set to always on (RK3588 EVB2)
or the vbus is supplied by host.
The current code sets the desired sw_mode to device (peripheral)
when the dwc3 controller is initialized with no usb cable/device
connected, this sets the usb2 phy stay in normal mode. For device
mode with vbus always on (RK3588 EVB2), it's not standard design,
we can allow the usb2 phy to stay in normal mode to detect whether
usb device is connecting to host. But for device mode with vbus
is supplied by host (RV1106 EVB1), we can use the vbus to detect
whether usb device is connecting to host, in this case, the usb2
phy needs to be put in suspend mode by default.
In order to make the usb2 phy in suspend mode by default for
Type-A interface when drd in device mode and vbus isn't always
on, we only set the desired sw_mode to peripheral if the state
of EXTCON_USB it true.
Fixes: 58780864ccc4 ("usb: dwc3: drd: fix desired sw_mode when drd init for rockchip")
Signed-off-by: William Wu <william.wu@rock-chips.com>
Change-Id: I14a1bda0d80c71616007ca983840f3c585c1e6ef
The otg port on Rockchip platforms can be designed in
three different hardware circuits with Type-A interface.
1. RK3588 EVB2 Type-A OTG0 port with vbus is controlled
by gpio, and vbus is always in high level.
2. RV1106 EVB1 Type-A OTG port with standard vbus designed
that vbus isn't always on, and just depends on the OTG
mode, that is, when the OTG port work as device mode,
the vbus is supplied by Host, when the OTG port work
as host mode, the vbus is always on.
3. RV1103 EVB1 Type-A OTG port has no vbus pin, and we set
the utmi_bvalid of phy to high from GRF software control.
In this case, the utmi_bvalid status register is in low
level, so we can't use the utmi_bvalid status to check the
utmi_bvalid for RV1103.
In order to support the above three application scenarios
for Type-A OTG port, especially phy runtime suspend control
for device mode, we need this patch.
With this patch, we can fix the following two issues:
1. RV1106 EVB1 Type-A OTG port can't enter phy suspend if
no usb cable connected.
2. RV1103 failed to switch to device mode by "otg_mode"
node, because phy enter suspend unexpectedly.
Signed-off-by: William Wu <william.wu@rock-chips.com>
Change-Id: Ia0d388345a4768a721a7e289956bca9684f69a36
RV1103 USB has no VBUS pin and we set the utmi_bvalid of phy
to come from PERI_GRF_USBPHY_CON2[14], and at the same time
set the utmi_bvalid to high by default. This case like VBUS
pin always on high level, so we need to add "vbus-always-on"
property for RV1103 USB OTG port.
Signed-off-by: William Wu <william.wu@rock-chips.com>
Change-Id: Iae9297b5b9166976bc5d1f8d3a9b8f110a9e5e34
drm_bridge_attach called by a kms driver to link the bridge to
an encoder's chain, mipi driver shall init a drm_connector when
DRM_BRIDGE_ATTACH_NO_CONNECTOR is set which the bridge shall
not create a drm_connector.
Change-Id: I83f16976ce506a38d80d3595c352e7bc263a50b1
Signed-off-by: Guochun Huang <hero.huang@rock-chips.com>
The voltage of MICBIAS is 0.975*AVDD, it makes the transistors
close to saturation, and appropriately reducing the voltage
can make the transistor work in a linear amplification state.
Signed-off-by: Xing Zheng <zhengxing@rock-chips.com>
Change-Id: Ie7713176204d4c5164c2bb2f4597930748413649
The acodec may need to form a 2mic+2loopback mode with
"mode1" of “I2STDM Digital Loopback Mode”, so here we
need to specify channel_max as 4, so as not to limit
the maximum number of channels.
Signed-off-by: Xing Zheng <zhengxing@rock-chips.com>
Change-Id: I7b4eeedcfb27c1c96ec6b69c5c3d33f8a26ff8a2
According to DP 1.4a 3.5.1.2, when a DP controller reads a request
pre-emphasis and swing that beyond DP standard's limits, the dp
controller shall set the pre-emphasis level according to the request
and set the highest voltage swing level that it can output with the
given pre-emphasis level.
When the pre-emphasis or swing reach the max level that the dp
controller can output, the MAX_PRE-EMPHASIS_REACHED or
MAX_SWING_REACHED bit should be set in DPCD TRAINING_LANEx_SET
registers.
Signed-off-by: Zhang Yubing <yubing.zhang@rock-chips.com>
Change-Id: I5c0529ee991248acbc1689c6e1b0f4719759f167
Page owner of pages used by page owner itself used is missing on arm32
targets. The reason is dummy_handle and failure_handle is not initialized
correctly. Buddy allocator is used to initialize these two handles.
However, buddy allocator is not ready when page owner calls it. This
change fixed that by initializing page owner after buddy initialization.
The working flow before and after this change are:
original logic:
1. allocated memory for page_ext(using memblock).
2. invoke the init callback of page_ext_ops like page_owner(using buddy
allocator).
3. initialize buddy.
after this change:
1. allocated memory for page_ext(using memblock).
2. initialize buddy.
3. invoke the init callback of page_ext_ops like page_owner(using buddy
allocator).
with the change, failure/dummy_handle can get its correct value and page
owner output for example has the one for page owner itself:
Page allocated via order 2, mask 0x6202c0(GFP_USER|__GFP_NOWARN), pid 1006, ts 67278156558 ns
PFN 543776 type Unmovable Block 531 type Unmovable Flags 0x0()
init_page_owner+0x28/0x2f8
invoke_init_callbacks_flatmem+0x24/0x34
start_kernel+0x33c/0x5d8
Link: https://lkml.kernel.org/r/1603104925-5888-1-git-send-email-zhenhuah@codeaurora.org
Signed-off-by: Zhenhua Huang <zhenhuah@codeaurora.org>
Acked-by: Vlastimil Babka <vbabka@suse.cz>
Cc: Joonsoo Kim <iamjoonsoo.kim@lge.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
(cherry picked from commit 7fb7ab6d61)
Signed-off-by: Jianqun Xu <jay.xu@rock-chips.com>
Change-Id: I5bdf1274eba27dacd41b92246c70bb41a69bd87e
It is necessary for rv1106 to enable win interlace_read
feature when using 'i' display mode, like 720x480i and
720x576i.
Signed-off-by: Damon Ding <damon.ding@rock-chips.com>
Change-Id: I174043875d2b19f0eebaa43f3555de3ca6d96c00