Guru Das Srinagesh
ea119e5a48
pinctrl: qcom-pmic-gpio: Add support for pm8008
...
Add support for the two GPIOs present on Qualcomm Technologies, Inc.
PM8008.
Reviewed-by: Bjorn Andersson <bjorn.andersson@linaro.org >
Signed-off-by: Guru Das Srinagesh <gurus@codeaurora.org >
Link: https://lore.kernel.org/r/129d241ee510e28536d35dbfeee75474e12d8d22.1617901945.git.gurus@codeaurora.org
Signed-off-by: Linus Walleij <linus.walleij@linaro.org >
2021-04-08 23:48:34 +02:00
Guru Das Srinagesh
18d2719f46
dt-bindings: pinctrl: qcom-pmic-gpio: Add pm8008 support
...
Add support for the 2 GPIOs present on Qualcomm Technologies, Inc.
PM8008.
Acked-by: Bjorn Andersson <bjorn.andersson@linaro.org >
Signed-off-by: Guru Das Srinagesh <gurus@codeaurora.org >
Link: https://lore.kernel.org/r/2be34cc205ae96d40b04a9efdcf9287d5da9d1c0.1617901945.git.gurus@codeaurora.org
Signed-off-by: Linus Walleij <linus.walleij@linaro.org >
2021-04-08 23:48:34 +02:00
Niklas Söderlund
775c93a7c5
docs: pin-control: Fix error path for control state example
...
The error is constructed using the wrong variable.
Signed-off-by: Niklas Söderlund <niklas.soderlund+renesas@ragnatech.se >
Link: https://lore.kernel.org/r/20210328164222.720525-1-niklas.soderlund+renesas@ragnatech.se
Signed-off-by: Linus Walleij <linus.walleij@linaro.org >
2021-04-08 16:02:43 +02:00
Fabio Estevam
8a83ecd8ec
pinctrl: imx: Disallow driver unbind
...
Performing the 'unbind' operation on pinctrl drivers is
not a sensible usecase, so pass the suppress_bind_attrs
atribute to prevent it.
Signed-off-by: Fabio Estevam <festevam@gmail.com >
Link: https://lore.kernel.org/r/20210328183034.555702-2-festevam@gmail.com
Signed-off-by: Linus Walleij <linus.walleij@linaro.org >
2021-04-08 16:00:53 +02:00
Fabio Estevam
f6b6db2dfd
pinctrl: imx: Remove unneeded of_match_ptr()
...
i.MX is a DT-only platform, so of_match_ptr() can be safely
removed.
Remove the unneeded of_match_ptr().
Signed-off-by: Fabio Estevam <festevam@gmail.com >
Link: https://lore.kernel.org/r/20210328183034.555702-1-festevam@gmail.com
Signed-off-by: Linus Walleij <linus.walleij@linaro.org >
2021-04-08 16:00:53 +02:00
Junlin Yang
57c855f742
pinctrl: ti: fix error return code of ti_iodelay_dt_node_to_map()
...
when devm_kcalloc fails, use -ENOMEM instead of -EINVAL,
and consistent with other devm_kcalloc return values.
Signed-off-by: Junlin Yang <yangjunlin@yulong.com >
Link: https://lore.kernel.org/r/20210330062655.1027-1-angkery@163.com
Signed-off-by: Linus Walleij <linus.walleij@linaro.org >
2021-04-08 15:57:14 +02:00
Jianqun Xu
c0dadc0e47
pinctrl: rockchip: add support for rk3568
...
RK3568 SoCs have 5 gpio controllers, each gpio has 32 pins. GPIO supports
set iomux, pull, drive strength and schmitt.
Signed-off-by: Jianqun Xu <jay.xu@rock-chips.com >
Link: https://lore.kernel.org/r/20210319081441.368358-1-jay.xu@rock-chips.com
Signed-off-by: Linus Walleij <linus.walleij@linaro.org >
2021-04-08 15:39:13 +02:00
Marek Vasut
589b9b8b7b
pinctrl: stm32: Print invalid AF warning inside stm32_pctrl_is_function_valid()
...
The "invalid function %d on pin %d .\n" message is triplicated in the
driver in different variants, just pull it into the function and have
it once in the driver. The bonus is that all variants of the message
now print the pin number and AF consistently, so it is easier to debug
such pinmux problems.
Signed-off-by: Marek Vasut <marex@denx.de >
Cc: Fabien Dessenne <fabien.dessenne@st.com >
Cc: Alexandre Torgue <alexandre.torgue@st.com >
Cc: Linus Walleij <linus.walleij@linaro.org >
Cc: linux-stm32@st-md-mailman.stormreply.com
To: linux-arm-kernel@lists.infradead.org
Acked-by: Fabien Dessenne <fabien.dessenne@foss.st.com >
Link: https://lore.kernel.org/r/20210406180035.279249-1-marex@denx.de
Signed-off-by: Linus Walleij <linus.walleij@linaro.org >
2021-04-08 09:52:20 +02:00
Randy Dunlap
da35b19d62
pinctrl: bcm63xx: Fix More dependencies
...
The additional patch below fixes all of the kconfig warnings and
build errors for me.
Link: https://lore.kernel.org/r/9e1cec76-1c0a-9203-7995-4c2d09b711d8@infradead.org
Signed-off-by: Randy Dunlap <rdunlap@infradead.org >
[Tweaked some other line in the BCMxxx]
Signed-off-by: Linus Walleij <linus.walleij@linaro.org >
2021-04-08 09:52:04 +02:00
Linus Walleij
aa5acf4862
Merge tag 'renesas-pinctrl-for-v5.13-tag2' of git://git.kernel.org/pub/scm/linux/kernel/git/geert/renesas-drivers into devel
...
pinctrl: renesas: Updates for v5.13 (take two)
- Add bias support for the R-Car M2-W and M2-N, and RZ/G1M and RZ/G1N
SoCs,
- Miscellaneous cleanups and improvements.
2021-04-07 14:45:36 +02:00
Linus Walleij
26ea7ac928
pinctrl: bcm63xx: Fix dependencies
...
Add depends on OF so we don't get weird build errors on
randconfig.
Also order selects the same as the other drivers for
pure aestetic reasons.
Reported-by: Randy Dunlap <rdunlap@infradead.org >
Cc: Álvaro Fernández Rojas <noltari@gmail.com >
Signed-off-by: Linus Walleij <linus.walleij@linaro.org >
2021-03-31 14:45:05 +02:00
Álvaro Fernández Rojas
1978d88cdc
pinctrl: bcm: bcm6362: fix warning
...
The current implementation of bcm6362_set_gpio() produces the following
warning on x86_64:
drivers/pinctrl/bcm/pinctrl-bcm6362.c: In function 'bcm6362_set_gpio':
drivers/pinctrl/bcm/pinctrl-bcm6362.c:503:8: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
503 | (uint32_t) desc->drv_data, 0);
| ^
Modify the code to make it similar to bcm63268_set_gpio() in order to fix
the warning.
Fixes: 705791e23e ("pinctrl: add a pincontrol driver for BCM6362")
Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com >
Link: https://lore.kernel.org/r/20210330103225.3949-1-noltari@gmail.com
Reviewed-by: Andy Shevchenko <andy.shevchenko@gmail.com >
Signed-off-by: Linus Walleij <linus.walleij@linaro.org >
2021-03-31 14:33:48 +02:00
Linus Walleij
762bee3e3e
Merge branch 'ib-bcm63xx' into devel
2021-03-30 00:55:49 +02:00
Linus Walleij
22667a63fe
Merge tag 'intel-pinctrl-v5.13-1' of gitolite.kernel.org:pub/scm/linux/kernel/git/pinctrl/intel into devel
...
intel-pinctrl for v5.13-1
* Don't disable disabled IRQs in the handler
* Fix the base calculation for groups defined by size
The following is an automated git shortlog grouped by driver:
intel:
- No need to disable IRQs in the handler
- Show the GPIO base calculation explicitly
2021-03-30 00:55:27 +02:00
Wan Jiabing
05bc941403
drivers: pinctrl: Remove duplicate include of io.h
...
linux/io.h has been included at line 6, so remove the
duplicate include at line 18.
Signed-off-by: Wan Jiabing <wanjiabing@vivo.com >
Reviewed-by: Damien Le Moal <damien.lemoal@wdc.com >
Link: https://lore.kernel.org/r/20210323013727.135571-1-wanjiabing@vivo.com
Signed-off-by: Linus Walleij <linus.walleij@linaro.org >
2021-03-30 00:54:37 +02:00
Álvaro Fernández Rojas
d28039fccf
pinctrl: add a pincontrol driver for BCM6318
...
Add a pincontrol driver for BCM6318. BCM6318 allows muxing most GPIOs
to different functions. BCM6318 is similar to BCM6328 with the addition
of a pad register, and the GPIO meaning of the mux register changes
based on the GPIO number.
Co-developed-by: Jonas Gorski <jonas.gorski@gmail.com >
Signed-off-by: Jonas Gorski <jonas.gorski@gmail.com >
Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com >
Link: https://lore.kernel.org/r/20210324081923.20379-23-noltari@gmail.com
Signed-off-by: Linus Walleij <linus.walleij@linaro.org >
2021-03-29 12:20:09 +02:00
Álvaro Fernández Rojas
b6d46b9454
dt-bindings: add BCM6318 GPIO sysctl binding documentation
...
Add binding documentation for the GPIO sysctl found in BCM6318 SoCs.
Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com >
Reviewed-by: Rob Herring <robh@kernel.org >
Link: https://lore.kernel.org/r/20210324081923.20379-22-noltari@gmail.com
Signed-off-by: Linus Walleij <linus.walleij@linaro.org >
2021-03-29 12:20:09 +02:00
Álvaro Fernández Rojas
b2f215141b
dt-bindings: add BCM6318 pincontroller binding documentation
...
Add binding documentation for the pincontrol core found in BCM6318 SoCs.
Co-developed-by: Jonas Gorski <jonas.gorski@gmail.com >
Signed-off-by: Jonas Gorski <jonas.gorski@gmail.com >
Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com >
Reviewed-by: Rob Herring <robh@kernel.org >
Link: https://lore.kernel.org/r/20210324081923.20379-21-noltari@gmail.com
Signed-off-by: Linus Walleij <linus.walleij@linaro.org >
2021-03-29 12:20:08 +02:00
Álvaro Fernández Rojas
155cca1b07
pinctrl: add a pincontrol driver for BCM63268
...
Add a pincontrol driver for BCM63268. BCM63268 allows muxing GPIOs
to different functions. Depending on the mux, these are either single
pin configurations or whole pin groups.
Co-developed-by: Jonas Gorski <jonas.gorski@gmail.com >
Signed-off-by: Jonas Gorski <jonas.gorski@gmail.com >
Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com >
Link: https://lore.kernel.org/r/20210324081923.20379-20-noltari@gmail.com
Signed-off-by: Linus Walleij <linus.walleij@linaro.org >
2021-03-29 12:20:08 +02:00
Álvaro Fernández Rojas
ff8324355d
dt-bindings: add BCM63268 GPIO sysctl binding documentation
...
Add binding documentation for the GPIO sysctl found in BCM63268 SoCs.
Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com >
Reviewed-by: Rob Herring <robh@kernel.org >
Link: https://lore.kernel.org/r/20210324081923.20379-19-noltari@gmail.com
Signed-off-by: Linus Walleij <linus.walleij@linaro.org >
2021-03-29 12:20:08 +02:00
Álvaro Fernández Rojas
9b33034133
dt-bindings: add BCM63268 pincontroller binding documentation
...
Add binding documentation for the pincontrol core found in the BCM63268
family SoCs.
Co-developed-by: Jonas Gorski <jonas.gorski@gmail.com >
Signed-off-by: Jonas Gorski <jonas.gorski@gmail.com >
Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com >
Reviewed-by: Rob Herring <robh@kernel.org >
Link: https://lore.kernel.org/r/20210324081923.20379-18-noltari@gmail.com
Signed-off-by: Linus Walleij <linus.walleij@linaro.org >
2021-03-29 12:20:08 +02:00
Álvaro Fernández Rojas
50554accf7
pinctrl: add a pincontrol driver for BCM6368
...
Add a pincontrol driver for BCM6368. BCM6368 allows muxing the first 32
GPIOs onto alternative functions. Not all are documented.
Co-developed-by: Jonas Gorski <jonas.gorski@gmail.com >
Signed-off-by: Jonas Gorski <jonas.gorski@gmail.com >
Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com >
Link: https://lore.kernel.org/r/20210324081923.20379-17-noltari@gmail.com
Signed-off-by: Linus Walleij <linus.walleij@linaro.org >
2021-03-29 12:20:08 +02:00
Álvaro Fernández Rojas
fd22635f22
dt-bindings: add BCM6368 GPIO sysctl binding documentation
...
Add binding documentation for the GPIO sysctl found in BCM6368 SoCs.
Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com >
Reviewed-by: Rob Herring <robh@kernel.org >
Link: https://lore.kernel.org/r/20210324081923.20379-16-noltari@gmail.com
Signed-off-by: Linus Walleij <linus.walleij@linaro.org >
2021-03-29 12:20:08 +02:00
Álvaro Fernández Rojas
9fbf830379
dt-bindings: add BCM6368 pincontroller binding documentation
...
Add binding documentation for the pincontrol core found in BCM6368 SoCs.
Co-developed-by: Jonas Gorski <jonas.gorski@gmail.com >
Signed-off-by: Jonas Gorski <jonas.gorski@gmail.com >
Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com >
Reviewed-by: Rob Herring <robh@kernel.org >
Link: https://lore.kernel.org/r/20210324081923.20379-15-noltari@gmail.com
Signed-off-by: Linus Walleij <linus.walleij@linaro.org >
2021-03-29 12:20:08 +02:00
Álvaro Fernández Rojas
705791e23e
pinctrl: add a pincontrol driver for BCM6362
...
Add a pincotrol driver for BCM6362. BCM6362 allows muxing individual
GPIO pins to the LED controller, to be available by the integrated
wifi, or other functions. It also supports overlay groups, of which
only NAND is documented.
Co-developed-by: Jonas Gorski <jonas.gorski@gmail.com >
Signed-off-by: Jonas Gorski <jonas.gorski@gmail.com >
Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com >
Link: https://lore.kernel.org/r/20210324081923.20379-14-noltari@gmail.com
Signed-off-by: Linus Walleij <linus.walleij@linaro.org >
2021-03-29 12:20:08 +02:00
Álvaro Fernández Rojas
7ca989eafb
dt-bindings: add BCM6362 GPIO sysctl binding documentation
...
Add binding documentation for the GPIO sysctl found in BCM6362 SoCs.
Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com >
Reviewed-by: Rob Herring <robh@kernel.org >
Link: https://lore.kernel.org/r/20210324081923.20379-13-noltari@gmail.com
Signed-off-by: Linus Walleij <linus.walleij@linaro.org >
2021-03-29 12:20:08 +02:00
Álvaro Fernández Rojas
6e4b5e1fc7
dt-bindings: add BCM6362 pincontroller binding documentation
...
Add binding documentation for the pincontrol core found in BCM6362 SoCs.
Co-developed-by: Jonas Gorski <jonas.gorski@gmail.com >
Signed-off-by: Jonas Gorski <jonas.gorski@gmail.com >
Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com >
Reviewed-by: Rob Herring <robh@kernel.org >
Link: https://lore.kernel.org/r/20210324081923.20379-12-noltari@gmail.com
Signed-off-by: Linus Walleij <linus.walleij@linaro.org >
2021-03-29 12:20:08 +02:00
Álvaro Fernández Rojas
9494b16976
pinctrl: add a pincontrol driver for BCM6358
...
Add a pincotrol driver for BCM6358. BCM6358 allow overlaying different
functions onto the GPIO pins. It does not support configuring individual
pins but only whole groups. These groups may overlap, and still require
the directions to be set correctly in the GPIO register. In addition the
functions register controls other, not directly mux related functions.
Co-developed-by: Jonas Gorski <jonas.gorski@gmail.com >
Signed-off-by: Jonas Gorski <jonas.gorski@gmail.com >
Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com >
Link: https://lore.kernel.org/r/20210324081923.20379-11-noltari@gmail.com
Signed-off-by: Linus Walleij <linus.walleij@linaro.org >
2021-03-29 12:20:07 +02:00
Álvaro Fernández Rojas
cfb1b98bc8
dt-bindings: add BCM6358 GPIO sysctl binding documentation
...
Add binding documentation for the GPIO sysctl found in BCM6358 SoCs.
Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com >
Reviewed-by: Rob Herring <robh@kernel.org >
Link: https://lore.kernel.org/r/20210324081923.20379-10-noltari@gmail.com
Signed-off-by: Linus Walleij <linus.walleij@linaro.org >
2021-03-29 12:20:07 +02:00
Álvaro Fernández Rojas
6d591614bf
dt-bindings: add BCM6358 pincontroller binding documentation
...
Add binding documentation for the pincontrol core found in BCM6358 SoCs.
Co-developed-by: Jonas Gorski <jonas.gorski@gmail.com >
Signed-off-by: Jonas Gorski <jonas.gorski@gmail.com >
Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com >
Reviewed-by: Rob Herring <robh@kernel.org >
Link: https://lore.kernel.org/r/20210324081923.20379-9-noltari@gmail.com
Signed-off-by: Linus Walleij <linus.walleij@linaro.org >
2021-03-29 12:20:07 +02:00
Álvaro Fernández Rojas
9bf34ac5ab
pinctrl: add a pincontrol driver for BCM6328
...
Add a pincontrol driver for BCM6328. BCM6328 supports muxing 32 pins as
GPIOs, as LEDs for the integrated LED controller, or various other
functions. Its pincontrol mux registers also control other aspects, like
switching the second USB port between host and device mode.
Co-developed-by: Jonas Gorski <jonas.gorski@gmail.com >
Signed-off-by: Jonas Gorski <jonas.gorski@gmail.com >
Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com >
Link: https://lore.kernel.org/r/20210324081923.20379-8-noltari@gmail.com
Signed-off-by: Linus Walleij <linus.walleij@linaro.org >
2021-03-29 12:20:07 +02:00
Álvaro Fernández Rojas
7f9dfaa2af
dt-bindings: add BCM6328 GPIO sysctl binding documentation
...
Add binding documentation for the GPIO sysctl found in BCM6328 SoCs.
Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com >
Reviewed-by: Rob Herring <robh@kernel.org >
Link: https://lore.kernel.org/r/20210324081923.20379-7-noltari@gmail.com
Signed-off-by: Linus Walleij <linus.walleij@linaro.org >
2021-03-29 12:20:07 +02:00
Álvaro Fernández Rojas
44dbcd8eb0
dt-bindings: add BCM6328 pincontroller binding documentation
...
Add binding documentation for the pincontrol core found in BCM6328 SoCs.
Co-developed-by: Jonas Gorski <jonas.gorski@gmail.com >
Signed-off-by: Jonas Gorski <jonas.gorski@gmail.com >
Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com >
Reviewed-by: Rob Herring <robh@kernel.org >
Link: https://lore.kernel.org/r/20210324081923.20379-6-noltari@gmail.com
Signed-off-by: Linus Walleij <linus.walleij@linaro.org >
2021-03-29 12:20:07 +02:00
Álvaro Fernández Rojas
132f95016d
pinctrl: bcm: add bcm63xx base code
...
Add a helper for registering BCM63XX pin controllers.
Co-developed-by: Jonas Gorski <jonas.gorski@gmail.com >
Signed-off-by: Jonas Gorski <jonas.gorski@gmail.com >
Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com >
Link: https://lore.kernel.org/r/20210324081923.20379-5-noltari@gmail.com
Signed-off-by: Linus Walleij <linus.walleij@linaro.org >
2021-03-29 12:20:07 +02:00
Álvaro Fernández Rojas
fb9da17bd2
dt-bindings: improve BCM6345 GPIO binding documentation
...
Convert existing BCM6345 GPIO binding documentation to YAML and add binding
documentation for the GPIO controller found in BCM6318, BCM6328, BCM6358,
BCM6362, BCM6368 and BCM63268 SoCs.
Co-developed-by: Jonas Gorski <jonas.gorski@gmail.com >
Signed-off-by: Jonas Gorski <jonas.gorski@gmail.com >
Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com >
Reviewed-by: Rob Herring <robh@kernel.org >
Link: https://lore.kernel.org/r/20210324081923.20379-4-noltari@gmail.com
Signed-off-by: Linus Walleij <linus.walleij@linaro.org >
2021-03-29 12:20:07 +02:00
Álvaro Fernández Rojas
d46bf9ec45
gpio: regmap: set gpio_chip of_node
...
This is needed for properly registering GPIO regmap as a child of a regmap
pin controller.
Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com >
Reviewed-by: Michael Walle <michael@walle.cc >
Reviewed-by: Andy Shevchenko <andy.shevchenko@gmail.com >
Acked-by: Bartosz Golaszewski <bgolaszewski@baylibre.com >
Link: https://lore.kernel.org/r/20210324081923.20379-3-noltari@gmail.com
Signed-off-by: Linus Walleij <linus.walleij@linaro.org >
2021-03-29 12:20:07 +02:00
Álvaro Fernández Rojas
9c7d24693d
gpio: guard gpiochip_irqchip_add_domain() with GPIOLIB_IRQCHIP
...
The current code doesn't check if GPIOLIB_IRQCHIP is enabled, which results in
a compilation error when trying to build gpio-regmap if CONFIG_GPIOLIB_IRQCHIP
isn't enabled.
Fixes: 6a45b0e258 ("gpiolib: Introduce gpiochip_irqchip_add_domain()")
Suggested-by: Michael Walle <michael@walle.cc >
Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com >
Reviewed-by: Linus Walleij <linus.walleij@linaro.org >
Reviewed-by: Michael Walle <michael@walle.cc >
Acked-by: Bartosz Golaszewski <bgolaszewski@baylibre.com >
Link: https://lore.kernel.org/r/20210324081923.20379-2-noltari@gmail.com
Signed-off-by: Linus Walleij <linus.walleij@linaro.org >
2021-03-29 12:20:07 +02:00
Andy Shevchenko
5b613df3f4
pinctrl: intel: No need to disable IRQs in the handler
...
In IRQ handler interrupts are already disabled, hence no need
to repeat it. Even in the threaded case, which is disabled here,
it is not a problem because IRQ framework serializes descriptor
handling. Remove disabling IRQ part in the handler.
Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com >
Acked-by: Mika Westerberg <mika.westerberg@linux.intel.com >
2021-03-25 14:52:41 +02:00
Geert Uytterhoeven
febb4ee23a
pinctrl: PINCTRL_ROCKCHIP should depend on ARCH_ROCKCHIP
...
The Rockchip GPIO and pin control modules are only present on Rockchip
SoCs. Hence add a dependency on ARCH_ROCKCHIP, to prevent asking the
user about this driver when configuring a kernel without Rockchip
platform support.
Note that before, the PINCTRL_ROCKCHIP symbol was not visible, and
automatically selected when needed. By making it tristate and
user-selectable, it became visible for everyone.
Fixes: be786ac5a6 ("pinctrl: rockchip: make driver be tristate module")
Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be >
Reviewed-by: Heiko Stuebner <heiko@sntech.de >
Link: https://lore.kernel.org/r/20210316134059.2377081-1-geert+renesas@glider.be
Signed-off-by: Linus Walleij <linus.walleij@linaro.org >
2021-03-25 10:16:32 +01:00
Zhiyong Tao
42a46434e9
pinctrl: add lock in mtk_rmw function.
...
When multiple threads operate on the same register resource
which include multiple pin, It will make the register resource
wrong to control. So we add lock to avoid the case.
Signed-off-by: Zhiyong Tao <zhiyong.tao@mediatek.com >
Link: https://lore.kernel.org/r/20210321033150.15380-2-zhiyong.tao@mediatek.com
Signed-off-by: Linus Walleij <linus.walleij@linaro.org >
2021-03-25 10:14:50 +01:00
Linus Walleij
1517dad8e7
Merge tag 'renesas-pinctrl-for-v5.13-tag1' of git://git.kernel.org/pub/scm/linux/kernel/git/geert/renesas-drivers into devel
...
pinctrl: renesas: Updates for v5.13
- Add pin groups for the green and high8 subsets of the Video IN (VIN)
pins on R-Car H3 ES2.0+, R-Car M3-W/M3-W+, R-Car M3-N, and R-Car E3.
2021-03-25 10:10:21 +01:00
Hanna Hawa
bd85125ea8
pinctrl: pinctrl-single: fix pcs_pin_dbg_show() when bits_per_mux is not zero
...
A System Error (SError, followed by kernel panic) was detected when
trying to print the supported pins in a pinctrl device which supports
multiple pins per register. This change fixes the pcs_pin_dbg_show() in
pinctrl-single driver when bits_per_mux is not zero. In addition move
offset calculation and pin offset in register to common function.
Fixes: 4e7e8017a8 ("pinctrl: pinctrl-single: enhance to configure multiple pins of different modules")
Signed-off-by: Hanna Hawa <hhhawa@amazon.com >
Reviewed-by: Andy Shevchenko <andy.shevchenko@gmail.com >
Reviewed-by: Tony Lindgren <tony@atomide.com >
Reviewed-by: Drew Fustini <drew@beagleboard.org >
Link: https://lore.kernel.org/r/20210319152133.28705-4-hhhawa@amazon.com
Signed-off-by: Linus Walleij <linus.walleij@linaro.org >
2021-03-25 09:06:31 +01:00
Hanna Hawa
8fa2ea202b
pinctrl: pinctrl-single: remove unused parameter
...
Remove unused parameter 'pin_pos' from pcs_add_pin().
Signed-off-by: Hanna Hawa <hhhawa@amazon.com >
Reviewed-by: Tony Lindgren <tony@atomide.com >
Reviewed-by: Drew Fustini <drew@beagleboard.org >
Link: https://lore.kernel.org/r/20210319152133.28705-3-hhhawa@amazon.com
Signed-off-by: Linus Walleij <linus.walleij@linaro.org >
2021-03-25 09:06:31 +01:00
Hanna Hawa
81cc4c37ad
pinctrl: pinctrl-single: remove unused variable
...
Remove unused parameter 'num_pins_in_register' from
pcs_allocate_pin_table().
Reported-by: kernel test robot <lkp@intel.com >
Signed-off-by: Hanna Hawa <hhhawa@amazon.com >
Reviewed-by: Tony Lindgren <tony@atomide.com >
Reviewed-by: Drew Fustini <drew@beagleboard.org >
Link: https://lore.kernel.org/r/20210319152133.28705-2-hhhawa@amazon.com
Signed-off-by: Linus Walleij <linus.walleij@linaro.org >
2021-03-25 09:06:31 +01:00
Geert Uytterhoeven
61232cd6ef
pinctrl: renesas: r8a7791: Add bias pinconf support
...
Implement support for pull-up (most pins) and pull-down (ASEBRK#/ACK)
handling for R-Car M2-W and M2-N, and RZ/G1M and RZ/G1N SoCs, using the
common R-Car bias handling.
Note that on RZ/G1 SoCs, the "ASEBRK#/ACK" pin is called "ACK", but the
code doesn't handle that naming difference. Hence users should use the
R-Car naming in DTS files.
Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be >
Reviewed-by: Niklas Söderlund <niklas.soderlund+renesas@ragnatech.se >
Link: https://lore.kernel.org/r/20210303132619.3938128-7-geert+renesas@glider.be
2021-03-24 10:38:29 +01:00
Geert Uytterhoeven
1d3928a3e6
pinctrl: renesas: Add support for R-Car SoCs with pull-down only pins
...
Currently, the common R-Car bias handling supports pin controllers with
either:
1. Separate pin Pull-Enable (PUEN) and pin Pull-Up/Down control (PUD)
registers, for controlling both pin pull-up and pin pull-down,
2. A single pin Pull-Up control register (PUPR), for controlling pin
pull-up.
Add support for a variant of #2 , where some bits in the single pin
Pull-Up control register (PUPR) control pin pull-down instead of pin
pull-up. This is the case for the "ASEBRK#/ACK" pin on R-Car M2-W,
M2-N, and E2, and the "ACK" pin on RZ/G1M, RZ/G1N, RZ/G1E, and RZ/G1C.
To describe such a register, SoC-specific drivers need to provide two
instances of pinmux_bias_reg: a first one with the puen field filled in,
listing pins with pull-up functionality, and a second one with the pud
field filled in, listing pins with pull-down functionality.
Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be >
Reviewed-by: Niklas Söderlund <niklas.soderlund+renesas@ragnatech.se >
Link: https://lore.kernel.org/r/20210303132619.3938128-6-geert+renesas@glider.be
2021-03-24 10:38:29 +01:00
Geert Uytterhoeven
93d6c7d676
pinctrl: renesas: Add PORT_GP_CFG_7 macros
...
Add PORT_GP_CFG_7() and PORT_GP_7() helper macros, to be used by the
r8a7791 subdriver.
Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be >
Reviewed-by: Niklas Söderlund <niklas.soderlund+renesas@ragnatech.se >
Link: https://lore.kernel.org/r/20210303132619.3938128-5-geert+renesas@glider.be
2021-03-24 10:38:29 +01:00
Geert Uytterhoeven
ec0794a122
pinctrl: renesas: Factor out common R-Mobile bias handling
...
The pin control sub-drivers for SH/R-Mobile SoCs contain almost
identical bias handling. The only SoC-specific part is the mapping from
pin numbers to PORTnCR registers.
Reduce code duplication by factoring out the bias handling to the common
pinctrl.c code. Use a callback to handle the pin/register mapping.
Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be >
Reviewed-by: Niklas Söderlund <niklas.soderlund+renesas@ragnatech.se >
Link: https://lore.kernel.org/r/20210303132619.3938128-4-geert+renesas@glider.be
2021-03-24 10:38:29 +01:00
Geert Uytterhoeven
4b6e6c1989
pinctrl: renesas: Move R-Car bias helpers to sh_pfc.h
...
The Renesas Pin Function Controller driver uses two header files:
- sh_pfc.h, for use by both core code and SoC-specific drivers,
- core.h, for internal use by the core code only.
Hence move the R-Car bias helper declarations from core.h to sh_pfc.h,
and drop the inclusion of core.h from SoC-specific drivers that no
longer need it.
Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be >
Reviewed-by: Niklas Söderlund <niklas.soderlund+renesas@ragnatech.se >
Link: https://lore.kernel.org/r/20210303132619.3938128-3-geert+renesas@glider.be
2021-03-24 10:38:29 +01:00
Geert Uytterhoeven
b82fd2df17
pinctrl: renesas: Make sh_pfc_pin_to_bias_reg() static
...
Now all R-Car pin control drivers have been converted to the common
R-Car bias handling, sh_pfc_pin_to_bias_reg() is only called from a
single place. Move it from core.c to pinctrl.c, make it static, and
rename it to rcar_pin_to_bias_reg(), as it is specific to R-Car SoCs.
Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be >
Reviewed-by: Niklas Söderlund <niklas.soderlund+renesas@ragnatech.se >
Link: https://lore.kernel.org/r/20210303132619.3938128-2-geert+renesas@glider.be
2021-03-24 10:38:29 +01:00