Back to home page

OSCL-LXR

 
 

    


0001 // SPDX-License-Identifier: GPL-2.0-only
0002 /*
0003  * Pinctrl data for Wondermedia WM8750 SoC
0004  *
0005  * Copyright (c) 2013 Tony Prisk <linux@prisktech.co.nz>
0006  */
0007 
0008 #include <linux/io.h>
0009 #include <linux/init.h>
0010 #include <linux/pinctrl/pinctrl.h>
0011 #include <linux/platform_device.h>
0012 #include <linux/slab.h>
0013 
0014 #include "pinctrl-wmt.h"
0015 
0016 /*
0017  * Describe the register offsets within the GPIO memory space
0018  * The dedicated external GPIO's should always be listed in bank 0
0019  * so they are exported in the 0..31 range which is what users
0020  * expect.
0021  *
0022  * Do not reorder these banks as it will change the pin numbering
0023  */
0024 static const struct wmt_pinctrl_bank_registers wm8750_banks[] = {
0025     WMT_PINCTRL_BANK(0x40, 0x80, 0xC0, 0x00, 0x480, 0x4C0), /* 0 */
0026     WMT_PINCTRL_BANK(0x44, 0x84, 0xC4, 0x04, 0x484, 0x4C4), /* 1 */
0027     WMT_PINCTRL_BANK(0x48, 0x88, 0xC8, 0x08, 0x488, 0x4C8), /* 2 */
0028     WMT_PINCTRL_BANK(0x4C, 0x8C, 0xCC, 0x0C, 0x48C, 0x4CC), /* 3 */
0029     WMT_PINCTRL_BANK(0x50, 0x90, 0xD0, 0x10, 0x490, 0x4D0), /* 4 */
0030     WMT_PINCTRL_BANK(0x54, 0x94, 0xD4, 0x14, 0x494, 0x4D4), /* 5 */
0031     WMT_PINCTRL_BANK(0x58, 0x98, 0xD8, 0x18, 0x498, 0x4D8), /* 6 */
0032     WMT_PINCTRL_BANK(0x5C, 0x9C, 0xDC, 0x1C, 0x49C, 0x4DC), /* 7 */
0033     WMT_PINCTRL_BANK(0x60, 0xA0, 0xE0, 0x20, 0x4A0, 0x4E0), /* 8 */
0034     WMT_PINCTRL_BANK(0x70, 0xB0, 0xF0, 0x30, 0x4B0, 0x4F0), /* 9 */
0035     WMT_PINCTRL_BANK(0x7C, 0xBC, 0xDC, 0x3C, 0x4BC, 0x4FC), /* 10 */
0036 };
0037 
0038 /* Please keep sorted by bank/bit */
0039 #define WMT_PIN_EXTGPIO0    WMT_PIN(0, 0)
0040 #define WMT_PIN_EXTGPIO1    WMT_PIN(0, 1)
0041 #define WMT_PIN_EXTGPIO2    WMT_PIN(0, 2)
0042 #define WMT_PIN_EXTGPIO3    WMT_PIN(0, 3)
0043 #define WMT_PIN_EXTGPIO4    WMT_PIN(0, 4)
0044 #define WMT_PIN_EXTGPIO5    WMT_PIN(0, 5)
0045 #define WMT_PIN_EXTGPIO6    WMT_PIN(0, 6)
0046 #define WMT_PIN_EXTGPIO7    WMT_PIN(0, 7)
0047 #define WMT_PIN_WAKEUP0     WMT_PIN(0, 16)
0048 #define WMT_PIN_WAKEUP1     WMT_PIN(0, 17)
0049 #define WMT_PIN_SD0CD       WMT_PIN(0, 28)
0050 #define WMT_PIN_VDOUT0      WMT_PIN(1, 0)
0051 #define WMT_PIN_VDOUT1      WMT_PIN(1, 1)
0052 #define WMT_PIN_VDOUT2      WMT_PIN(1, 2)
0053 #define WMT_PIN_VDOUT3      WMT_PIN(1, 3)
0054 #define WMT_PIN_VDOUT4      WMT_PIN(1, 4)
0055 #define WMT_PIN_VDOUT5      WMT_PIN(1, 5)
0056 #define WMT_PIN_VDOUT6      WMT_PIN(1, 6)
0057 #define WMT_PIN_VDOUT7      WMT_PIN(1, 7)
0058 #define WMT_PIN_VDOUT8      WMT_PIN(1, 8)
0059 #define WMT_PIN_VDOUT9      WMT_PIN(1, 9)
0060 #define WMT_PIN_VDOUT10     WMT_PIN(1, 10)
0061 #define WMT_PIN_VDOUT11     WMT_PIN(1, 11)
0062 #define WMT_PIN_VDOUT12     WMT_PIN(1, 12)
0063 #define WMT_PIN_VDOUT13     WMT_PIN(1, 13)
0064 #define WMT_PIN_VDOUT14     WMT_PIN(1, 14)
0065 #define WMT_PIN_VDOUT15     WMT_PIN(1, 15)
0066 #define WMT_PIN_VDOUT16     WMT_PIN(1, 16)
0067 #define WMT_PIN_VDOUT17     WMT_PIN(1, 17)
0068 #define WMT_PIN_VDOUT18     WMT_PIN(1, 18)
0069 #define WMT_PIN_VDOUT19     WMT_PIN(1, 19)
0070 #define WMT_PIN_VDOUT20     WMT_PIN(1, 20)
0071 #define WMT_PIN_VDOUT21     WMT_PIN(1, 21)
0072 #define WMT_PIN_VDOUT22     WMT_PIN(1, 22)
0073 #define WMT_PIN_VDOUT23     WMT_PIN(1, 23)
0074 #define WMT_PIN_VDIN0       WMT_PIN(2, 0)
0075 #define WMT_PIN_VDIN1       WMT_PIN(2, 1)
0076 #define WMT_PIN_VDIN2       WMT_PIN(2, 2)
0077 #define WMT_PIN_VDIN3       WMT_PIN(2, 3)
0078 #define WMT_PIN_VDIN4       WMT_PIN(2, 4)
0079 #define WMT_PIN_VDIN5       WMT_PIN(2, 5)
0080 #define WMT_PIN_VDIN6       WMT_PIN(2, 6)
0081 #define WMT_PIN_VDIN7       WMT_PIN(2, 7)
0082 #define WMT_PIN_SPI0_MOSI   WMT_PIN(2, 24)
0083 #define WMT_PIN_SPI0_MISO   WMT_PIN(2, 25)
0084 #define WMT_PIN_SPI0_SS     WMT_PIN(2, 26)
0085 #define WMT_PIN_SPI0_CLK    WMT_PIN(2, 27)
0086 #define WMT_PIN_SPI0_SSB    WMT_PIN(2, 28)
0087 #define WMT_PIN_SD0CLK      WMT_PIN(3, 17)
0088 #define WMT_PIN_SD0CMD      WMT_PIN(3, 18)
0089 #define WMT_PIN_SD0WP       WMT_PIN(3, 19)
0090 #define WMT_PIN_SD0DATA0    WMT_PIN(3, 20)
0091 #define WMT_PIN_SD0DATA1    WMT_PIN(3, 21)
0092 #define WMT_PIN_SD0DATA2    WMT_PIN(3, 22)
0093 #define WMT_PIN_SD0DATA3    WMT_PIN(3, 23)
0094 #define WMT_PIN_SD1DATA0    WMT_PIN(3, 24)
0095 #define WMT_PIN_SD1DATA1    WMT_PIN(3, 25)
0096 #define WMT_PIN_SD1DATA2    WMT_PIN(3, 26)
0097 #define WMT_PIN_SD1DATA3    WMT_PIN(3, 27)
0098 #define WMT_PIN_SD1DATA4    WMT_PIN(3, 28)
0099 #define WMT_PIN_SD1DATA5    WMT_PIN(3, 29)
0100 #define WMT_PIN_SD1DATA6    WMT_PIN(3, 30)
0101 #define WMT_PIN_SD1DATA7    WMT_PIN(3, 31)
0102 #define WMT_PIN_I2C0_SCL    WMT_PIN(5, 8)
0103 #define WMT_PIN_I2C0_SDA    WMT_PIN(5, 9)
0104 #define WMT_PIN_I2C1_SCL    WMT_PIN(5, 10)
0105 #define WMT_PIN_I2C1_SDA    WMT_PIN(5, 11)
0106 #define WMT_PIN_I2C2_SCL    WMT_PIN(5, 12)
0107 #define WMT_PIN_I2C2_SDA    WMT_PIN(5, 13)
0108 #define WMT_PIN_UART0_RTS   WMT_PIN(5, 16)
0109 #define WMT_PIN_UART0_TXD   WMT_PIN(5, 17)
0110 #define WMT_PIN_UART0_CTS   WMT_PIN(5, 18)
0111 #define WMT_PIN_UART0_RXD   WMT_PIN(5, 19)
0112 #define WMT_PIN_UART1_RTS   WMT_PIN(5, 20)
0113 #define WMT_PIN_UART1_TXD   WMT_PIN(5, 21)
0114 #define WMT_PIN_UART1_CTS   WMT_PIN(5, 22)
0115 #define WMT_PIN_UART1_RXD   WMT_PIN(5, 23)
0116 #define WMT_PIN_UART2_RTS   WMT_PIN(5, 24)
0117 #define WMT_PIN_UART2_TXD   WMT_PIN(5, 25)
0118 #define WMT_PIN_UART2_CTS   WMT_PIN(5, 26)
0119 #define WMT_PIN_UART2_RXD   WMT_PIN(5, 27)
0120 #define WMT_PIN_UART3_RTS   WMT_PIN(5, 28)
0121 #define WMT_PIN_UART3_TXD   WMT_PIN(5, 29)
0122 #define WMT_PIN_UART3_CTS   WMT_PIN(5, 30)
0123 #define WMT_PIN_UART3_RXD   WMT_PIN(5, 31)
0124 #define WMT_PIN_SD2CD       WMT_PIN(6, 0)
0125 #define WMT_PIN_SD2DATA3    WMT_PIN(6, 1)
0126 #define WMT_PIN_SD2DATA0    WMT_PIN(6, 2)
0127 #define WMT_PIN_SD2WP       WMT_PIN(6, 3)
0128 #define WMT_PIN_SD2DATA1    WMT_PIN(6, 4)
0129 #define WMT_PIN_SD2DATA2    WMT_PIN(6, 5)
0130 #define WMT_PIN_SD2CMD      WMT_PIN(6, 6)
0131 #define WMT_PIN_SD2CLK      WMT_PIN(6, 7)
0132 #define WMT_PIN_SD2PWR      WMT_PIN(6, 9)
0133 #define WMT_PIN_SD1CLK      WMT_PIN(7, 0)
0134 #define WMT_PIN_SD1CMD      WMT_PIN(7, 1)
0135 #define WMT_PIN_SD1PWR      WMT_PIN(7, 10)
0136 #define WMT_PIN_SD1WP       WMT_PIN(7, 11)
0137 #define WMT_PIN_SD1CD       WMT_PIN(7, 12)
0138 #define WMT_PIN_SPI0SS3     WMT_PIN(7, 24)
0139 #define WMT_PIN_SPI0SS2     WMT_PIN(7, 25)
0140 #define WMT_PIN_PWMOUT1     WMT_PIN(7, 26)
0141 #define WMT_PIN_PWMOUT0     WMT_PIN(7, 27)
0142 
0143 static const struct pinctrl_pin_desc wm8750_pins[] = {
0144     PINCTRL_PIN(WMT_PIN_EXTGPIO0, "extgpio0"),
0145     PINCTRL_PIN(WMT_PIN_EXTGPIO1, "extgpio1"),
0146     PINCTRL_PIN(WMT_PIN_EXTGPIO2, "extgpio2"),
0147     PINCTRL_PIN(WMT_PIN_EXTGPIO3, "extgpio3"),
0148     PINCTRL_PIN(WMT_PIN_EXTGPIO4, "extgpio4"),
0149     PINCTRL_PIN(WMT_PIN_EXTGPIO5, "extgpio5"),
0150     PINCTRL_PIN(WMT_PIN_EXTGPIO6, "extgpio6"),
0151     PINCTRL_PIN(WMT_PIN_EXTGPIO7, "extgpio7"),
0152     PINCTRL_PIN(WMT_PIN_WAKEUP0, "wakeup0"),
0153     PINCTRL_PIN(WMT_PIN_WAKEUP1, "wakeup1"),
0154     PINCTRL_PIN(WMT_PIN_SD0CD, "sd0_cd"),
0155     PINCTRL_PIN(WMT_PIN_VDOUT0, "vdout0"),
0156     PINCTRL_PIN(WMT_PIN_VDOUT1, "vdout1"),
0157     PINCTRL_PIN(WMT_PIN_VDOUT2, "vdout2"),
0158     PINCTRL_PIN(WMT_PIN_VDOUT3, "vdout3"),
0159     PINCTRL_PIN(WMT_PIN_VDOUT4, "vdout4"),
0160     PINCTRL_PIN(WMT_PIN_VDOUT5, "vdout5"),
0161     PINCTRL_PIN(WMT_PIN_VDOUT6, "vdout6"),
0162     PINCTRL_PIN(WMT_PIN_VDOUT7, "vdout7"),
0163     PINCTRL_PIN(WMT_PIN_VDOUT8, "vdout8"),
0164     PINCTRL_PIN(WMT_PIN_VDOUT9, "vdout9"),
0165     PINCTRL_PIN(WMT_PIN_VDOUT10, "vdout10"),
0166     PINCTRL_PIN(WMT_PIN_VDOUT11, "vdout11"),
0167     PINCTRL_PIN(WMT_PIN_VDOUT12, "vdout12"),
0168     PINCTRL_PIN(WMT_PIN_VDOUT13, "vdout13"),
0169     PINCTRL_PIN(WMT_PIN_VDOUT14, "vdout14"),
0170     PINCTRL_PIN(WMT_PIN_VDOUT15, "vdout15"),
0171     PINCTRL_PIN(WMT_PIN_VDOUT16, "vdout16"),
0172     PINCTRL_PIN(WMT_PIN_VDOUT17, "vdout17"),
0173     PINCTRL_PIN(WMT_PIN_VDOUT18, "vdout18"),
0174     PINCTRL_PIN(WMT_PIN_VDOUT19, "vdout19"),
0175     PINCTRL_PIN(WMT_PIN_VDOUT20, "vdout20"),
0176     PINCTRL_PIN(WMT_PIN_VDOUT21, "vdout21"),
0177     PINCTRL_PIN(WMT_PIN_VDOUT22, "vdout22"),
0178     PINCTRL_PIN(WMT_PIN_VDOUT23, "vdout23"),
0179     PINCTRL_PIN(WMT_PIN_VDIN0, "vdin0"),
0180     PINCTRL_PIN(WMT_PIN_VDIN1, "vdin1"),
0181     PINCTRL_PIN(WMT_PIN_VDIN2, "vdin2"),
0182     PINCTRL_PIN(WMT_PIN_VDIN3, "vdin3"),
0183     PINCTRL_PIN(WMT_PIN_VDIN4, "vdin4"),
0184     PINCTRL_PIN(WMT_PIN_VDIN5, "vdin5"),
0185     PINCTRL_PIN(WMT_PIN_VDIN6, "vdin6"),
0186     PINCTRL_PIN(WMT_PIN_VDIN7, "vdin7"),
0187     PINCTRL_PIN(WMT_PIN_SPI0_MOSI, "spi0_mosi"),
0188     PINCTRL_PIN(WMT_PIN_SPI0_MISO, "spi0_miso"),
0189     PINCTRL_PIN(WMT_PIN_SPI0_SS, "spi0_ss"),
0190     PINCTRL_PIN(WMT_PIN_SPI0_CLK, "spi0_clk"),
0191     PINCTRL_PIN(WMT_PIN_SPI0_SSB, "spi0_ssb"),
0192     PINCTRL_PIN(WMT_PIN_SD0CLK, "sd0_clk"),
0193     PINCTRL_PIN(WMT_PIN_SD0CMD, "sd0_cmd"),
0194     PINCTRL_PIN(WMT_PIN_SD0WP, "sd0_wp"),
0195     PINCTRL_PIN(WMT_PIN_SD0DATA0, "sd0_data0"),
0196     PINCTRL_PIN(WMT_PIN_SD0DATA1, "sd0_data1"),
0197     PINCTRL_PIN(WMT_PIN_SD0DATA2, "sd0_data2"),
0198     PINCTRL_PIN(WMT_PIN_SD0DATA3, "sd0_data3"),
0199     PINCTRL_PIN(WMT_PIN_SD1DATA0, "sd1_data0"),
0200     PINCTRL_PIN(WMT_PIN_SD1DATA1, "sd1_data1"),
0201     PINCTRL_PIN(WMT_PIN_SD1DATA2, "sd1_data2"),
0202     PINCTRL_PIN(WMT_PIN_SD1DATA3, "sd1_data3"),
0203     PINCTRL_PIN(WMT_PIN_SD1DATA4, "sd1_data4"),
0204     PINCTRL_PIN(WMT_PIN_SD1DATA5, "sd1_data5"),
0205     PINCTRL_PIN(WMT_PIN_SD1DATA6, "sd1_data6"),
0206     PINCTRL_PIN(WMT_PIN_SD1DATA7, "sd1_data7"),
0207     PINCTRL_PIN(WMT_PIN_I2C0_SCL, "i2c0_scl"),
0208     PINCTRL_PIN(WMT_PIN_I2C0_SDA, "i2c0_sda"),
0209     PINCTRL_PIN(WMT_PIN_I2C1_SCL, "i2c1_scl"),
0210     PINCTRL_PIN(WMT_PIN_I2C1_SDA, "i2c1_sda"),
0211     PINCTRL_PIN(WMT_PIN_I2C2_SCL, "i2c2_scl"),
0212     PINCTRL_PIN(WMT_PIN_I2C2_SDA, "i2c2_sda"),
0213     PINCTRL_PIN(WMT_PIN_UART0_RTS, "uart0_rts"),
0214     PINCTRL_PIN(WMT_PIN_UART0_TXD, "uart0_txd"),
0215     PINCTRL_PIN(WMT_PIN_UART0_CTS, "uart0_cts"),
0216     PINCTRL_PIN(WMT_PIN_UART0_RXD, "uart0_rxd"),
0217     PINCTRL_PIN(WMT_PIN_UART1_RTS, "uart1_rts"),
0218     PINCTRL_PIN(WMT_PIN_UART1_TXD, "uart1_txd"),
0219     PINCTRL_PIN(WMT_PIN_UART1_CTS, "uart1_cts"),
0220     PINCTRL_PIN(WMT_PIN_UART1_RXD, "uart1_rxd"),
0221     PINCTRL_PIN(WMT_PIN_UART2_RTS, "uart2_rts"),
0222     PINCTRL_PIN(WMT_PIN_UART2_TXD, "uart2_txd"),
0223     PINCTRL_PIN(WMT_PIN_UART2_CTS, "uart2_cts"),
0224     PINCTRL_PIN(WMT_PIN_UART2_RXD, "uart2_rxd"),
0225     PINCTRL_PIN(WMT_PIN_UART3_RTS, "uart3_rts"),
0226     PINCTRL_PIN(WMT_PIN_UART3_TXD, "uart3_txd"),
0227     PINCTRL_PIN(WMT_PIN_UART3_CTS, "uart3_cts"),
0228     PINCTRL_PIN(WMT_PIN_UART3_RXD, "uart3_rxd"),
0229     PINCTRL_PIN(WMT_PIN_SD2CD, "sd2_cd"),
0230     PINCTRL_PIN(WMT_PIN_SD2DATA3, "sd2_data3"),
0231     PINCTRL_PIN(WMT_PIN_SD2DATA0, "sd2_data0"),
0232     PINCTRL_PIN(WMT_PIN_SD2WP, "sd2_wp"),
0233     PINCTRL_PIN(WMT_PIN_SD2DATA1, "sd2_data1"),
0234     PINCTRL_PIN(WMT_PIN_SD2DATA2, "sd2_data2"),
0235     PINCTRL_PIN(WMT_PIN_SD2CMD, "sd2_cmd"),
0236     PINCTRL_PIN(WMT_PIN_SD2CLK, "sd2_clk"),
0237     PINCTRL_PIN(WMT_PIN_SD2PWR, "sd2_pwr"),
0238     PINCTRL_PIN(WMT_PIN_SD1CLK, "sd1_clk"),
0239     PINCTRL_PIN(WMT_PIN_SD1CMD, "sd1_cmd"),
0240     PINCTRL_PIN(WMT_PIN_SD1PWR, "sd1_pwr"),
0241     PINCTRL_PIN(WMT_PIN_SD1WP, "sd1_wp"),
0242     PINCTRL_PIN(WMT_PIN_SD1CD, "sd1_cd"),
0243     PINCTRL_PIN(WMT_PIN_SPI0SS3, "spi0_ss3"),
0244     PINCTRL_PIN(WMT_PIN_SPI0SS2, "spi0_ss2"),
0245     PINCTRL_PIN(WMT_PIN_PWMOUT1, "pwmout1"),
0246     PINCTRL_PIN(WMT_PIN_PWMOUT0, "pwmout0"),
0247 };
0248 
0249 /* Order of these names must match the above list */
0250 static const char * const wm8750_groups[] = {
0251     "extgpio0",
0252     "extgpio1",
0253     "extgpio2",
0254     "extgpio3",
0255     "extgpio4",
0256     "extgpio5",
0257     "extgpio6",
0258     "extgpio7",
0259     "wakeup0",
0260     "wakeup1",
0261     "sd0_cd",
0262     "vdout0",
0263     "vdout1",
0264     "vdout2",
0265     "vdout3",
0266     "vdout4",
0267     "vdout5",
0268     "vdout6",
0269     "vdout7",
0270     "vdout8",
0271     "vdout9",
0272     "vdout10",
0273     "vdout11",
0274     "vdout12",
0275     "vdout13",
0276     "vdout14",
0277     "vdout15",
0278     "vdout16",
0279     "vdout17",
0280     "vdout18",
0281     "vdout19",
0282     "vdout20",
0283     "vdout21",
0284     "vdout22",
0285     "vdout23",
0286     "vdin0",
0287     "vdin1",
0288     "vdin2",
0289     "vdin3",
0290     "vdin4",
0291     "vdin5",
0292     "vdin6",
0293     "vdin7",
0294     "spi0_mosi",
0295     "spi0_miso",
0296     "spi0_ss",
0297     "spi0_clk",
0298     "spi0_ssb",
0299     "sd0_clk",
0300     "sd0_cmd",
0301     "sd0_wp",
0302     "sd0_data0",
0303     "sd0_data1",
0304     "sd0_data2",
0305     "sd0_data3",
0306     "sd1_data0",
0307     "sd1_data1",
0308     "sd1_data2",
0309     "sd1_data3",
0310     "sd1_data4",
0311     "sd1_data5",
0312     "sd1_data6",
0313     "sd1_data7",
0314     "i2c0_scl",
0315     "i2c0_sda",
0316     "i2c1_scl",
0317     "i2c1_sda",
0318     "i2c2_scl",
0319     "i2c2_sda",
0320     "uart0_rts",
0321     "uart0_txd",
0322     "uart0_cts",
0323     "uart0_rxd",
0324     "uart1_rts",
0325     "uart1_txd",
0326     "uart1_cts",
0327     "uart1_rxd",
0328     "uart2_rts",
0329     "uart2_txd",
0330     "uart2_cts",
0331     "uart2_rxd",
0332     "uart3_rts",
0333     "uart3_txd",
0334     "uart3_cts",
0335     "uart3_rxd",
0336     "sd2_cd",
0337     "sd2_data3",
0338     "sd2_data0",
0339     "sd2_wp",
0340     "sd2_data1",
0341     "sd2_data2",
0342     "sd2_cmd",
0343     "sd2_clk",
0344     "sd2_pwr",
0345     "sd1_clk",
0346     "sd1_cmd",
0347     "sd1_pwr",
0348     "sd1_wp",
0349     "sd1_cd",
0350     "spi0_ss3",
0351     "spi0_ss2",
0352     "pwmout1",
0353     "pwmout0",
0354 };
0355 
0356 static int wm8750_pinctrl_probe(struct platform_device *pdev)
0357 {
0358     struct wmt_pinctrl_data *data;
0359 
0360     data = devm_kzalloc(&pdev->dev, sizeof(*data), GFP_KERNEL);
0361     if (!data)
0362         return -ENOMEM;
0363 
0364     data->banks = wm8750_banks;
0365     data->nbanks = ARRAY_SIZE(wm8750_banks);
0366     data->pins = wm8750_pins;
0367     data->npins = ARRAY_SIZE(wm8750_pins);
0368     data->groups = wm8750_groups;
0369     data->ngroups = ARRAY_SIZE(wm8750_groups);
0370 
0371     return wmt_pinctrl_probe(pdev, data);
0372 }
0373 
0374 static const struct of_device_id wmt_pinctrl_of_match[] = {
0375     { .compatible = "wm,wm8750-pinctrl" },
0376     { /* sentinel */ },
0377 };
0378 
0379 static struct platform_driver wmt_pinctrl_driver = {
0380     .probe  = wm8750_pinctrl_probe,
0381     .driver = {
0382         .name   = "pinctrl-wm8750",
0383         .of_match_table = wmt_pinctrl_of_match,
0384         .suppress_bind_attrs = true,
0385     },
0386 };
0387 builtin_platform_driver(wmt_pinctrl_driver);