linux/drivers/clk
Linus Walleij f905293d65 clk: gemini: Fix reset regression
commit e2860e1f62 ("serial: 8250_of: Add reset support")
introduced reset support for the 8250_of driver.

However it unconditionally uses the assert/deassert pair to
deassert reset on the device at probe and assert it at
remove. This does not work with systems that have a
self-deasserting reset controller, such as Gemini, that
recently added a reset controller.

As a result, the console will not probe on the Gemini with
this message:

Serial: 8250/16550 driver, 1 ports, IRQ sharing disabled
of_serial: probe of 42000000.serial failed with error -524

This (-ENOTSUPP) is the error code returned by the
deassert() operation on self-deasserting reset controllers.

To work around this, implement dummy .assert() and
.deassert() operations in the Gemini combined clock and
reset controller. This fixes the issue on this system.

Cc: Joel Stanley <joel@jms.id.au>
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Cc: linux-serial@vger.kernel.org
Fixes: e2860e1f62 ("serial: 8250_of: Add reset support")
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
Acked-by: Philipp Zabel <p.zabel@pengutronix.de>
Signed-off-by: Stephen Boyd <sboyd@codeaurora.org>
2017-07-17 11:51:10 -07:00
..
at91 clk: at91: Add sama5d2 suspend/resume 2017-06-29 18:47:35 -07:00
axis
axs10x clk/axs10x: Clear init field in driver probe 2017-01-09 16:06:40 -08:00
bcm clk: iproc: Remove __init marking on iproc_pll_clk_setup() 2017-06-21 09:12:57 -07:00
berlin clk: berlin: Pass correct type to hw provider registration 2016-11-16 11:04:17 -08:00
h8300 clk: h8300: Migrate to clk_hw based registration APIs 2016-08-24 17:37:10 -07:00
hisilicon clk: hisilicon: add usb2 clocks for hi3798cv200 SoC 2017-06-21 10:46:45 -07:00
imgtec clk: boston: Add a driver for MIPS Boston board clocks 2017-07-11 14:13:06 +02:00
imx clk: imx7d: create clocks behind rawnand clock gate 2017-06-19 19:02:41 -07:00
ingenic
keystone clk: keystone: TI_SCI_PROTOCOL is needed for clk driver 2017-06-22 17:39:25 -07:00
loongson1 CLK: Add Loongson1C clock support 2016-09-23 14:49:21 -07:00
mediatek clk: mediatek: export cpu multiplexer clock for MT8173 SoCs 2017-06-19 19:02:44 -07:00
meson * Expose more clock gate on meson8 (SAR ADC, RNG, USB, SDIO, ETH) 2017-06-16 15:01:46 -07:00
microchip
mmp clk:mmp:clk-of-mmp2: Free memory and Unmap region obtained by kzalloc and of_iomap 2016-12-08 16:29:39 -08:00
mvebu clk: mvebu: cp110: Minor cleanups 2017-06-19 17:14:11 -07:00
mxs
nxp clk: nxp: clk-lpc18xx-ccu: Unmap region obtained by of_iomap 2016-11-01 17:32:25 -07:00
pistachio
pxa ARM: SoC platform updates for v4.10 2016-12-15 15:39:02 -08:00
qcom clk: gcc-msm8916: add support to 9.6MHz codec clk 2017-06-19 17:43:49 -07:00
renesas clk: renesas: cpg-mssr: Use of_device_get_match_data() helper 2017-06-19 19:02:43 -07:00
rockchip clk: rockchip: mark some special clk as critical on rk3368 2017-06-02 15:57:32 +02:00
samsung clk: samsung: audss: Fix silent hang on Exynos4412 due to disabled EPLL 2017-06-22 14:55:35 -07:00
sirf
socfpga clk: socfpga: Fix the smplsel on Arria10 and Stratix10 2017-06-19 17:01:55 -07:00
spear clk: spear: fix ADC clock definition on SPEAr600 2017-04-19 09:27:52 -07:00
st clk: st: clk-flexgen: Unmap region obtained by of_iomap 2016-12-08 16:35:22 -08:00
sunxi Allwinner clock changes for 4.10 2016-11-16 11:19:20 -08:00
sunxi-ng clk: sunxi-ng: Staticize ccu_mux_helper_unapply_prediv() 2017-06-16 14:51:36 -07:00
tegra clk: tegra: Don't reset PLL-CX if it is already enabled 2017-04-04 16:06:05 +02:00
ti clk: ti: omap4: add clkctrl clock data 2017-06-15 10:48:08 +03:00
uniphier clk: uniphier: provide NAND controller clock rate 2017-06-21 10:47:27 -07:00
ux500 clk: ux500: Convert ABx500 clocks to use OF probing 2017-01-26 16:10:02 -08:00
versatile clk: versatile: delete old RealView clock implementation 2017-06-02 16:27:17 -07:00
x86 clk: x86: pmc-atom: Checking for IS_ERR() instead of NULL 2017-05-01 11:13:25 -07:00
zte clk: zx296718: export I2S mux clocks 2017-06-19 19:02:42 -07:00
zynq
clk-asm9260.c
clk-axi-clkgen.c
clk-axm5516.c clk: axm5516: Migrate to clk_hw based OF and registration APIs 2016-08-24 16:11:07 -07:00
clk-bulk.c clk: add clk_bulk_get accessories 2017-06-02 15:37:45 -07:00
clk-cdce706.c clk: cdce: Migrate to clk_hw based OF and registration APIs 2016-08-24 16:12:38 -07:00
clk-cdce925.c clk: cdce925: add support for CDCE913, CDCE937, and CDCE949 2017-01-09 16:38:30 -08:00
clk-clps711x.c clk: clps711x: Migrate to clk_hw based OF and registration APIs 2016-08-24 17:19:26 -07:00
clk-composite.c
clk-conf.c clk: Fix __set_clk_rates error print-string 2017-06-01 02:13:44 -07:00
clk-cs2000-cp.c clk: cs2000: select 12.20 High Accuracy on LFRatioCfg 2017-04-19 10:18:55 -07:00
clk-devres.c clk: add managed version of clk_bulk_get 2017-06-02 15:37:49 -07:00
clk-divider.c clk: divider: Make divider_round_rate take the parent clock 2017-06-07 15:32:12 +02:00
clk-efm32gg.c clk: efm32gg: Pass correct type to hw provider registration 2016-11-16 11:08:55 -08:00
clk-fixed-factor.c
clk-fixed-rate.c
clk-fractional-divider.c
clk-gate.c clk: gate: fix coding style 2016-11-09 12:05:50 -08:00
clk-gemini.c clk: gemini: Fix reset regression 2017-07-17 11:51:10 -07:00
clk-gpio.c
clk-hi655x.c clk: hi6220: Add the hi655x's pmic clock 2017-04-21 19:18:53 -07:00
clk-highbank.c
clk-max77686.c clk: max77686: fix number of clocks setup for clk_hw based registration 2016-10-17 15:31:59 -07:00
clk-mb86s7x.c clk: mb86s7x: Migrate to clk_hw based OF and registration APIs 2016-08-24 17:23:01 -07:00
clk-moxart.c clk: moxart: Migrate to clk_hw based OF and registration APIs 2016-08-24 17:23:20 -07:00
clk-multiplier.c
clk-mux.c
clk-nomadik.c clk: nomadik: Delete error messages for a failed memory allocation in two functions 2017-04-21 19:47:14 -07:00
clk-nspire.c clk: nspire: Migrate to clk_hw based OF and registration APIs 2016-08-24 17:23:21 -07:00
clk-oxnas.c clk: oxnas: Add OX820 Gate clocks 2016-10-23 10:18:45 -07:00
clk-palmas.c clk: palmas: undo preparation of a clock source. 2017-06-02 10:51:34 -07:00
clk-pwm.c clk: pwm: Migrate to clk_hw based OF and registration APIs 2016-08-24 17:23:27 -07:00
clk-qoriq.c clk: qoriq: Separate root input clock for core PLLs on ls1012a 2017-06-01 01:24:13 -07:00
clk-rk808.c clk: rk808: Pass the right pointer as the get_hw context 2016-09-09 11:07:07 -07:00
clk-s2mps11.c
clk-scpi.c clk: scpi: error when clock fails to register 2017-06-29 18:47:35 -07:00
clk-si514.c clk: si514: Migrate to clk_hw based OF and registration APIs 2016-08-24 17:29:59 -07:00
clk-si570.c clk: si570: Migrate to clk_hw based OF and registration APIs 2016-08-24 17:30:01 -07:00
clk-si5351.c clk: si5351: Delete an error message for a failed memory allocation in si5351_i2c_probe() 2017-04-21 19:44:54 -07:00
clk-si5351.h
clk-stm32f4.c clk: stm32f4: fix timeout management for pll and ready gate 2017-04-12 18:50:56 +02:00
clk-tango4.c
clk-twl6040.c clk: twl6040: Migrate to clk_hw based registration APIs 2016-08-24 17:34:11 -07:00
clk-u300.c
clk-versaclock5.c clk: vc5: Add support for IDT VersaClock 5P49V5935 2017-04-19 09:08:59 -07:00
clk-vt8500.c clk: vt8500: Migrate to clk_hw based registration APIs 2016-08-24 17:35:48 -07:00
clk-wm831x.c clk: wm831x: fix usleep_range with bad range 2017-01-09 16:06:41 -08:00
clk-xgene.c clk: xgene: Don't call __pa on ioremaped address 2016-10-28 11:03:47 -07:00
clk.c clk: Improve a size determination in two functions 2017-04-21 19:47:02 -07:00
clk.h
clkdev.c ARM: 8631/1: clkdev: Detect errors in clk_hw_register_clkdev() for mass registration 2016-11-22 11:45:28 +00:00
Kconfig Merge branch 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upstream-linus 2017-07-15 10:59:54 -07:00
Makefile Merge branch 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upstream-linus 2017-07-15 10:59:54 -07:00