Skip to content

Commit 8440ffc

Browse files
committed
Merge tag 'pinctrl-v6.2-2' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-pinctrl
Pull pin control fixes from Linus Walleij: - Compilation fix for Sunplus sp7021 - Add some missing headers after a cleanup to the Nomadik driver - Fix pull type and mux routes on Rockchip RK3568 * tag 'pinctrl-v6.2-2' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-pinctrl: pinctrl: rockchip: fix mux route data for rk3568 pinctrl: rockchip: fix reading pull type on rk3568 pinctrl: nomadik: Add missing header(s) pinctrl: sp7021: fix unused function warning
2 parents 8974efa + 431d153 commit 8440ffc

File tree

10 files changed

+76
-47
lines changed

10 files changed

+76
-47
lines changed

drivers/pinctrl/nomadik/pinctrl-ab8500.c

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,10 @@
66
*/
77

88
#include <linux/kernel.h>
9-
#include <linux/gpio/driver.h>
109
#include <linux/pinctrl/pinctrl.h>
10+
1111
#include <linux/mfd/abx500/ab8500.h>
12+
1213
#include "pinctrl-abx500.h"
1314

1415
/* All the pins that can be used for GPIO and some other functions */

drivers/pinctrl/nomadik/pinctrl-ab8505.c

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,10 @@
66
*/
77

88
#include <linux/kernel.h>
9-
#include <linux/gpio/driver.h>
109
#include <linux/pinctrl/pinctrl.h>
10+
1111
#include <linux/mfd/abx500/ab8500.h>
12+
1213
#include "pinctrl-abx500.h"
1314

1415
/* All the pins that can be used for GPIO and some other functions */

drivers/pinctrl/nomadik/pinctrl-abx500.c

Lines changed: 18 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -6,33 +6,37 @@
66
*
77
* Driver allows to use AxB5xx unused pins to be used as GPIO
88
*/
9-
#include <linux/kernel.h>
10-
#include <linux/types.h>
11-
#include <linux/slab.h>
12-
#include <linux/init.h>
9+
#include <linux/bitops.h>
1310
#include <linux/err.h>
14-
#include <linux/of.h>
15-
#include <linux/of_device.h>
16-
#include <linux/platform_device.h>
1711
#include <linux/gpio/driver.h>
12+
#include <linux/init.h>
13+
#include <linux/interrupt.h>
1814
#include <linux/irq.h>
1915
#include <linux/irqdomain.h>
20-
#include <linux/interrupt.h>
21-
#include <linux/bitops.h>
16+
#include <linux/kernel.h>
17+
#include <linux/of.h>
18+
#include <linux/of_device.h>
19+
#include <linux/platform_device.h>
20+
#include <linux/seq_file.h>
21+
#include <linux/slab.h>
22+
#include <linux/types.h>
23+
2224
#include <linux/mfd/abx500.h>
2325
#include <linux/mfd/abx500/ab8500.h>
24-
#include <linux/pinctrl/pinctrl.h>
26+
2527
#include <linux/pinctrl/consumer.h>
26-
#include <linux/pinctrl/pinmux.h>
27-
#include <linux/pinctrl/pinconf.h>
28-
#include <linux/pinctrl/pinconf-generic.h>
2928
#include <linux/pinctrl/machine.h>
29+
#include <linux/pinctrl/pinconf-generic.h>
30+
#include <linux/pinctrl/pinconf.h>
31+
#include <linux/pinctrl/pinctrl.h>
32+
#include <linux/pinctrl/pinmux.h>
3033

31-
#include "pinctrl-abx500.h"
3234
#include "../core.h"
3335
#include "../pinconf.h"
3436
#include "../pinctrl-utils.h"
3537

38+
#include "pinctrl-abx500.h"
39+
3640
/*
3741
* GPIO registers offset
3842
* Bank: 0x10

drivers/pinctrl/nomadik/pinctrl-abx500.h

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,10 @@
22
#ifndef PINCTRL_PINCTRL_ABx500_H
33
#define PINCTRL_PINCTRL_ABx500_H
44

5+
#include <linux/types.h>
6+
7+
struct pinctrl_pin_desc;
8+
59
/* Package definitions */
610
#define PINCTRL_AB8500 0
711
#define PINCTRL_AB8505 1

drivers/pinctrl/nomadik/pinctrl-nomadik-db8500.c

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,9 @@
11
// SPDX-License-Identifier: GPL-2.0
22
#include <linux/kernel.h>
3+
#include <linux/types.h>
4+
35
#include <linux/pinctrl/pinctrl.h>
6+
47
#include "pinctrl-nomadik.h"
58

69
/* All the pins that can be used for GPIO and some other functions */

drivers/pinctrl/nomadik/pinctrl-nomadik-stn8815.c

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,9 @@
11
// SPDX-License-Identifier: GPL-2.0
22
#include <linux/kernel.h>
3+
#include <linux/types.h>
4+
35
#include <linux/pinctrl/pinctrl.h>
6+
47
#include "pinctrl-nomadik.h"
58

69
/* All the pins that can be used for GPIO and some other functions */

drivers/pinctrl/nomadik/pinctrl-nomadik.c

Lines changed: 17 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -7,30 +7,34 @@
77
* Rewritten based on work by Prafulla WADASKAR <prafulla.wadaskar@st.com>
88
* Copyright (C) 2011-2013 Linus Walleij <linus.walleij@linaro.org>
99
*/
10-
#include <linux/kernel.h>
11-
#include <linux/init.h>
12-
#include <linux/device.h>
13-
#include <linux/platform_device.h>
14-
#include <linux/io.h>
10+
#include <linux/bitops.h>
1511
#include <linux/clk.h>
12+
#include <linux/device.h>
1613
#include <linux/err.h>
1714
#include <linux/gpio/driver.h>
18-
#include <linux/spinlock.h>
15+
#include <linux/init.h>
1916
#include <linux/interrupt.h>
20-
#include <linux/slab.h>
21-
#include <linux/of_device.h>
17+
#include <linux/io.h>
18+
#include <linux/kernel.h>
2219
#include <linux/of_address.h>
23-
#include <linux/bitops.h>
20+
#include <linux/of_device.h>
21+
#include <linux/platform_device.h>
22+
#include <linux/seq_file.h>
23+
#include <linux/slab.h>
24+
#include <linux/spinlock.h>
25+
26+
/* Since we request GPIOs from ourself */
27+
#include <linux/pinctrl/consumer.h>
2428
#include <linux/pinctrl/machine.h>
29+
#include <linux/pinctrl/pinconf.h>
2530
#include <linux/pinctrl/pinctrl.h>
2631
#include <linux/pinctrl/pinmux.h>
27-
#include <linux/pinctrl/pinconf.h>
28-
/* Since we request GPIOs from ourself */
29-
#include <linux/pinctrl/consumer.h>
30-
#include "pinctrl-nomadik.h"
32+
3133
#include "../core.h"
3234
#include "../pinctrl-utils.h"
3335

36+
#include "pinctrl-nomadik.h"
37+
3438
/*
3539
* The GPIO module in the Nomadik family of Systems-on-Chip is an
3640
* AMBA device, managing 32 pins and alternate functions. The logic block
@@ -907,8 +911,6 @@ static int nmk_gpio_get_mode(struct nmk_gpio_chip *nmk_chip, int offset)
907911
return (afunc ? NMK_GPIO_ALT_A : 0) | (bfunc ? NMK_GPIO_ALT_B : 0);
908912
}
909913

910-
#include <linux/seq_file.h>
911-
912914
static void nmk_gpio_dbg_show_one(struct seq_file *s,
913915
struct pinctrl_dev *pctldev, struct gpio_chip *chip,
914916
unsigned offset, unsigned gpio)

drivers/pinctrl/nomadik/pinctrl-nomadik.h

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,11 @@
22
#ifndef PINCTRL_PINCTRL_NOMADIK_H
33
#define PINCTRL_PINCTRL_NOMADIK_H
44

5+
#include <linux/kernel.h>
6+
#include <linux/types.h>
7+
8+
#include <linux/pinctrl/pinctrl.h>
9+
510
/* Package definitions */
611
#define PINCTRL_NMK_STN8815 0
712
#define PINCTRL_NMK_DB8500 1

drivers/pinctrl/pinctrl-rockchip.c

Lines changed: 20 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -926,19 +926,19 @@ static struct rockchip_mux_route_data rk3568_mux_route_data[] = {
926926
RK_MUXROUTE_PMU(0, RK_PB5, 4, 0x0110, WRITE_MASK_VAL(3, 2, 1)), /* PWM1 IO mux M1 */
927927
RK_MUXROUTE_PMU(0, RK_PC1, 1, 0x0110, WRITE_MASK_VAL(5, 4, 0)), /* PWM2 IO mux M0 */
928928
RK_MUXROUTE_PMU(0, RK_PB6, 4, 0x0110, WRITE_MASK_VAL(5, 4, 1)), /* PWM2 IO mux M1 */
929-
RK_MUXROUTE_PMU(0, RK_PB3, 2, 0x0300, WRITE_MASK_VAL(0, 0, 0)), /* CAN0 IO mux M0 */
929+
RK_MUXROUTE_GRF(0, RK_PB3, 2, 0x0300, WRITE_MASK_VAL(0, 0, 0)), /* CAN0 IO mux M0 */
930930
RK_MUXROUTE_GRF(2, RK_PA1, 4, 0x0300, WRITE_MASK_VAL(0, 0, 1)), /* CAN0 IO mux M1 */
931931
RK_MUXROUTE_GRF(1, RK_PA1, 3, 0x0300, WRITE_MASK_VAL(2, 2, 0)), /* CAN1 IO mux M0 */
932932
RK_MUXROUTE_GRF(4, RK_PC3, 3, 0x0300, WRITE_MASK_VAL(2, 2, 1)), /* CAN1 IO mux M1 */
933933
RK_MUXROUTE_GRF(4, RK_PB5, 3, 0x0300, WRITE_MASK_VAL(4, 4, 0)), /* CAN2 IO mux M0 */
934934
RK_MUXROUTE_GRF(2, RK_PB2, 4, 0x0300, WRITE_MASK_VAL(4, 4, 1)), /* CAN2 IO mux M1 */
935935
RK_MUXROUTE_GRF(4, RK_PC4, 1, 0x0300, WRITE_MASK_VAL(6, 6, 0)), /* HPDIN IO mux M0 */
936-
RK_MUXROUTE_PMU(0, RK_PC2, 2, 0x0300, WRITE_MASK_VAL(6, 6, 1)), /* HPDIN IO mux M1 */
936+
RK_MUXROUTE_GRF(0, RK_PC2, 2, 0x0300, WRITE_MASK_VAL(6, 6, 1)), /* HPDIN IO mux M1 */
937937
RK_MUXROUTE_GRF(3, RK_PB1, 3, 0x0300, WRITE_MASK_VAL(8, 8, 0)), /* GMAC1 IO mux M0 */
938938
RK_MUXROUTE_GRF(4, RK_PA7, 3, 0x0300, WRITE_MASK_VAL(8, 8, 1)), /* GMAC1 IO mux M1 */
939939
RK_MUXROUTE_GRF(4, RK_PD1, 1, 0x0300, WRITE_MASK_VAL(10, 10, 0)), /* HDMITX IO mux M0 */
940-
RK_MUXROUTE_PMU(0, RK_PC7, 1, 0x0300, WRITE_MASK_VAL(10, 10, 1)), /* HDMITX IO mux M1 */
941-
RK_MUXROUTE_PMU(0, RK_PB6, 1, 0x0300, WRITE_MASK_VAL(14, 14, 0)), /* I2C2 IO mux M0 */
940+
RK_MUXROUTE_GRF(0, RK_PC7, 1, 0x0300, WRITE_MASK_VAL(10, 10, 1)), /* HDMITX IO mux M1 */
941+
RK_MUXROUTE_GRF(0, RK_PB6, 1, 0x0300, WRITE_MASK_VAL(14, 14, 0)), /* I2C2 IO mux M0 */
942942
RK_MUXROUTE_GRF(4, RK_PB4, 1, 0x0300, WRITE_MASK_VAL(14, 14, 1)), /* I2C2 IO mux M1 */
943943
RK_MUXROUTE_GRF(1, RK_PA0, 1, 0x0304, WRITE_MASK_VAL(0, 0, 0)), /* I2C3 IO mux M0 */
944944
RK_MUXROUTE_GRF(3, RK_PB6, 4, 0x0304, WRITE_MASK_VAL(0, 0, 1)), /* I2C3 IO mux M1 */
@@ -964,7 +964,7 @@ static struct rockchip_mux_route_data rk3568_mux_route_data[] = {
964964
RK_MUXROUTE_GRF(4, RK_PC3, 1, 0x0308, WRITE_MASK_VAL(12, 12, 1)), /* PWM15 IO mux M1 */
965965
RK_MUXROUTE_GRF(3, RK_PD2, 3, 0x0308, WRITE_MASK_VAL(14, 14, 0)), /* SDMMC2 IO mux M0 */
966966
RK_MUXROUTE_GRF(3, RK_PA5, 5, 0x0308, WRITE_MASK_VAL(14, 14, 1)), /* SDMMC2 IO mux M1 */
967-
RK_MUXROUTE_PMU(0, RK_PB5, 2, 0x030c, WRITE_MASK_VAL(0, 0, 0)), /* SPI0 IO mux M0 */
967+
RK_MUXROUTE_GRF(0, RK_PB5, 2, 0x030c, WRITE_MASK_VAL(0, 0, 0)), /* SPI0 IO mux M0 */
968968
RK_MUXROUTE_GRF(2, RK_PD3, 3, 0x030c, WRITE_MASK_VAL(0, 0, 1)), /* SPI0 IO mux M1 */
969969
RK_MUXROUTE_GRF(2, RK_PB5, 3, 0x030c, WRITE_MASK_VAL(2, 2, 0)), /* SPI1 IO mux M0 */
970970
RK_MUXROUTE_GRF(3, RK_PC3, 3, 0x030c, WRITE_MASK_VAL(2, 2, 1)), /* SPI1 IO mux M1 */
@@ -973,8 +973,8 @@ static struct rockchip_mux_route_data rk3568_mux_route_data[] = {
973973
RK_MUXROUTE_GRF(4, RK_PB3, 4, 0x030c, WRITE_MASK_VAL(6, 6, 0)), /* SPI3 IO mux M0 */
974974
RK_MUXROUTE_GRF(4, RK_PC2, 2, 0x030c, WRITE_MASK_VAL(6, 6, 1)), /* SPI3 IO mux M1 */
975975
RK_MUXROUTE_GRF(2, RK_PB4, 2, 0x030c, WRITE_MASK_VAL(8, 8, 0)), /* UART1 IO mux M0 */
976-
RK_MUXROUTE_PMU(0, RK_PD1, 1, 0x030c, WRITE_MASK_VAL(8, 8, 1)), /* UART1 IO mux M1 */
977-
RK_MUXROUTE_PMU(0, RK_PD1, 1, 0x030c, WRITE_MASK_VAL(10, 10, 0)), /* UART2 IO mux M0 */
976+
RK_MUXROUTE_GRF(3, RK_PD6, 4, 0x030c, WRITE_MASK_VAL(8, 8, 1)), /* UART1 IO mux M1 */
977+
RK_MUXROUTE_GRF(0, RK_PD1, 1, 0x030c, WRITE_MASK_VAL(10, 10, 0)), /* UART2 IO mux M0 */
978978
RK_MUXROUTE_GRF(1, RK_PD5, 2, 0x030c, WRITE_MASK_VAL(10, 10, 1)), /* UART2 IO mux M1 */
979979
RK_MUXROUTE_GRF(1, RK_PA1, 2, 0x030c, WRITE_MASK_VAL(12, 12, 0)), /* UART3 IO mux M0 */
980980
RK_MUXROUTE_GRF(3, RK_PB7, 4, 0x030c, WRITE_MASK_VAL(12, 12, 1)), /* UART3 IO mux M1 */
@@ -1004,13 +1004,13 @@ static struct rockchip_mux_route_data rk3568_mux_route_data[] = {
10041004
RK_MUXROUTE_GRF(3, RK_PD6, 5, 0x0314, WRITE_MASK_VAL(1, 0, 1)), /* PDM IO mux M1 */
10051005
RK_MUXROUTE_GRF(4, RK_PA0, 4, 0x0314, WRITE_MASK_VAL(1, 0, 1)), /* PDM IO mux M1 */
10061006
RK_MUXROUTE_GRF(3, RK_PC4, 5, 0x0314, WRITE_MASK_VAL(1, 0, 2)), /* PDM IO mux M2 */
1007-
RK_MUXROUTE_PMU(0, RK_PA5, 3, 0x0314, WRITE_MASK_VAL(3, 2, 0)), /* PCIE20 IO mux M0 */
1007+
RK_MUXROUTE_GRF(0, RK_PA5, 3, 0x0314, WRITE_MASK_VAL(3, 2, 0)), /* PCIE20 IO mux M0 */
10081008
RK_MUXROUTE_GRF(2, RK_PD0, 4, 0x0314, WRITE_MASK_VAL(3, 2, 1)), /* PCIE20 IO mux M1 */
10091009
RK_MUXROUTE_GRF(1, RK_PB0, 4, 0x0314, WRITE_MASK_VAL(3, 2, 2)), /* PCIE20 IO mux M2 */
1010-
RK_MUXROUTE_PMU(0, RK_PA4, 3, 0x0314, WRITE_MASK_VAL(5, 4, 0)), /* PCIE30X1 IO mux M0 */
1010+
RK_MUXROUTE_GRF(0, RK_PA4, 3, 0x0314, WRITE_MASK_VAL(5, 4, 0)), /* PCIE30X1 IO mux M0 */
10111011
RK_MUXROUTE_GRF(2, RK_PD2, 4, 0x0314, WRITE_MASK_VAL(5, 4, 1)), /* PCIE30X1 IO mux M1 */
10121012
RK_MUXROUTE_GRF(1, RK_PA5, 4, 0x0314, WRITE_MASK_VAL(5, 4, 2)), /* PCIE30X1 IO mux M2 */
1013-
RK_MUXROUTE_PMU(0, RK_PA6, 2, 0x0314, WRITE_MASK_VAL(7, 6, 0)), /* PCIE30X2 IO mux M0 */
1013+
RK_MUXROUTE_GRF(0, RK_PA6, 2, 0x0314, WRITE_MASK_VAL(7, 6, 0)), /* PCIE30X2 IO mux M0 */
10141014
RK_MUXROUTE_GRF(2, RK_PD4, 4, 0x0314, WRITE_MASK_VAL(7, 6, 1)), /* PCIE30X2 IO mux M1 */
10151015
RK_MUXROUTE_GRF(4, RK_PC2, 4, 0x0314, WRITE_MASK_VAL(7, 6, 2)), /* PCIE30X2 IO mux M2 */
10161016
};
@@ -2436,10 +2436,19 @@ static int rockchip_get_pull(struct rockchip_pin_bank *bank, int pin_num)
24362436
case RK3308:
24372437
case RK3368:
24382438
case RK3399:
2439+
case RK3568:
24392440
case RK3588:
24402441
pull_type = bank->pull_type[pin_num / 8];
24412442
data >>= bit;
24422443
data &= (1 << RK3188_PULL_BITS_PER_PIN) - 1;
2444+
/*
2445+
* In the TRM, pull-up being 1 for everything except the GPIO0_D3-D6,
2446+
* where that pull up value becomes 3.
2447+
*/
2448+
if (ctrl->type == RK3568 && bank->bank_num == 0 && pin_num >= 27 && pin_num <= 30) {
2449+
if (data == 3)
2450+
data = 1;
2451+
}
24432452

24442453
return rockchip_pull_list[pull_type][data];
24452454
default:
@@ -2497,7 +2506,7 @@ static int rockchip_set_pull(struct rockchip_pin_bank *bank,
24972506
}
24982507
}
24992508
/*
2500-
* In the TRM, pull-up being 1 for everything except the GPIO0_D0-D6,
2509+
* In the TRM, pull-up being 1 for everything except the GPIO0_D3-D6,
25012510
* where that pull up value becomes 3.
25022511
*/
25032512
if (ctrl->type == RK3568 && bank->bank_num == 0 && pin_num >= 27 && pin_num <= 30) {

drivers/pinctrl/sunplus/sppctl.c

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -499,7 +499,6 @@ static int sppctl_gpio_set_config(struct gpio_chip *chip, unsigned int offset,
499499
return 0;
500500
}
501501

502-
#ifdef CONFIG_DEBUG_FS
503502
static void sppctl_gpio_dbg_show(struct seq_file *s, struct gpio_chip *chip)
504503
{
505504
const char *label;
@@ -521,7 +520,6 @@ static void sppctl_gpio_dbg_show(struct seq_file *s, struct gpio_chip *chip)
521520
seq_puts(s, "\n");
522521
}
523522
}
524-
#endif
525523

526524
static int sppctl_gpio_new(struct platform_device *pdev, struct sppctl_pdata *pctl)
527525
{
@@ -550,9 +548,8 @@ static int sppctl_gpio_new(struct platform_device *pdev, struct sppctl_pdata *pc
550548
gchip->get = sppctl_gpio_get;
551549
gchip->set = sppctl_gpio_set;
552550
gchip->set_config = sppctl_gpio_set_config;
553-
#ifdef CONFIG_DEBUG_FS
554-
gchip->dbg_show = sppctl_gpio_dbg_show;
555-
#endif
551+
gchip->dbg_show = IS_ENABLED(CONFIG_DEBUG_FS) ?
552+
sppctl_gpio_dbg_show : NULL;
556553
gchip->base = -1;
557554
gchip->ngpio = sppctl_gpio_list_sz;
558555
gchip->names = sppctl_gpio_list_s;

0 commit comments

Comments
 (0)