Sai Krishna Potthuri
fa989ae7c7
firmware: xilinx: Add pinctrl support
...
Adding pinctrl support to query platform specific information (pins)
from firmware.
Signed-off-by: Sai Krishna Potthuri <lakshmi.sai.krishna.potthuri@xilinx.com >
Acked-by: Michal Simek <michal.simek@xilinx.com >
Link: https://lore.kernel.org/r/1619080202-31924-2-git-send-email-lakshmi.sai.krishna.potthuri@xilinx.com
Signed-off-by: Linus Walleij <linus.walleij@linaro.org >
2021-04-22 11:12:19 +02:00
Jianqun Xu
fe202ea8e5
pinctrl: rockchip: do coding style for mux route struct
...
The mux route tables take many lines for each SoC, and it will be more
instances for newly SoC, that makes the file size increase larger.
This patch only do coding style for mux route struct, by adding a new
definition and replace the structs by script which supplied by
huangtao@rock-chips.com
sed -i -e "
/static struct rockchip_mux_route_data /bcheck
b
:append-next-line
N
:check
/^[^;]*$/bappend-next-line
s/[[:blank:]]*.bank_num = \([[:digit:]]*,\)\n/\tRK_MUXROUTE_SAME(\1/g
s/[[:blank:]]*.pin =[[:blank:]]*0,\n/ RK_PA0,/g
s/[[:blank:]]*.pin =[[:blank:]]*1,\n/ RK_PA1,/g
s/[[:blank:]]*.pin =[[:blank:]]*2,\n/ RK_PA2,/g
s/[[:blank:]]*.pin =[[:blank:]]*3,\n/ RK_PA3,/g
s/[[:blank:]]*.pin =[[:blank:]]*4,\n/ RK_PA4,/g
s/[[:blank:]]*.pin =[[:blank:]]*5,\n/ RK_PA5,/g
s/[[:blank:]]*.pin =[[:blank:]]*6,\n/ RK_PA6,/g
s/[[:blank:]]*.pin =[[:blank:]]*7,\n/ RK_PA7,/g
s/[[:blank:]]*.pin =[[:blank:]]*8,\n/ RK_PB0,/g
s/[[:blank:]]*.pin =[[:blank:]]*9,\n/ RK_PB1,/g
s/[[:blank:]]*.pin =[[:blank:]]*10,\n/ RK_PB2,/g
s/[[:blank:]]*.pin =[[:blank:]]*11,\n/ RK_PB3,/g
s/[[:blank:]]*.pin =[[:blank:]]*12,\n/ RK_PB4,/g
s/[[:blank:]]*.pin =[[:blank:]]*13,\n/ RK_PB5,/g
s/[[:blank:]]*.pin =[[:blank:]]*14,\n/ RK_PB6,/g
s/[[:blank:]]*.pin =[[:blank:]]*15,\n/ RK_PB7,/g
s/[[:blank:]]*.pin =[[:blank:]]*16,\n/ RK_PC0,/g
s/[[:blank:]]*.pin =[[:blank:]]*17,\n/ RK_PC1,/g
s/[[:blank:]]*.pin =[[:blank:]]*18,\n/ RK_PC2,/g
s/[[:blank:]]*.pin =[[:blank:]]*19,\n/ RK_PC3,/g
s/[[:blank:]]*.pin =[[:blank:]]*20,\n/ RK_PC4,/g
s/[[:blank:]]*.pin =[[:blank:]]*21,\n/ RK_PC5,/g
s/[[:blank:]]*.pin =[[:blank:]]*22,\n/ RK_PC6,/g
s/[[:blank:]]*.pin =[[:blank:]]*23,\n/ RK_PC7,/g
s/[[:blank:]]*.pin =[[:blank:]]*24,\n/ RK_PD0,/g
s/[[:blank:]]*.pin =[[:blank:]]*25,\n/ RK_PD1,/g
s/[[:blank:]]*.pin =[[:blank:]]*26,\n/ RK_PD2,/g
s/[[:blank:]]*.pin =[[:blank:]]*27,\n/ RK_PD3,/g
s/[[:blank:]]*.pin =[[:blank:]]*28,\n/ RK_PD4,/g
s/[[:blank:]]*.pin =[[:blank:]]*29,\n/ RK_PD5,/g
s/[[:blank:]]*.pin =[[:blank:]]*30,\n/ RK_PD6,/g
s/[[:blank:]]*.pin =[[:blank:]]*31,\n/ RK_PD7,/g
s/[[:blank:]]*.func = \([[:digit:]]*,\)\n/ \1/g
s/[[:blank:]]*.route_location =[[:blank:]]*\([[:print:]]*,\)\n//g
s/[[:blank:]]*.route_offset = \(0x[[:xdigit:]]*,\)\n/ \1/g
s/[[:blank:]]*.route_val =[[:blank:]]*\([[:print:]]*\),\n/ \1),/g
s/\t{\n//g
s/\t}, {\n//g
s/\t},//g
s/[[:blank:]]*\(\/\*[[:print:]]*\*\/\)\n[[:blank:]]*RK_MUXROUTE_SAME(\([[:print:]]*\)),\n/\tRK_MUXROUTE_SAME(\2), \1\n/g
s/[[:blank:]]*\(\/\*[[:print:]]*\*\/\)\n[[:blank:]]*RK_MUXROUTE_SAME(\([[:print:]]*\)),/\tRK_MUXROUTE_SAME(\2), \1\n/g
" drivers/pinctrl/pinctrl-rockchip.c
Reviewed-by: Heiko Stuebner <heiko@sntech.de >
Signed-off-by: Jianqun Xu <jay.xu@rock-chips.com >
Link: https://lore.kernel.org/r/20210420091240.1246429-1-jay.xu@rock-chips.com
Signed-off-by: Linus Walleij <linus.walleij@linaro.org >
2021-04-22 02:11:40 +02:00
Andy Shevchenko
09e11caaa4
pinctrl: Add PIN_CONFIG_MODE_PWM to enum pin_config_param
...
It seems that we will have more and more pin controllers that support
PWM function on the (selected) pins. Due to it being a part of pin
controller IP the idea is to have some code that will switch the mode
and attach the corresponding driver, for example, via using it as
a library. Meanwhile, put a corresponding item to the pin_config_param
enumerator.
Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com >
Link: https://lore.kernel.org/r/20210412140741.39946-3-andriy.shevchenko@linux.intel.com
Signed-off-by: Linus Walleij <linus.walleij@linaro.org >
2021-04-22 02:03:01 +02:00
Andy Shevchenko
31f9a421a1
pinctrl: Introduce MODE group in enum pin_config_param
...
Better to have a MODE group of settings to keep them together
when ordered alphabetically. Hence, rename PIN_CONFIG_LOW_POWER_MODE
to PIN_CONFIG_MODE_LOW_POWER.
Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com >
Link: https://lore.kernel.org/r/20210412140741.39946-2-andriy.shevchenko@linux.intel.com
Signed-off-by: Linus Walleij <linus.walleij@linaro.org >
2021-04-22 02:03:01 +02:00
Andy Shevchenko
1de15e99a2
pinctrl: Keep enum pin_config_param ordered by name
...
It seems the ordering is by name. Keep it that way.
Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com >
Link: https://lore.kernel.org/r/20210412140741.39946-1-andriy.shevchenko@linux.intel.com
Signed-off-by: Linus Walleij <linus.walleij@linaro.org >
2021-04-22 02:03:01 +02:00
Sai Krishna Potthuri
1dccb5ec01
dt-bindings: pinctrl: Add binding for ZynqMP pinctrl driver
...
Adding documentation and dt-bindings file which contains MIO pin
configuration defines for Xilinx ZynqMP pinctrl driver.
Signed-off-by: Sai Krishna Potthuri <lakshmi.sai.krishna.potthuri@xilinx.com >
Reviewed-by: Rob Herring <robh@kernel.org >
Link: https://lore.kernel.org/r/1618485193-5403-3-git-send-email-lakshmi.sai.krishna.potthuri@xilinx.com
Signed-off-by: Linus Walleij <linus.walleij@linaro.org >
2021-04-22 01:58:59 +02:00
Andy Shevchenko
11f054c114
pinctrl: core: Fix kernel doc string for pin_get_name()
...
The kernel doc string mistakenly advertises the pin_get_name_from_id().
Fix it, otherwise kernel doc validator is not happy:
.../core.c:168: warning: expecting prototype for pin_get_name_from_id(). Prototype was for pin_get_name() instead
Fixes: dcb5dbc305 ("pinctrl: show pin name for pingroups in sysfs")
Cc: Dong Aisheng <dong.aisheng@linaro.org >
Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com >
Link: https://lore.kernel.org/r/20210415123521.86894-1-andriy.shevchenko@linux.intel.com
Signed-off-by: Linus Walleij <linus.walleij@linaro.org >
2021-04-22 01:55:24 +02:00
Tzung-Bi Shih
56ab29ec6f
pinctrl: mediatek: use spin lock in mtk_rmw
...
Commit 42a46434e9 ("pinctrl: add lock in mtk_rmw function.") uses
mutex lock in mtk_rmw. However the function is possible called from
atomic context.
For example call trace:
mutex_lock+0x28/0x64
mtk_rmw+0x38/0x80
[snip]
max98357a_daiops_trigger+0x8c/0x9c
soc_pcm_trigger+0x5c/0x10c
The max98357a_daiops_trigger() could run in either atomic or non-atomic
context. As a result, dmesg shows some similar messages: "BUG: sleeping
function called from invalid context at kernel/locking/mutex.c:254".
Uses spin lock in mtk_rmw instead.
Fixes: 42a46434e9 ("pinctrl: add lock in mtk_rmw function.")
Signed-off-by: Tzung-Bi Shih <tzungbi@google.com >
Link: https://lore.kernel.org/r/20210419093449.3125704-1-tzungbi@google.com
Signed-off-by: Linus Walleij <linus.walleij@linaro.org >
2021-04-22 01:53:29 +02:00
Zhiyong Tao
ea9d2ed465
pinctrl: add drive for I2C related pins on MT8195
...
This patch provides the advanced drive raw data setting version
for I2C used pins on MT8195.
Signed-off-by: Zhiyong Tao <zhiyong.tao@mediatek.com >
Acked-by: Sean Wang <sean.wang@kernel.org >
Link: https://lore.kernel.org/r/20210413055702.27535-4-zhiyong.tao@mediatek.com
Signed-off-by: Linus Walleij <linus.walleij@linaro.org >
2021-04-22 01:53:02 +02:00
Zhiyong Tao
6cf5e9ef36
pinctrl: add pinctrl driver on mt8195
...
This commit includes pinctrl driver for mt8195.
Signed-off-by: Zhiyong Tao <zhiyong.tao@mediatek.com >
Acked-by: Sean Wang <sean.wang@kernel.org >
Link: https://lore.kernel.org/r/20210413055702.27535-3-zhiyong.tao@mediatek.com
Signed-off-by: Linus Walleij <linus.walleij@linaro.org >
2021-04-22 01:53:02 +02:00
Zhiyong Tao
7f7663899d
dt-bindings: pinctrl: mt8195: add pinctrl file and binding document
...
1. This patch adds pinctrl file for mt8195.
2. This patch adds mt8195 compatible node in binding document.
Signed-off-by: Zhiyong Tao <zhiyong.tao@mediatek.com >
Reviewed-by: Rob Herring <robh@kernel.org >
Link: https://lore.kernel.org/r/20210413055702.27535-2-zhiyong.tao@mediatek.com
Signed-off-by: Linus Walleij <linus.walleij@linaro.org >
2021-04-22 01:53:02 +02:00
周琰杰 (Zhou Yanjie)
943e0da153
pinctrl: Ingenic: Add pinctrl driver for X2000.
...
Add support for probing the pinctrl-ingenic driver on the
X2000 SoC from Ingenic.
Signed-off-by: 周琰杰 (Zhou Yanjie) <zhouyanjie@wanyeetech.com >
Reviewed-by: Andy Shevchenko <andy.shevchenko@gmail.com >
Reviewed-by: Paul Cercueil <paul@crapouillou.net >
Link: https://lore.kernel.org/r/1618757073-1724-13-git-send-email-zhouyanjie@wanyeetech.com
Signed-off-by: Linus Walleij <linus.walleij@linaro.org >
2021-04-22 01:53:02 +02:00
周琰杰 (Zhou Yanjie)
0c9907404d
pinctrl: Ingenic: Add pinctrl driver for JZ4775.
...
Add support for probing the pinctrl-ingenic driver on the
JZ4775 SoC from Ingenic.
Signed-off-by: 周琰杰 (Zhou Yanjie) <zhouyanjie@wanyeetech.com >
Reviewed-by: Andy Shevchenko <andy.shevchenko@gmail.com >
Reviewed-by: Paul Cercueil <paul@crapouillou.net >
Link: https://lore.kernel.org/r/1618757073-1724-12-git-send-email-zhouyanjie@wanyeetech.com
Signed-off-by: Linus Walleij <linus.walleij@linaro.org >
2021-04-22 01:53:01 +02:00
周琰杰 (Zhou Yanjie)
b582b5a434
pinctrl: Ingenic: Add pinctrl driver for JZ4755.
...
Add support for probing the pinctrl-ingenic driver on the
JZ4755 SoC from Ingenic.
Signed-off-by: 周琰杰 (Zhou Yanjie) <zhouyanjie@wanyeetech.com >
Reviewed-by: Andy Shevchenko <andy.shevchenko@gmail.com >
Reviewed-by: Paul Cercueil <paul@crapouillou.net >
Link: https://lore.kernel.org/r/1618757073-1724-11-git-send-email-zhouyanjie@wanyeetech.com
Signed-off-by: Linus Walleij <linus.walleij@linaro.org >
2021-04-22 01:53:01 +02:00
周琰杰 (Zhou Yanjie)
215c81a3e9
pinctrl: Ingenic: Add pinctrl driver for JZ4750.
...
Add support for probing the pinctrl-ingenic driver on the
JZ4750 SoC from Ingenic.
Signed-off-by: 周琰杰 (Zhou Yanjie) <zhouyanjie@wanyeetech.com >
Reviewed-by: Andy Shevchenko <andy.shevchenko@gmail.com >
Reviewed-by: Paul Cercueil <paul@crapouillou.net >
Link: https://lore.kernel.org/r/1618757073-1724-10-git-send-email-zhouyanjie@wanyeetech.com
Signed-off-by: Linus Walleij <linus.walleij@linaro.org >
2021-04-22 01:53:01 +02:00
周琰杰 (Zhou Yanjie)
424f39691f
pinctrl: Ingenic: Add pinctrl driver for JZ4730.
...
Add support for probing the pinctrl-ingenic driver on the
JZ4730 SoC from Ingenic.
This driver is derived from Paul Boddie. It is worth to
noting that the JZ4730 SoC is special in having two control
registers (upper/lower), so add code to handle the JZ4730
specific register offsets and some register pairs which have
2 bits for each GPIO pin.
Tested-by: H. Nikolaus Schaller <hns@goldelico.com > # on Letux400
Co-developed-by: Paul Boddie <paul@boddie.org.uk >
Signed-off-by: Paul Boddie <paul@boddie.org.uk >
Signed-off-by: H. Nikolaus Schaller <hns@goldelico.com >
Signed-off-by: 周琰杰 (Zhou Yanjie) <zhouyanjie@wanyeetech.com >
Reviewed-by: Andy Shevchenko <andy.shevchenko@gmail.com >
Reviewed-by: Paul Cercueil <paul@crapouillou.net >
Link: https://lore.kernel.org/r/1618757073-1724-9-git-send-email-zhouyanjie@wanyeetech.com
Signed-off-by: Linus Walleij <linus.walleij@linaro.org >
2021-04-22 01:53:01 +02:00
周琰杰 (Zhou Yanjie)
beadd1b4b4
dt-bindings: pinctrl: Add bindings for new Ingenic SoCs.
...
Add the pinctrl bindings for the JZ4730 SoC, the JZ4750 SoC,
the JZ4755 SoC, the JZ4775 SoC and the X2000 SoC from Ingenic.
Signed-off-by: 周琰杰 (Zhou Yanjie) <zhouyanjie@wanyeetech.com >
Reviewed-by: Rob Herring <robh@kernel.org >
Link: https://lore.kernel.org/r/1618757073-1724-8-git-send-email-zhouyanjie@wanyeetech.com
Signed-off-by: Linus Walleij <linus.walleij@linaro.org >
2021-04-22 01:53:01 +02:00
周琰杰 (Zhou Yanjie)
863becff89
pinctrl: Ingenic: Reformat the code.
...
1.Move the "INGENIC_PIN_GROUP_FUNCS" to the macro definition section.
2.Add tabs before values to align the code in the macro definition section.
Signed-off-by: 周琰杰 (Zhou Yanjie) <zhouyanjie@wanyeetech.com >
Reviewed-by: Andy Shevchenko <andy.shevchenko@gmail.com >
Reviewed-by: Paul Cercueil <paul@crapouillou.net >
Link: https://lore.kernel.org/r/1618757073-1724-7-git-send-email-zhouyanjie@wanyeetech.com
Signed-off-by: Linus Walleij <linus.walleij@linaro.org >
2021-04-22 01:53:01 +02:00
周琰杰 (Zhou Yanjie)
6adf2c5607
pinctrl: Ingenic: Add DMIC pins support for Ingenic SoCs.
...
1.Add DMIC pins support for the JZ4780 SoC.
2.Add DMIC pins support for the X1000 SoC.
3.Add DMIC pins support for the X1500 SoC.
4.Add DMIC pins support for the X1830 SoC.
Signed-off-by: 周琰杰 (Zhou Yanjie) <zhouyanjie@wanyeetech.com >
Reviewed-by: Paul Cercueil <paul@crapouillou.net >
Link: https://lore.kernel.org/r/1618757073-1724-6-git-send-email-zhouyanjie@wanyeetech.com
Signed-off-by: Linus Walleij <linus.walleij@linaro.org >
2021-04-22 01:53:01 +02:00
周琰杰 (Zhou Yanjie)
5e6332a7ff
pinctrl: Ingenic: Improve LCD pins related code.
...
1.In the JZ4740 part, remove pointless "lcd-no-pins", use "lcd-special"
and "lcd-generic" instead "lcd-18bit-tft". Currently, in the mainline,
no other devicetree out there is using the "lcd-18bit-tft" ABI, so we
should be able to replace it safely.
2.In the JZ4725B part, adjust the location of the LCD pins related code
to keep them consistent with the style of other parts.
3.In the JZ4760 part, add the missing comma and adjust element order in
"jz4760_lcd_special_pins[]", keep them in the order of CLS/SPL/PS/REV
like other "lcd_special_pins" arrays. And adjust the location of the
"jz4760_lcd_generic" related code to keep them consistent with the
style of other parts.
4.In the JZ4770 part, remove pointless "lcd-no-pins", add the missing
"lcd-16bit", "lcd-18bit", "lcd-special", "lcd-generic".
5.In the X1000 part and the X1500 part, remove pointless "lcd-no-pins".
6.In the X1830 part, replace "lcd-rgb-18bit" with "lcd-tft-8bit" and
"lcd-tft-24bit", because of the description of the TRANS_CONFIG.MODE
register bits in the PM manual of the X1830, shows that the X1830 only
supppots 24bit mode and 8bit mode for tft interface, only 18 pins in
the GPIO table are because of the data[17:16], the data[9:8], and the
data[1:0] has not been connected. And according to the description,
the two interfaces supported by X1830 are respectively referred to as
"TFT interface" and "SLCD interface", so the "lcd-rgb-xxx" is replaced
with "lcd-tft-xxx" to avoid confusion.
Signed-off-by: 周琰杰 (Zhou Yanjie) <zhouyanjie@wanyeetech.com >
Reviewed-by: Paul Cercueil <paul@crapouillou.net >
Link: https://lore.kernel.org/r/1618757073-1724-5-git-send-email-zhouyanjie@wanyeetech.com
Signed-off-by: Linus Walleij <linus.walleij@linaro.org >
2021-04-22 01:53:01 +02:00
周琰杰 (Zhou Yanjie)
1101519695
pinctrl: Ingenic: Adjust the sequence of X1830 SSI pin groups.
...
Adjust the sequence of X1830's SSI related codes to make it consistent
with other Ingenic SoCs.
Signed-off-by: 周琰杰 (Zhou Yanjie) <zhouyanjie@wanyeetech.com >
Reviewed-by: Andy Shevchenko <andy.shevchenko@gmail.com >
Reviewed-by: Paul Cercueil <paul@crapouillou.net >
Link: https://lore.kernel.org/r/1618757073-1724-4-git-send-email-zhouyanjie@wanyeetech.com
Signed-off-by: Linus Walleij <linus.walleij@linaro.org >
2021-04-22 01:53:01 +02:00
周琰杰 (Zhou Yanjie)
1d0bd580ef
pinctrl: Ingenic: Add support for read the pin configuration of X1830.
...
Add X1830 support in "ingenic_pinconf_get()", so that it can read the
configuration of X1830 SoC correctly.
Fixes: d7da2a1e4e ("pinctrl: Ingenic: Add pinctrl driver for X1830.")
Cc: <stable@vger.kernel.org >
Signed-off-by: 周琰杰 (Zhou Yanjie) <zhouyanjie@wanyeetech.com >
Reviewed-by: Andy Shevchenko <andy.shevchenko@gmail.com >
Reviewed-by: Paul Cercueil <paul@crapouillou.net >
Link: https://lore.kernel.org/r/1618757073-1724-3-git-send-email-zhouyanjie@wanyeetech.com
Signed-off-by: Linus Walleij <linus.walleij@linaro.org >
2021-04-22 01:53:01 +02:00
周琰杰 (Zhou Yanjie)
65afd97630
pinctrl: Ingenic: Add missing pins to the JZ4770 MAC MII group.
...
The MII group of JZ4770's MAC should have 7 pins, add missing
pins to the MII group.
Fixes: 5de1a73e78 ("Pinctrl: Ingenic: Add missing parts for JZ4770 and JZ4780.")
Cc: <stable@vger.kernel.org >
Signed-off-by: 周琰杰 (Zhou Yanjie) <zhouyanjie@wanyeetech.com >
Reviewed-by: Andy Shevchenko <andy.shevchenko@gmail.com >
Reviewed-by: Paul Cercueil <paul@crapouillou.net >
Link: https://lore.kernel.org/r/1618757073-1724-2-git-send-email-zhouyanjie@wanyeetech.com
Signed-off-by: Linus Walleij <linus.walleij@linaro.org >
2021-04-22 01:53:01 +02:00
Ezequiel Garcia
914a307c3b
dt-bindings: pinctrl: rockchip: add RK3568 SoC support
...
Add RK3568/RK3566 SoC support to pinctrl.
Signed-off-by: Ezequiel Garcia <ezequiel@collabora.com >
Reviewed-by: Heiko Stuebner <heiko@sntech.de >
Acked-by: Rob Herring <robh@kernel.org >
Link: https://lore.kernel.org/r/20210410204500.18091-1-ezequiel@collabora.com
Signed-off-by: Linus Walleij <linus.walleij@linaro.org >
2021-04-14 13:02:43 +02:00
Julian Braha
376f9e34c1
drivers: pinctrl: qcom: fix Kconfig dependency on GPIOLIB
...
When PINCTRL_MSM is enabled, and GPIOLIB is disabled,
Kbuild gives the following warning:
WARNING: unmet direct dependencies detected for GPIOLIB_IRQCHIP
Depends on [n]: GPIOLIB [=n]
Selected by [y]:
- PINCTRL_MSM [=y] && PINCTRL [=y] && (ARCH_QCOM || COMPILE_TEST [=y])
This is because PINCTRL_MSM selects GPIOLIB_IRQCHIP,
without selecting or depending on GPIOLIB, despite
GPIOLIB_IRQCHIP depending on GPIOLIB. Having PINCTRL_MSM
select GPIOLIB will cause a recursive dependency error.
Signed-off-by: Julian Braha <julianbraha@gmail.com >
Reviewed-by: Bjorn Andersson <bjorn.andersson@linaro.org >
Link: https://lore.kernel.org/r/20210414025138.480085-1-julianbraha@gmail.com
Signed-off-by: Linus Walleij <linus.walleij@linaro.org >
2021-04-14 09:11:14 +02:00
Tudor Ambarus
cbde6c823b
pinctrl: at91-pio4: Fix slew rate disablement
...
The slew rate was enabled by default for each configuration of the
pin. In case the pin had more than one configuration, even if
we set the slew rate as disabled in the device tree, the next pin
configuration would set again the slew rate enabled by default,
overwriting the slew rate disablement.
Instead of enabling the slew rate by default for each pin configuration,
enable the slew rate by default just once per pin, regardless of the
number of configurations. This way the slew rate disablement will also
work for cases where pins have multiple configurations.
Fixes: c709135e57 ("pinctrl: at91-pio4: add support for slew-rate")
Signed-off-by: Tudor Ambarus <tudor.ambarus@microchip.com >
Reviewed-by: Claudiu Beznea <claudiu.beznea@microchip.com >
Acked-by: Ludovic Desroches <ludovic.desroches@microchip.com >
Link: https://lore.kernel.org/r/20210409082522.625168-1-tudor.ambarus@microchip.com
Signed-off-by: Linus Walleij <linus.walleij@linaro.org >
2021-04-13 09:42:18 +02:00
Krzysztof Kozlowski
fa0c10a5f3
pinctrl: samsung: use 'int' for register masks in Exynos
...
The Special Function Registers on all Exynos SoC, including ARM64, are
32-bit wide, so entire driver uses matching functions like readl() or
writel(). On 64-bit ARM using unsigned long for register masks:
1. makes little sense as immediately after bitwise operation it will be
cast to 32-bit value when calling writel(),
2. is actually error-prone because it might promote other operands to
64-bit.
Addresses-Coverity: Unintentional integer overflow
Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com >
Reviewed-by: Sylwester Nawrocki <s.nawrocki@samsung.com >
Link: https://lore.kernel.org/r/20210408195029.69974-1-krzysztof.kozlowski@canonical.com
Signed-off-by: Linus Walleij <linus.walleij@linaro.org >
2021-04-10 02:06:36 +02:00
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