mediatek: mt7981: pinctrl: add additional emmc groups
[openwrt/staging/stintel.git] / target / linux / mediatek / patches-6.1 / 254-pinctrl-mediatek-mt7981-add-additional-emmc-group.patch
1 From patchwork Wed Jan 17 14:55:47 2024
2 Content-Type: text/plain; charset="utf-8"
3 MIME-Version: 1.0
4 Content-Transfer-Encoding: 7bit
5 X-Patchwork-Submitter: Jean Thomas <jean.thomas@wifirst.fr>
6 X-Patchwork-Id: 13521855
7 Return-Path:
8 <linux-mediatek-bounces+linux-mediatek=archiver.kernel.org@lists.infradead.org>
9 From: Jean Thomas <jean.thomas@wifirst.fr>
10 To: sean.wang@kernel.org,
11 linus.walleij@linaro.org,
12 matthias.bgg@gmail.com,
13 angelogioacchino.delregno@collabora.com,
14 linux-mediatek@lists.infradead.org,
15 linux-gpio@vger.kernel.org,
16 linux-kernel@vger.kernel.org,
17 linux-arm-kernel@lists.infradead.org
18 Cc: Jean Thomas <jean.thomas@wifirst.fr>,
19 Daniel Golle <daniel@makrotopia.org>
20 Subject: [PATCH v2 2/2] pinctrl: mediatek: mt7981: add additional emmc groups
21 Date: Wed, 17 Jan 2024 15:55:47 +0100
22 Message-Id: <20240117145547.3354242-1-jean.thomas@wifirst.fr>
23 List-Id: <linux-mediatek.lists.infradead.org>
24
25 Add new emmc groups in the pinctrl driver for the
26 MediaTek MT7981 SoC:
27 * emmc reset, with pin 15.
28 * emmc 4-bit bus-width, with pins 16 to 19, and 24 to 25.
29 * emmc 8-bit bus-width, with pins 16 to 25.
30
31 The existing emmc_45 group is kept for legacy reasons, even
32 if this is the union of emmc_reset and emmc_8 groups.
33
34 Signed-off-by: Jean Thomas <jean.thomas@wifirst.fr>
35 Reviewed-by: Daniel Golle <daniel@makrotopia.org>
36 ---
37 drivers/pinctrl/mediatek/pinctrl-mt7981.c | 17 ++++++++++++++++-
38 1 file changed, 16 insertions(+), 1 deletion(-)
39
40 --
41 2.39.2
42
43 --- a/drivers/pinctrl/mediatek/pinctrl-mt7981.c
44 +++ b/drivers/pinctrl/mediatek/pinctrl-mt7981.c
45 @@ -700,6 +700,15 @@ static int mt7981_drv_vbus_pins[] = { 14
46 static int mt7981_drv_vbus_funcs[] = { 1, };
47
48 /* EMMC */
49 +static int mt7981_emmc_reset_pins[] = { 15, };
50 +static int mt7981_emmc_reset_funcs[] = { 2, };
51 +
52 +static int mt7981_emmc_4_pins[] = { 16, 17, 18, 19, 24, 25, };
53 +static int mt7981_emmc_4_funcs[] = { 2, 2, 2, 2, 2, 2, };
54 +
55 +static int mt7981_emmc_8_pins[] = { 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, };
56 +static int mt7981_emmc_8_funcs[] = { 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, };
57 +
58 static int mt7981_emmc_45_pins[] = { 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, };
59 static int mt7981_emmc_45_funcs[] = { 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, };
60
61 @@ -854,6 +863,12 @@ static const struct group_desc mt7981_gr
62 PINCTRL_PIN_GROUP("udi", mt7981_udi),
63 /* @GPIO(14) DRV_VBUS(1) */
64 PINCTRL_PIN_GROUP("drv_vbus", mt7981_drv_vbus),
65 + /* @GPIO(15): EMMC_RSTB(2) */
66 + PINCTRL_PIN_GROUP("emmc_reset", mt7981_emmc_reset),
67 + /* @GPIO(16,17,18,19,24,25): EMMC_DATx, EMMC_CLK, EMMC_CMD */
68 + PINCTRL_PIN_GROUP("emmc_4", mt7981_emmc_4),
69 + /* @GPIO(16,17,18,19,20,21,22,23,24,25): EMMC_DATx, EMMC_CLK, EMMC_CMD */
70 + PINCTRL_PIN_GROUP("emmc_8", mt7981_emmc_8),
71 /* @GPIO(15,25): EMMC(2) */
72 PINCTRL_PIN_GROUP("emmc_45", mt7981_emmc_45),
73 /* @GPIO(16,21): SNFI(3) */
74 @@ -957,7 +972,7 @@ static const char *mt7981_i2c_groups[] =
75 static const char *mt7981_pcm_groups[] = { "pcm", };
76 static const char *mt7981_udi_groups[] = { "udi", };
77 static const char *mt7981_usb_groups[] = { "drv_vbus", };
78 -static const char *mt7981_flash_groups[] = { "emmc_45", "snfi", };
79 +static const char *mt7981_flash_groups[] = { "emmc_reset", "emmc_4", "emmc_8", "emmc_45", "snfi", };
80 static const char *mt7981_ethernet_groups[] = { "smi_mdc_mdio", "gbe_ext_mdc_mdio",
81 "wf0_mode1", "wf0_mode3", "mt7531_int", };
82 static const char *mt7981_ant_groups[] = { "ant_sel", };