According to Synopsys Databook, we shouldn't be
relying on GCTL.CORESOFTRESET bit as that's only for
debugging purposes. Instead, let's use DCTL.CSFTRST
if we're OTG or PERIPHERAL mode.
Host side block will be reset by XHCI driver if
necessary. Note that this reduces amount of time
spent on dwc3_probe() by a long margin.
We're still gonna wait for reset to finish for a
long time (default to 1ms max), but tests show that
the reset polling loop executed at most 19 times
(modprobe dwc3 && modprobe -r dwc3 executed 1000
times in a row).
Change-Id: Ie268d8fbe41dbe31e0070556dfd204ad51453c2f
Suggested-by: Mian Yousaf Kaukab <yousaf.kaukab@intel.com>
Signed-off-by: Felipe Balbi <felipe.balbi@linux.intel.com>
Signed-off-by: Wu Liang feng <wulf@rock-chips.com>
(cherry picked from commit f59dcab176)
Per dwc3 databook "Buffer Size Rules and Zero-Length Packets",
dwc3 needs buffer size to be aligned to MaxPacketSize on ep out.
Change-Id: Iff0e9c29c02c09b93bb34fed178051c02221ecc7
Signed-off-by: Wu Liang feng <wulf@rock-chips.com>
This patch doesn't fix any issue, but conforms
to linux coding style.
Change-Id: I87326a21594b905ea5791f73efc1cea0299abe4d
Signed-off-by: Wu Liang feng <wulf@rock-chips.com>
The FIFO resizing logic has been removed, and the default
Tx FIFO size is right on rk3399, so remove the property.
Change-Id: Id3cc138e07222d9256a5cc9b1c81a6d7523d05fb
Signed-off-by: Wu Liang feng <wulf@rock-chips.com>
That FIFO resizing logic was added to support OMAP5
ES1.0 which had a bogus default FIFO size. I can't
remember the exact size of default FIFO, but it was
less than one bulk superspeed packet (<1024) which
would prevent USB3 from ever working on OMAP5 ES1.0.
However, OMAP5 ES1.0 support has been dropped by
commit aa2f4b16f8 ("ARM: OMAP5: id: Remove ES1.0
support") which renders FIFO resizing unnecessary.
Tested-by: Kishon Vijay Abraham I <kishon@ti.com>
Signed-off-by: Felipe Balbi <felipe.balbi@linux.intel.com>
(cherry picked from commit bc5081617f)
Conflicts:
drivers/usb/dwc3/core.h
Change-Id: Id10f41fd06e4877c46a8d760ba95155499a9f46d
Signed-off-by: Wu Liang feng <wulf@rock-chips.com>
The rk3399 clock table had a simple typo in it, calling the SDMMC sample
and drive clocks by the wrong name. Fix this minor typo.
Change-Id: I154f70bd98b58bf3cc148043b11e4a8d18203816
Signed-off-by: Douglas Anderson <dianders@chromium.org>
Tested-by: Brian Norris <briannorris@chromium.org>
Acked-by: Brian Norris <briannorris@chromium.org>
Reviewed-by: Brian Norris <briannorris@chromium.org>
Signed-off-by: Heiko Stuebner <heiko@sntech.de>
Signed-off-by: Ziyuan Xu <xzy.xu@rock-chips.com>
(cherry picked from git.kernel.org/pub/scm/linux/kernel/git/clk/linux.git clk-next
commit 84752e8d8a)
The ARM GICv3 specification mentions the need for dsb after a read
from the ICC_IAR1_EL1 register:
4.1.1 Physical CPU Interface:
The effects of reading ICC_IAR0_EL1 and ICC_IAR1_EL1
on the state of a returned INTID are not guaranteed
to be visible until after the execution of a DSB.
Not having this could result in missed interrupts, so let's add the
required barrier.
[Marc: fixed commit message]
Change-Id: I45f64990252b17a9e89ef69f3e53261b6af62ced
Acked-by: Marc Zyngier <marc.zyngier@arm.com>
Signed-off-by: Tirumalesh Chalamarla <tchalamarla@caviumnetworks.com>
Signed-off-by: Marc Zyngier <marc.zyngier@arm.com>
Signed-off-by: Huang, Tao <huangtao@rock-chips.com>
(cherry picked from commit 1a1ebd5fb1)
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>
This patch add max burst capability for dmaengine and
limit burst capability to one for PL330_QUIRK_BROKEN_NO_FLUSHP
Change-Id: I378325508af1246177e327c6572611545c52e04e
Signed-off-by: Shawn Lin <shawn.lin@rock-chips.com>
Signed-off-by: Caesar Wang <wxt@rock-chips.com>
Signed-off-by: Vinod Koul <vinod.koul@intel.com>
(cherry picked from git.kernel.org next/linux-next.git master
commit 86a8ce7d41)
This patch add max_burst to dma_get_slave_caps for clients
to get the burst capability of slave dma controller.
Conflicts:
include/linux/dmaengine.h
Change-Id: I7ffcf775ad48247ee0bfa9e18c8ee3b4b256eab2
Signed-off-by: Shawn Lin <shawn.lin@rock-chips.com>
Signed-off-by: Caesar Wang <wxt@rock-chips.com>
Signed-off-by: Vinod Koul <vinod.koul@intel.com>
(cherry picked from commit 6d5bbed30f)
This patch adds EXPORT_SYMBOL_GPL calls to common_iommu_setup_dma_ops
and common_iommu_teardown_dma_ops.
Change-Id: I379d487967587cdb9caffa006a7f3763e6cbfb13
Signed-off-by: Huang, Tao <huangtao@rock-chips.com>
Save output_type and output_mode into rockchip_crtc_state,
it's nice to make them into atomic.
Change-Id: I35b000a5dc599449dccf98c1fe58de24073b5246
Signed-off-by: Mark Yao <mark.yao@rock-chips.com>
Tested-by: John Keeping <john@metanate.com>
Signed-off-by: Yakir Yang <ykk@rock-chips.com>
(cherry picked from git.kernel.org next/linux-next.git master
commit 4e257d9eee)
We were accidentally returning PTR_ERR(NULL) which means success when we
wanted to return a negative error code.
Change-Id: Ia56827712eeaafef93ce433c0e05b95534784e30
Fixes: 412d4ae6b7 ('drm/rockchip: hdmi: add Innosilicon HDMI support')
Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
Reviewed-by: Yakir Yang <ykk@rock-chips.com>
(cherry picked from git.kernel.org next/linux-next.git master
commit 2743becb33)
The Innosilicon HDMI is a low power HDMI 1.4 transmitter
IP, and it have been integrated on some rockchip CPUs
(like RK3036, RK312x).
Change-Id: If2c52391f3dc6ca6de4411496c137b5b2fd5cb92
Signed-off-by: Yakir Yang <ykk@rock-chips.com>
Tested-by: Heiko Stuebner <heiko@sntech.de>
(cherry picked from git.kernel.org next/linux-next.git master
commit 412d4ae6b7)
After mali driver upgrade, there are not MALI_MIDGARD_DEBUG_SYS
any more.
Change-Id: I8ecefb576b91faf9c366bf5dd3e2b4d4613d654c
Signed-off-by: Huang, Tao <huangtao@rock-chips.com>
Revise the value of macro which is belong to ctrl_base register.
Change-Id: Ic0943b233d4244dadf42d09343136aae012ac1b4
Signed-off-by: Ziyuan Xu <xzy.xu@rock-chips.com>
Pl330 integrated in rk3036 platform that doesn't support
DMAFLUSHP function. So we add 'arm,pl330-broken-no-flushp' quirk
for rk3036.
Change-Id: Ia70cb7041a0ecb172035a02b507d3713f18aaab9
Signed-off-by: Caesar Wang <wxt@rock-chips.com>
Signed-off-by: Heiko Stuebner <heiko@sntech.de>
(cherry picked from git.kernel.org next/linux-next.git master
commit 29f12bbab4)
The amount of available memory is clearly a board-specific value, so
the core per-soc dtsi should not define a default of any sort.
Therefore move the memory-nodes to the two board files.
Also fix the amount of memory on Kylin (512MB instead of 1GB).
While in most cases the bootloader will override this with the
actual amount of memory, there is no need to keep known wrong values
in the board-dts.
Change-Id: I01645bb5a371b75b3cd3e044200b303b24f3709e
Signed-off-by: Heiko Stuebner <heiko@sntech.de>
Signed-off-by: Caesar Wang <wxt@rock-chips.com>
(cherry picked from git.kernel.org next/linux-next.git master
commit fbf15046f1)
Only one of "broken-cd" and "non-removable" should be supplied
according to Documentation/devicetree/bindings/mmc/mmc.txt.
Obviously emmc and sdio-wifi are non-removable devices, while
broken-cd is for removable device whose card detect pin is broken.
Change-Id: I4be26d4bc14faefa9ff81fcabada0a768419108f
Signed-off-by: Shawn Lin <shawn.lin@rock-chips.com>
Signed-off-by: Heiko Stuebner <heiko@sntech.de>
(cherry picked from git.kernel.org next/linux-next.git master commit
57375d88fa)
Signed-off-by: Caesar Wang <wxt@rock-chips.com>
Enable the recently added vop and hdmi nodes on the rk3036-kylin board.
Change-Id: Ic5207b6976bd1de064343ba23aab958a75a702bb
Signed-off-by: Caesar Wang <wxt@rock-chips.com>
Signed-off-by: Heiko Stuebner <heiko@sntech.de>
(cherry picked from git.kernel.org next/linux-next.git master
commit cef0abefa1)
The rk3036 support two overlay plane and one hwc plane,
it supports IOMMU, and its IOMMU same as rk3288's.
Change-Id: I1d60350c0c422c6fd01725a5926e0c2b15e0240a
Signed-off-by: Caesar Wang <wxt@rock-chips.com>
Signed-off-by: Heiko Stuebner <heiko@sntech.de>
(cherry picked from git.kernel.org next/linux-next.git master
commit d9abae3ca5)
If we playback the 8KHz FS audio with the 256 mclk_fs, we need the
mclk = 256 * 8000 = 2.048MHz, the frac div is 594 / 2.048 = 290,
the frac div value 0x00809015 set to the CRU_CLKSEL7_CON will cause
to hang.
We increase the mclk_fs to 512, will get the mclk = 512 * 8000 =
4.096MHz, use 0x01009015 instead of 0x00809015 to work around this
issue. We will keep tracking it.
Change-Id: I1fd36449bb5b3d6e35b9cd7b8c3165736123515f
Signed-off-by: Xing Zheng <zhengxing@rock-chips.com>
Signed-off-by: Heiko Stuebner <heiko@sntech.de>
Signed-off-by: Caesar Wang <wxt@rock-chips.com>
(cherry picked from git.kernel.org next/linux-next.git master
commit f6bb9d5f30)
This patch adds the needed spi node for rk3036 dts.
We have to use the 4 bus emmc to work if someone want to support
the spi devices, since the pins are re-used by emmc data[5-8] and spi.
In some caseswe need to support the spi devices, that will waste the
emmc performance.
Moment, the kylin/evb hasn't the spi devices to work, so maybe we need wait
the new required to enable in kylin/evb board.
Anyway, the spi should be needed land in rk3036 dts.
Change-Id: I5bace7efcc2aa214be22a9b3009440c053b4c5e7
Signed-off-by: Caesar Wang <wxt@rock-chips.com>
Signed-off-by: Heiko Stuebner <heiko@sntech.de>
(cherry picked from git.kernel.org next/linux-next.git master
commit f629fcfab2)
The I2S block that provide the output clock as the mclk for rt5616,
That will be the master clock input.
Change-Id: Ia5d126c24aa7a869e667f5280d40a6a1977cd4a0
Signed-off-by: Caesar Wang <wxt@rock-chips.com>
Signed-off-by: Heiko Stuebner <heiko@sntech.de>
(cherry picked from git.kernel.org next/linux-next.git master
commit 8f338ecf0c)
As the kylin schematic drawing, add the needed work led for
kylin board.
Run:
echo 0 > /sys/class/leds/kylin:red:led/brightness
echo 1 > /sys/class/leds/kylin:red:led/brightness
The led can normal on/off on kylin board.
Change-Id: I409d2d0f9561396138e5fc8249f9570249f29784
Signed-off-by: Caesar Wang <wxt@rock-chips.com>
Signed-off-by: Heiko Stuebner <heiko@sntech.de>
(cherry picked from git.kernel.org next/linux-next.git master
commit fe25313372)
While drivers will bind to the generic compatible values, this enables
the use of more specialized drivers in the future, if the need arises.
Change-Id: Ifb5028f71140d6742de4c5af668c85b6835c3eb2
Signed-off-by: Caesar Wang <wxt@rock-chips.com>
Signed-off-by: Heiko Stuebner <heiko@sntech.de>
(cherry picked from git.kernel.org next/linux-next.git master
commit 0082180c8d)
Although We can add the sdmmc node, shouldn't enable it.
Since the sdmmc is reusing the same pin with uart2.
Unfortunately, the uart2 is used by the debug port, so that will cause
the debug information can't display on console if enabling the sdmmc.
As we have supported the sdmmc (sd card) on hardware for kylin board.
So, maybe we can have the sdmmc node in kylin dts, not to enable it.
Anyway, you only need add the okay status if someone want to enable the
sdmmc.
e.g.
if you use the adb to debug with android os.
You can add the
status = "okay" to enable the sdmmc for sd card working.
The default status is disabling it.
Change-Id: I5b22571bbf81a43f3cb8f666be59596bbd3a5bfc
Signed-off-by: Caesar Wang <wxt@rock-chips.com>
Signed-off-by: Heiko Stuebner <heiko@sntech.de>
(cherry picked from git.kernel.org next/linux-next.git master
commit 6cff705b2d)
This patch adds the sdio power sequence for kylin board.
The WLAN attached to a SDIO interface, wifi/bluetooth have
reset and power been needed to enable.
AFAIK, the simple power sequence provider sets a value for multiple GPIOs.
So the reset and power of WlAN chip can be handled in mmc power sequence.
On the module itself this is one of these, that should can be handled
by reset GPIOs in simple mmc power sequence.
The Bluetooth host wake is high active from bootup, this patch is also
set pinctrl bias as the default to enable the pull up in soc internal.
Change-Id: I422b0d2de86460c05239f1864322986abec59073
Signed-off-by: Caesar Wang <wxt@rock-chips.com>
Signed-off-by: Heiko Stuebner <heiko@sntech.de>
(cherry picked from git.kernel.org next/linux-next.git master
commit 4a9d0b0337)
We want to the higher speed for wifi module working.
Bootup kernel log:
...
mmc_host mmc0: Bus speed (slot 0) = 37125000Hz (slot req 37500000Hz,
actual 37125000HZ div = 0)
or run 'cat /sys/kernel/debug/clk/clk_summary |grep phase -C 1' to check
Otherwise, the mmc0 will run 400khz defalult value to work.
Change-Id: Id3c9949f86df846e8d8ad65978030cfbef5fe1e4
Signed-off-by: Caesar Wang <wxt@rock-chips.com>
Signed-off-by: Heiko Stuebner <heiko@sntech.de>
(cherry picked from git.kernel.org next/linux-next.git master
commit 99dc9fdc31)
This patch is enabling the uart0 for bluetooth module.
Change-Id: Iad636b38df4c2a1ba4551bc104a343ab4e8aa7c3
Signed-off-by: Caesar Wang <wxt@rock-chips.com>
Signed-off-by: Heiko Stuebner <heiko@sntech.de>
(cherry picked from git.kernel.org next/linux-next.git master
commit 5d69fa0f27)
The rk3036-kylin board uses a rt5616 audio codec connected to the i2s
and can use the simple card to tie everyting together.
Change-Id: I4d55574456457922862e6d534d5749cb339883a2
Signed-off-by: Caesar Wang <wxt@rock-chips.com>
Signed-off-by: Heiko Stuebner <heiko@sntech.de>
(cherry picked from git.kernel.org next/linux-next.git master
commit 47bf3a5c9e)
For sound setups using the simple-card mechanism, the main clock
(sysclk) is expected to be the first element. For the i2s-driver
itself it doesn't matter, as it uses named clocks, so we can just
swap them.
Change-Id: Ie3db65056547acefb9b2bb7b8c2459eb59f51e56
Reported-by: Caesar Wang <wxt@rock-chips.com>
Signed-off-by: Heiko Stuebner <heiko@sntech.de>
Signed-off-by: Caesar Wang <wxt@rock-chips.com>
(cherry picked from git.kernel.org next/linux-next.git master
commit 3860aa1ccf)
Sometime will hang if you set the i2s pinctrl as the none setting.
Let's set the pinctrl as the default setting to enable the gpio bias.
Change-Id: I9a6cc57f15ffcfcae59f2c8cdb64fdda681f8977
Signed-off-by: Caesar Wang <wxt@rock-chips.com>
Signed-off-by: Heiko Stuebner <heiko@sntech.de>
(cherry picked from git.kernel.org next/linux-next.git master
commit f47553325e)
This patchset is the initiation version to try work
for kylin board.
Change-Id: I5d2f69932e17b9ffc93f56bbbe427be3493054c3
Signed-off-by: Caesar Wang <wxt@rock-chips.com>
Reviewed-by: Kees Cook <keescook@chromium.org>
Acked-by: Rob Herring <robh@kernel.org>
Signed-off-by: Heiko Stuebner <heiko@sntech.de>
(cherry picked from git.kernel.org next/linux-next.git master
commit 94cf32b97b)
In general, the sdio/sdmmc is used by the wifi module
and sd card.
let's add the node for these function.
Change-Id: Icff812197ed5319ae23f5d0e479e6fe29a24ff03
Signed-off-by: Caesar Wang <wxt@rock-chips.com>
Reviewed-by: Kees Cook <keescook@chromium.org>
Signed-off-by: Heiko Stuebner <heiko@sntech.de>
(cherry picked from git.kernel.org next/linux-next.git master
commit 187d7967a5)
The pinctrl gpio pull up/down is incorrect since the rk3036 SoCs
can't set the status in the internal.
We should keep the default status for enable the gpio status,
In fact, the pull_none is the disable the gpio pull up/down.
Change-Id: Ia1bf3038c121524cc5df4b9e76739be0b342e877
Signed-off-by: Xing Zheng <zhengxing@rock-chips.com>
Signed-off-by: Caesar Wang <wxt@rock-chips.com>
Reviewed-by: Kees Cook <keescook@chromium.org>
Signed-off-by: Heiko Stuebner <heiko@sntech.de>
(cherry picked from git.kernel.org next/linux-next.git master
commit 68556dd775)