Commit Graph

605430 Commits

Author SHA1 Message Date
Zheng Yang
8eb559f250 drm/rockchip: inno_hdmi: fix rk3036 video timing
RK3036 use grf register to set HSYNC/VSYNC polarity,
and fix hdelay and vdelay setting.

Change-Id: I3146a0a146b09f64c1d875642589d0f1dc6f27df
Signed-off-by: Zheng Yang <zhengyang@rock-chips.com>
2017-12-11 14:40:23 +08:00
Jacob Chen
8149b84093 ARM: dts: rockchip: add dts for rk3288-evb-rk808 board for linux
Change-Id: I80c486cb9f21c8dfb62149e6d10167f209ac4536
Signed-off-by: Jacob Chen <jacob2.chen@rock-chips.com>
2017-12-11 14:31:22 +08:00
Huang jianzhi
162aefa91a ARM: dts: rockchip: add dts for rk3288-evb-android-rk808-edp board
Change-Id: I69751d807c248574ce0d07a03b3eacefd883dc64
Signed-off-by: Huang jianzhi <jesse.huang@rock-chips.com>
2017-12-11 14:30:38 +08:00
shengfei Xu
f814345198 pmic: rk808: rk816: fix up the RK816 setting voltage drop make the system crash
Before adjusting voltage, increase clk_cpu div and reduce CPU frequency
Only support for RK312x chips.

Change-Id: Id327da9590f7d9d383450e79acd1b309e05cd024
Signed-off-by: Elaine Zhang <zhangqing@rock-chips.com>
Signed-off-by: shengfei Xu <xsf@rock-chips.com>
2017-12-11 14:18:04 +08:00
Douglas Anderson
6c7c1372cf UPSTREAM: mmc: dw_mmc: Don't allow Runtime PM for SDIO cards
According to the SDIO standard interrupts are normally signalled in a
very complicated way.  They require the card clock to be running and
require the controller to be paying close attention to the signals
coming from the card.  This simply can't happen with the clock stopped
or with the controller in a low power mode.

To that end, we'll disable runtime_pm when we detect that an SDIO card
was inserted.  This is much like with what we do with the special
"SDMMC_CLKEN_LOW_PWR" bit that dw_mmc supports.

NOTE: we specifically do this Runtime PM disabling at card init time
rather than in the enable_sdio_irq() callback.  This is _different_
than how SDHCI does it.  Why do we do it differently?

- Unlike SDHCI, dw_mmc uses the standard sdio_irq code in Linux (AKA
  dw_mmc doesn't set MMC_CAP2_SDIO_IRQ_NOTHREAD).
- Because we use the standard sdio_irq code:
  - We see a constant stream of enable_sdio_irq(0) and
    enable_sdio_irq(1) calls.  This is because the standard code
    disables interrupts while processing and re-enables them after.
  - While interrupts are disabled, there's technically a period where
    we could get runtime disabled while processing interrupts.
  - If we are runtime disabled while processing interrupts, we'll
    reset the controller at resume time (see dw_mci_runtime_resume),
    which seems like a terrible idea because we could possibly have
    another interrupt pending.

To fix the above isues we'd want to put something in the standard
sdio_irq code that makes sure to call pm_runtime get/put when
interrupts are being actively being processed.  That's possible to do,
but it seems like a more complicated mechanism when we really just
want the runtime pm disabled always for SDIO cards given that all the
other bits needed to get Runtime PM vs. SDIO just aren't there.

NOTE: at some point in time someone might come up with a fancy way to
do SDIO interrupts and still allow (some) amount of runtime PM.
Technically we could turn off the card clock if we used an alternate
way of signaling SDIO interrupts (and out of band interrupt is one way
to do this).  We probably wouldn't actually want to fully runtime
suspend in this case though--at least not with the current
dw_mci_runtime_resume() which basically fully resets the controller at
resume time.

Change-Id: I29a687b2342b9cb921aad133a538689a8f7d9262
Fixes: e9ed8835e9 ("mmc: dw_mmc: add runtime PM callback")
Cc: <stable@vger.kernel.org>
Reported-by: Brian Norris <briannorris@chromium.org>
Signed-off-by: Douglas Anderson <dianders@chromium.org>
Acked-by: Jaehoon Chung <jh80.chung@samsung.com>
Reviewed-by: Shawn Lin <shawn.lin@rock-chips.com>
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
Signed-off-by: Shawn Lin <shawn.lin@rock-chips.com>
2017-12-11 14:16:23 +08:00
Randy Li
18480946b4 rtc: remove an unused rk808 driver file
This file is not used anymore, and the current driver
for rtc of the rk808 is rtc-rk808.c

Change-Id: I2e21f56c0a24af9452bc113c28f25a8eaec096f0
Signed-off-by: Randy Li <randy.li@rock-chips.com>
2017-12-07 18:58:32 +08:00
Finley Xiao
3cb6cc8a59 clk: rockchip: rk3066a: Rename i2s hclk id
Change-Id: I0a5ccf1846950353ea6fc6980c1c4a4fb3457fd1
Signed-off-by: Finley Xiao <finley.xiao@rock-chips.com>
2017-12-07 18:57:44 +08:00
Wen Dingxian
90d186256b camera: rockchip: camsys_drv: v0.0x22.7 camsys_head: v0.e.0
read MRV_MIPI_FRAME register in camsys_mrv_irq, and pass the
value fs_id and fe_id into isp library.

Change-Id: I98c43f1cac25c74c5058b90dbf25937ceb924f84
Signed-off-by: Wen Dingxian <shawn.wen@rock-chips.com>
2017-12-07 15:39:42 +08:00
Elaine Zhang
a4d023c815 clk: rockchip: Fix up the pll setting to support px30 SoC.
add px30 registers offset.
add new pll type pll_px30 for px30 soc APLL.

Change-Id: I321ba0d8dd45b90260cc7f22030ce905949ff762
Signed-off-by: Elaine Zhang <zhangqing@rock-chips.com>
2017-12-07 15:08:11 +08:00
Elaine Zhang
0d451fd04d clk: rockchip: add clock controller for px30
Add the clock tree definition for the new px30 SoC.
Fix up the pll setting to support px30 SoC.

Change-Id: Ib9255094b0fdb58f0a8ba49c5bb9f075c7458940
Signed-off-by: Elaine Zhang <zhangqing@rock-chips.com>
2017-12-07 15:07:35 +08:00
Elaine Zhang
15f1fd6c6a clk: rockchip: add dt-binding header for px30
Add the dt-bindings header for the px30, that gets shared between
the clock controller and the clock references in the dts.
Add softreset ID for px30.

Change-Id: I643f5e40cf77fb5c3aeb41392172da79194d54c1
Signed-off-by: Elaine Zhang <zhangqing@rock-chips.com>
2017-12-07 15:07:03 +08:00
Elaine Zhang
1d07c2a416 dt-bindings: add bindings for px30 clock controller
Add devicetree bindings for Rockchip cru which found on
Rockchip SoCs.

Change-Id: I7f1c862012ce43bfaa1c44c5f44e89354eca5099
Signed-off-by: Elaine Zhang <zhangqing@rock-chips.com>
2017-12-07 15:06:23 +08:00
lkg
6a51b5c5bf arm64: dts: rockchip: rk3399-sapphire: add supply pin for sd card.
Change-Id: I5b8624f63ff05f3d2c8818ca99e20e8b92e3db11
Signed-off-by: Kaige Li <kevin.li@rock-chips.com>
2017-12-07 15:02:57 +08:00
Joseph Chen
af25336271 firmware: rockchip sip: add psci_smp_available check
We shouldn't call SMC if PSCI is not enabled.

Change-Id: I362bea4ecb481b2eadcf6c481f016050e386eee0
Signed-off-by: Joseph Chen <chenjh@rock-chips.com>
2017-12-07 15:00:37 +08:00
lihuang
2f8d635767 ARM64: dts: rockchip: enable rga device node for rk3328-evb-android
Change-Id: Iadb6988cbbdfe0835fa4b6c56ec762426ac03192
Signed-off-by: Putin Lee <putin.li@rock-chips.com>
2017-12-07 14:57:08 +08:00
lihuang
3249f70502 ARM64: dts: rockchip: add rga node for rk3328
Change-Id: I8bd8674e1ff43148daef60a296ae729da7480dad
Signed-off-by: Putin Lee <putin.li@rock-chips.com>
2017-12-07 14:56:42 +08:00
David Wu
6a8aaf5f0a PM / AVS: rockchip-io: add io selectors and supplies for px30
This adds the necessary data for handling io voltage domains on the px30.
As interesting tidbit, the px30 contains two separate iodomain areas.
One in the regular General Register Files (GRF) and one in PMUGRF in the
pmu power domain.

Change-Id: Icff058b310e8ffaa4e03b8090443b3a7dba35f1f
Signed-off-by: David Wu <david.wu@rock-chips.com>
2017-12-06 21:18:22 +08:00
David Wu
921a4f7c6f pinctrl: rockchip: Add px30 pinctrl support
The bank0 of px30 pinctrl is in the pmugrf, other banks are in
the grf, the bank1 ~ bank3 are 4-bit width's iomux.

Change-Id: I62cbd74105b6874a9a91f3ab6a7623990205edce
Signed-off-by: David Wu <david.wu@rock-chips.com>
2017-12-06 21:18:22 +08:00
Jianqun Xu
4178a29308 ARM: dts: rockchip: rk312x-android: put device cma to NORMAL zone
NORMAL zone limits at 0x90000000.

The device cma region which is used by camera should be set to
NORMAL zone to avold memory fragment.

The device cma region info:
[    0.000000] Reserved memory: created CMA memory pool at 0x88000000, size 24 MiB
[    0.000000] Reserved memory: initialized node region@8f000000, compatible id shared-dma-pool

The default cma region info:
[    0.000000] cma: Reserved 16 MiB at 0x9f000000

Change-Id: I8b1a099c5fa3a2d90acf709c4272d88b97e0c5bd
Signed-off-by: Jianqun Xu <jay.xu@rock-chips.com>
2017-12-06 21:02:22 +08:00
Randy Li
041149c709 arm64: dts: rockchip: remove a stub pin node for rk3399-linux.dtsi
This stub pin node would prevent the whole pinctrl driver
being loading. Then any board files include the common
rk3399 linux would meet the power failure.

Change-Id: Ib223eb517c879b3819e9d8da4c0d5750886897c6
Signed-off-by: Randy Li <randy.li@rock-chips.com>
2017-12-06 20:58:23 +08:00
Vivek Gautam
35cc344467 UPSTREAM: usb: dwc3: Fix error handling for core init
Fixing the sequence of events in dwc3_core_init() error exit path.
dwc3_core_exit() call is also removed from the error path since,
whatever it's doing is already done.

Change-Id: I71f6aab189df0e5223d490fb6eaeebe1481a6b65
Fixes: c499ff7 usb: dwc3: core: re-factor init and exit paths
Cc: Felipe Balbi <felipe.balbi@linux.intel.com>
Cc: Greg KH <gregkh@linuxfoundation.org>
Cc: Stable <stable@vger.kernel.org> # 4.8+
Signed-off-by: Vivek Gautam <vivek.gautam@codeaurora.org>
Signed-off-by: Felipe Balbi <felipe.balbi@linux.intel.com>
Signed-off-by: Frank Wang <frank.wang@rock-chips.com>
(cherry picked from commit 9b9d7cdd0a)
2017-12-06 20:56:59 +08:00
Finley Xiao
25b4c025ca clk: rockchip: rk3066a: Fix sclk_smc
Change-Id: I7644465c572758a5237396f47600fbf60ed8835c
Signed-off-by: Finley Xiao <finley.xiao@rock-chips.com>
2017-12-06 20:55:26 +08:00
Finley Xiao
989b63d3a2 clk: rockchip: rk3066a: Fix spdif_frac
Change-Id: I8bed32dab9364ef4c37c8aee53de17b554c36a81
Signed-off-by: Finley Xiao <finley.xiao@rock-chips.com>
2017-12-06 20:54:55 +08:00
Finley Xiao
0e78d93f71 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>
2017-12-06 20:54:30 +08:00
Zhen Chen
c97fcdffb0 ARM: dts: rockchip: rk3066a: correct and add settings of gpu node
Change-Id: I969ced5b48b470868558f19088b8413e1fb99226
Signed-off-by: Zhen Chen <chenzhen@rock-chips.com>
2017-12-06 20:53:29 +08:00
David Wu
49b7c5f959 ARM: dts: rk3066a-rayeager: Make hdmi regulator always on
Change-Id: I9bca56928f6f9c12579107f430f8cd0eedd69665
Signed-off-by: David Wu <david.wu@rock-chips.com>
2017-12-06 20:53:05 +08:00
Jianqun Xu
9ed7b34d60 ARM: dts: rockchip: rk312x-android remove ion node
Change-Id: I08feb4bc74482e7dec885ab74898e3a238c834ff
Signed-off-by: Jianqun Xu <jay.xu@rock-chips.com>
2017-12-06 15:53:29 +08:00
Putin Lee
eb8fe01c96 video/rockchip: rga: Fixup some situation will cause memory leak
Change-Id: I2ec424e09149c5b4c1d6a2f141e0359e197abe35
Signed-off-by: Putin Lee <putin.li@rock-chips.com>
2017-12-06 09:27:20 +08:00
Cody Xie
50713bede6 arm: Bump COMMAND_LINE_SIZE to 2048.
The current limit is small for Android Things Verity Boot args.
Bump it.

Change-Id: I091c7f6d4912fec57ecca7dcab38cc99c5b6dfb5
Signed-off-by: Cody Xie <cody.xie@rock-chips.com>
2017-12-06 09:19:31 +08:00
Finley Xiao
6ad0044b05 arm: dts: rockchip: rk3288: Assigned i2s_src parent to GPLL
The default parent of i2s_src is 200MHz CPLL, it doesn't meet
the constraint of fractional divider that denominator must be
20 times larger than numerator.

Change-Id: I986525ca7a92cb5883facd1b6e89079398302856
Signed-off-by: Finley Xiao <finley.xiao@rock-chips.com>
2017-12-05 17:40:00 +08:00
Finley Xiao
e62d8931ec clk: rockchip: rk3288: Add id for i2s_src
Change-Id: I0d15dd656e96a3905012d42fef6640e152838888
Signed-off-by: Finley Xiao <finley.xiao@rock-chips.com>
2017-12-05 17:40:00 +08:00
David Wu
815879abb6 ARM: dts: rk3066a-rayeager: Enable vop0 at dts level
Change-Id: Ie3fe65d6d4d59b24a5fa22772e39496914bb0f13
Signed-off-by: David Wu <david.wu@rock-chips.com>
2017-12-05 17:31:11 +08:00
Rob Herring
fda1b89a27 UPSTREAM: leds: Convert to using %pOF instead of full_name
Now that we have a custom printf format specifier, convert users of
full_name to use %pOF instead. This is preparation to remove storing
of the full path string for each node.

Change-Id: I9b3d30eca632d3cfb958f0b31c067f4a6af2d631
Signed-off-by: Rob Herring <robh@kernel.org>
Cc: Richard Purdie <rpurdie@rpsys.net>
Cc: linux-leds@vger.kernel.org
Acked-by: Pavel Machek <pavel@ucw.cz>
Signed-off-by: Jacek Anaszewski <jacek.anaszewski@gmail.com>
Signed-off-by: Wenping Zhang <wenping.zhang@rock-chips.com>
(cherry picked from commit 0571753e65)
2017-12-05 17:15:59 +08:00
H. Nikolaus Schaller
4fe6d36e47 UPSTREAM: leds: is31fl32xx: define complete i2c_device_id table
Otherwise the driver module will not be automatically probed.

Change-Id: I14c8ee83ed97c3f08013c6aceb1f2c8889afcd94
Fixes: 9d7cffaf99 ("leds: Add driver for the ISSI IS31FL32xx family of LED controllers")
Fixes: e0442d7def ("leds: Add SN3218 and SN3216 support to the IS31FL32XX driver")
Signed-off-by: H. Nikolaus Schaller <hns@goldelico.com>
Tested-by: David Rivshin <drivshin@allworx.com>
Acked-by: David Rivshin <drivshin@allworx.com>
Signed-off-by: Jacek Anaszewski <j.anaszewski@samsung.com>
Signed-off-by: Wenping Zhang <wenping.zhang@rock-chips.com>
(cherry picked from commit 5706c01fcf)
2017-12-05 17:15:59 +08:00
H. Nikolaus Schaller
b7afb9c83e UPSTREAM: leds: is31fl32xx: fix typo in id and match table names
Change-Id: I8cebe3499d52fd8e7b44539455ed957fce004f76
Signed-off-by: H. Nikolaus Schaller <hns@goldelico.com>
Tested-by: David Rivshin <drivshin@allworx.com>
Acked-by: David Rivshin <drivshin@allworx.com>
Signed-off-by: Jacek Anaszewski <j.anaszewski@samsung.com>
Signed-off-by: Wenping Zhang <wenping.zhang@rock-chips.com>
(cherry picked from commit 1d991b71b4)
2017-12-05 17:15:59 +08:00
David Rivshin
7847c9b495 UPSTREAM: leds: Add SN3218 and SN3216 support to the IS31FL32XX driver
Si-En Technology was acquired by ISSI in 2011, and it appears that
the IS31FL3218/IS31FL3216 are just rebranded SN3218/SN3216 devices.

Add the "si-en,sn3218" and "si-en,sn3216" compatible strings into the
IS31FL32XX driver as aliases for the issi equivalents, and update
binding documentation.

Datasheets:
    IS31FL3218: http://www.issi.com/WW/pdf/31FL3218.pdf
    SN3218:     http://www.si-en.com/uploadpdf/s2011517171720.pdf

    IS31FL3216: http://www.issi.com/WW/pdf/31FL3216.pdf
    SN3216:     http://www.si-en.com/uploadpdf/SN3216201152410148.pdf

Change-Id: I05a6e3e618daf2499c2d303f265aaae5cdb4ed85
Signed-off-by: David Rivshin <drivshin@allworx.com>
Acked-by: Rob Herring <robh@kernel.org>
Tested-by: Stefan Wahren <stefan.wahren@i2se.com>
Signed-off-by: Jacek Anaszewski <j.anaszewski@samsung.com>
Signed-off-by: Wenping Zhang <wenping.zhang@rock-chips.com>
(cherry picked from commit e0442d7def)
2017-12-05 17:15:59 +08:00
David Rivshin
1d2ba726ab UPSTREAM: leds: Add driver for the ISSI IS31FL32xx family of LED controllers
The IS31FL32xx family of LED controllers are I2C devices with multiple
constant-current channels, each with independent 256-level PWM control.

Datasheets: http://www.issi.com/US/product-analog-fxled-driver.shtml

This has been tested on the IS31FL3236 and IS31FL3216, on an ARM
(TI am335x) platform.

The programming paradigm of these devices is similar in the following
ways:
 - All registers are 8 bit
 - All LED control registers are write-only
 - Each LED channel has a PWM register (0-255)
 - PWM register writes are shadowed until an Update register is poked
 - All have a concept of Software Shutdown, which disables output

However, there are some differences in devices:
 - 3236/3235 have a separate Control register for each LED,
   (3218/3216 pack the enable bits into fewer registers)
 - 3236/3235 have a per-channel current divisor setting
 - 3236/3235 have a Global Control register that can turn off all LEDs
 - 3216 is unique in a number of ways
    - OUT9-OUT16 can be configured as GPIOs instead of LED controls
    - LEDs can be programmed with an 8-frame animation, with
      programmable delay between frames
    - LEDs can be modulated by an input audio signal
    - Max output current can be adjusted from 1/4 to 2x globally
    - Has a Configuration register instead of a Shutdown register

This driver currently only supports the base PWM control function
of these devices. The following features of these devices are not
implemented, although it should be possible to add them in the future:
 - All devices are capable of going into a lower-power "software
   shutdown" mode.
 - The is31fl3236 and is31fl3235 can reduce the max output current
   per-channel with a divisor of 1, 2, 3, or 4.
 - The is31fl3216 can use some LED channels as GPIOs instead.
 - The is31fl3216 can animate LEDs in hardware.
 - The is31fl3216 can modulate LEDs according to an audio input.
 - The is31fl3216 can reduce/increase max output current globally.

Change-Id: Ie82c99ec43dbbd3175fb29f224812f3b5dc92eb6
Signed-off-by: David Rivshin <drivshin@allworx.com>
Signed-off-by: Jacek Anaszewski <j.anaszewski@samsung.com>
Signed-off-by: Wenping Zhang <wenping.zhang@rock-chips.com>
(cherry picked from commit 9d7cffaf99)
2017-12-05 17:15:59 +08:00
David Rivshin
8f00b2e786 UPSTREAM: DT: leds: Add binding for the ISSI IS31FL32xx family of LED controllers
This adds a binding description for the is31fl3236/35/18/16 I2C LED
controllers.

Change-Id: I91158188094e1fb46d754bf2dcf813f4123d58b7
Signed-off-by: David Rivshin <drivshin@allworx.com>
Acked-by: Rob Herring <robh@kernel.org>
Signed-off-by: Jacek Anaszewski <j.anaszewski@samsung.com>
Signed-off-by: Wenping Zhang <wenping.zhang@rock-chips.com>
(cherry picked from commit 4ef31e4993)
2017-12-05 17:15:59 +08:00
Lars-Peter Clausen
528c627ba3 UPSTREAM: ASoC: es8328: Remove some unused defines
The es8328 drivers seems to have used the wm8753 driver as a template. Its
header file contains a few defines that are copied verbatim from the wm8753
header that do not really apply to this driver and are unused. So remove
those defines. This seems safe as they deal with PLL and clock divider
settings and the es8328 driver neither implements a set_pll() nor a
set_clkdiv() callback.


Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
Signed-off-by: Mark Brown <broonie@kernel.org>

(cherry picked from commit 0f40132)
Change-Id: I1c4c93dd3335678942c19693b0844d9152c7197b
Signed-off-by: Chris Zhong <zyw@rock-chips.com>
2017-12-05 17:12:03 +08:00
Romain Perier
a47789f163 UPSTREAM: ASoC: es8328: Enabling support for 192k
The master and slave modes don't share the same table for MCLK/LRCLK
ratios. The slaves mode has bigger ratios that allow to use BCLK that
matche sampling frequency of 192khz.

This commit enables this rate only for slave mode, i.e it does not
declare this frequency in sysclk_contraints, resulting to an error in
master mode (not supported CLK).


Signed-off-by: Romain Perier <romain.perier@collabora.com>
Signed-off-by: Mark Brown <broonie@kernel.org>

(cherry picked from commit 404785f)
Change-Id: I6bee5d4605a7612eac0a955c52bf80c500adbc5b
Signed-off-by: Chris Zhong <zyw@rock-chips.com>
2017-12-05 17:11:47 +08:00
Romain Perier
5458a84da4 UPSTREAM: ASoC: es8328: Simplify rates definition
Currently most of the standard rates are supported by this driver.
Instead of defining each supported rate one by one, we use the SND macro
SNDRV_PCM_RATE_8000_48000. Also adds support for 88.2khz as the codec
supports it and the sys clocks are already supported.


Signed-off-by: Romain Perier <romain.perier@collabora.com>
Signed-off-by: Mark Brown <broonie@kernel.org>

(cherry picked from commit c7ad841)
Change-Id: I8b98cb6fc4aef7a3eb6e22310872668c2046ba46
Signed-off-by: Chris Zhong <zyw@rock-chips.com>
2017-12-05 17:11:24 +08:00
Romain Perier
ac4b320bcf UPSTREAM: ASoC: es8328: Let device auto detect ratios in slave mode
In master mode, SCLK and LRCLK signals are generated by the CODEC when
any of the ADC/DAC are enabled. SCLK is derived from MCLK via a
programmable division set by BLK_DIV, LRCLK is derived from MCLK via
another programmable division set by ADCFsRatio/DACFsRatio.

In slave mode, SCLK and LRCLK signals are received as inputs and
supplied externally. LRCLK and SCLK must be synchronously derived from
MCLK with specific rates. The device can auto detect MCLK/LRCLK ratio
according to a predefined table. LRCLK/SCLK ratio is usually 64 (SCLK =
64 * LRCLK)

This commits adds support to let to device auto detect and decide which
ratio to use. The mclkdiv2 and BCLK_DIV ratio and put to zero.


Signed-off-by: Romain Perier <romain.perier@collabora.com>
Signed-off-by: Mark Brown <broonie@kernel.org>

(cherry picked from commit ae884ae)
Change-Id: I195d5c3fc9f8b3032c5f0a1c767da696de22fb9b
Signed-off-by: Chris Zhong <zyw@rock-chips.com>
2017-12-05 17:11:08 +08:00
Romain Perier
912f574dd4 UPSTREAM: ASoC: es8328: Add support for slave mode
Currently, the function that changes the DAI format only supports master
mode. Trying to use a slave mode exits the function with -EINVAL and
leave the codec misconfigured. This commits adds support for enabling
the slave mode.


Signed-off-by: Romain Perier <romain.perier@collabora.com>
Signed-off-by: Mark Brown <broonie@kernel.org>

(cherry picked from commit b9b044e)
Change-Id: Iae229b7504df9567ca374a1e47555b45ba76dc5d
Signed-off-by: Chris Zhong <zyw@rock-chips.com>
2017-12-05 17:10:58 +08:00
Kuninori Morimoto
72d290188c UPSTREAM: ASoC: codec duplicated callback function goes to component on es8328
codec driver and component driver has duplicated callback functions,
and codec side functions are just copied to component side when
register timing. This was quick-hack, but no longer needed.
This patch moves these functions from codec driver to component driver.


Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Signed-off-by: Mark Brown <broonie@kernel.org>

(cherry picked from commit 87869e4)
Change-Id: I6cb19b9a2febba1802872caf6883013aeb5e3504
Signed-off-by: Chris Zhong <zyw@rock-chips.com>
2017-12-05 17:10:29 +08:00
John Keeping
11c7769cf2 UPSTREAM: ASoC: es8328: Set symmetric rates
Although the ES8328 does support different rates for capture and
playback, only very limited combinations are supported (8kHz and 48kHz
or 8.0182kHz and 44.1kHz) with most rates required to be symmetric.

Instead of adding a lot of complexity for little gain, let's enforce
symmetric rates.


Signed-off-by: John Keeping <john@metanate.com>
Signed-off-by: Mark Brown <broonie@kernel.org>

(cherry picked from commit ca0d879)
Change-Id: If155a5d6efa318f03226862a26d519b804c10004
Signed-off-by: Chris Zhong <zyw@rock-chips.com>
2017-12-05 17:09:50 +08:00
John Keeping
fdc800e956 UPSTREAM: ASoC: es8328: Support more sample rates
Signed-off-by: John Keeping <john@metanate.com>
Signed-off-by: Mark Brown <broonie@kernel.org>

(cherry picked from commit 45749c9)
Change-Id: I16ba6fcffc583a11ede4c79332f280dd5acaa01d
Signed-off-by: Chris Zhong <zyw@rock-chips.com>
2017-12-05 17:09:34 +08:00
John Keeping
41ba0ed353 UPSTREAM: ASoC: es8328: Support more sample formats
The values are the same for the DAC and ADC so remove the specific
values and use values with shifts.


Signed-off-by: John Keeping <john@metanate.com>
Signed-off-by: Mark Brown <broonie@kernel.org>

(cherry picked from commit 779e86a)
Change-Id: Ic3bbe56ae7aaa1c11112769646451ce593974352
Signed-off-by: Chris Zhong <zyw@rock-chips.com>
2017-12-05 17:09:22 +08:00
John Keeping
2f9996be07 UPSTREAM: ASoC: es8328: Move sample size setup to hw_params
This is a refactor in preparation for supporting more sample sizes which
has no functional change.


Signed-off-by: John Keeping <john@metanate.com>
Signed-off-by: Mark Brown <broonie@kernel.org>

(cherry picked from commit 8865c95)
Change-Id: I05c62052a573a5d24d8b91c385ef19b13ee56b49
Signed-off-by: Chris Zhong <zyw@rock-chips.com>
2017-12-05 17:09:09 +08:00
John Keeping
7a4b21a158 UPSTREAM: ASoC: es8328: Use single R/W for regmap
The chip only supports single reads and writes.


Signed-off-by: John Keeping <john@metanate.com>
Signed-off-by: Mark Brown <broonie@kernel.org>

(cherry picked from commit f2ed04a)
Change-Id: Id70c848dfea948df11517bc6112c314878dcc9ca
Signed-off-by: Chris Zhong <zyw@rock-chips.com>
2017-12-05 17:08:51 +08:00
John Keeping
d9acb3d7c1 UPSTREAM: ASoC: es8328: Fix ADC format setup
The ADCCONTROL4 and DACCONTROL1 registers are similar but not identical,
with the DACCONTROL1 having each field starting one bit higher than
ADCCONTROL4.

Instead of introducing a magic shift, add new constants for the values
in ADCCONTROL4 and use a second variable to setup the ADC.


Signed-off-by: John Keeping <john@metanate.com>
Signed-off-by: Mark Brown <broonie@kernel.org>

(cherry picked from commit 57e41f3)
Change-Id: I2e34c6671d38505700b987f34af53c4134702b75
Signed-off-by: Chris Zhong <zyw@rock-chips.com>
2017-12-05 17:08:31 +08:00