11951384cSRobert Jarzmik /* 21951384cSRobert Jarzmik * Marvell PXA25x family pin control 31951384cSRobert Jarzmik * 41951384cSRobert Jarzmik * Copyright (C) 2016 Robert Jarzmik 51951384cSRobert Jarzmik * 61951384cSRobert Jarzmik * This program is free software; you can redistribute it and/or modify 71951384cSRobert Jarzmik * it under the terms of the GNU General Public License as published by 81951384cSRobert Jarzmik * the Free Software Foundation; version 2 of the License. 91951384cSRobert Jarzmik * 101951384cSRobert Jarzmik */ 111951384cSRobert Jarzmik #include <linux/module.h> 121951384cSRobert Jarzmik #include <linux/platform_device.h> 131951384cSRobert Jarzmik #include <linux/of.h> 141951384cSRobert Jarzmik #include <linux/of_device.h> 151951384cSRobert Jarzmik #include <linux/pinctrl/pinctrl.h> 161951384cSRobert Jarzmik 171951384cSRobert Jarzmik #include "pinctrl-pxa2xx.h" 181951384cSRobert Jarzmik 191951384cSRobert Jarzmik static const struct pxa_desc_pin pxa25x_pins[] = { 201951384cSRobert Jarzmik PXA_GPIO_ONLY_PIN(PXA_PINCTRL_PIN(0)), 211951384cSRobert Jarzmik PXA_GPIO_PIN(PXA_PINCTRL_PIN(1), 221951384cSRobert Jarzmik PXA_FUNCTION(0, 1, "GP_RST")), 231951384cSRobert Jarzmik PXA_GPIO_ONLY_PIN(PXA_PINCTRL_PIN(2)), 241951384cSRobert Jarzmik PXA_GPIO_ONLY_PIN(PXA_PINCTRL_PIN(3)), 251951384cSRobert Jarzmik PXA_GPIO_ONLY_PIN(PXA_PINCTRL_PIN(4)), 261951384cSRobert Jarzmik PXA_GPIO_ONLY_PIN(PXA_PINCTRL_PIN(5)), 271951384cSRobert Jarzmik PXA_GPIO_PIN(PXA_PINCTRL_PIN(6), 281951384cSRobert Jarzmik PXA_FUNCTION(1, 1, "MMCCLK")), 291951384cSRobert Jarzmik PXA_GPIO_PIN(PXA_PINCTRL_PIN(7), 301951384cSRobert Jarzmik PXA_FUNCTION(1, 1, "48_MHz")), 311951384cSRobert Jarzmik PXA_GPIO_PIN(PXA_PINCTRL_PIN(8), 321951384cSRobert Jarzmik PXA_FUNCTION(1, 1, "MMCCS0")), 331951384cSRobert Jarzmik PXA_GPIO_PIN(PXA_PINCTRL_PIN(9), 341951384cSRobert Jarzmik PXA_FUNCTION(1, 1, "MMCCS1")), 351951384cSRobert Jarzmik PXA_GPIO_PIN(PXA_PINCTRL_PIN(10), 361951384cSRobert Jarzmik PXA_FUNCTION(1, 1, "RTCCLK")), 371951384cSRobert Jarzmik PXA_GPIO_PIN(PXA_PINCTRL_PIN(11), 381951384cSRobert Jarzmik PXA_FUNCTION(1, 1, "3_6_MHz")), 391951384cSRobert Jarzmik PXA_GPIO_PIN(PXA_PINCTRL_PIN(12), 401951384cSRobert Jarzmik PXA_FUNCTION(1, 1, "32_kHz")), 411951384cSRobert Jarzmik PXA_GPIO_PIN(PXA_PINCTRL_PIN(13), 421951384cSRobert Jarzmik PXA_FUNCTION(1, 2, "MBGNT")), 431951384cSRobert Jarzmik PXA_GPIO_PIN(PXA_PINCTRL_PIN(14), 441951384cSRobert Jarzmik PXA_FUNCTION(0, 1, "MBREQ")), 451951384cSRobert Jarzmik PXA_GPIO_PIN(PXA_PINCTRL_PIN(15), 461951384cSRobert Jarzmik PXA_FUNCTION(1, 2, "nCS_1")), 471951384cSRobert Jarzmik PXA_GPIO_PIN(PXA_PINCTRL_PIN(16), 481951384cSRobert Jarzmik PXA_FUNCTION(1, 2, "PWM0")), 491951384cSRobert Jarzmik PXA_GPIO_PIN(PXA_PINCTRL_PIN(17), 501951384cSRobert Jarzmik PXA_FUNCTION(1, 2, "PWM1")), 511951384cSRobert Jarzmik PXA_GPIO_PIN(PXA_PINCTRL_PIN(18), 521951384cSRobert Jarzmik PXA_FUNCTION(0, 1, "RDY")), 531951384cSRobert Jarzmik PXA_GPIO_PIN(PXA_PINCTRL_PIN(19), 541951384cSRobert Jarzmik PXA_FUNCTION(0, 1, "DREQ[1]")), 551951384cSRobert Jarzmik PXA_GPIO_PIN(PXA_PINCTRL_PIN(20), 561951384cSRobert Jarzmik PXA_FUNCTION(0, 1, "DREQ[0]")), 571951384cSRobert Jarzmik PXA_GPIO_ONLY_PIN(PXA_PINCTRL_PIN(21)), 581951384cSRobert Jarzmik PXA_GPIO_ONLY_PIN(PXA_PINCTRL_PIN(22)), 591951384cSRobert Jarzmik PXA_GPIO_PIN(PXA_PINCTRL_PIN(23), 601951384cSRobert Jarzmik PXA_FUNCTION(1, 2, "SCLK")), 611951384cSRobert Jarzmik PXA_GPIO_PIN(PXA_PINCTRL_PIN(24), 621951384cSRobert Jarzmik PXA_FUNCTION(1, 2, "SFRM")), 631951384cSRobert Jarzmik PXA_GPIO_PIN(PXA_PINCTRL_PIN(25), 641951384cSRobert Jarzmik PXA_FUNCTION(1, 2, "TXD")), 651951384cSRobert Jarzmik PXA_GPIO_PIN(PXA_PINCTRL_PIN(26), 661951384cSRobert Jarzmik PXA_FUNCTION(0, 1, "RXD")), 671951384cSRobert Jarzmik PXA_GPIO_PIN(PXA_PINCTRL_PIN(27), 681951384cSRobert Jarzmik PXA_FUNCTION(0, 1, "EXTCLK")), 691951384cSRobert Jarzmik PXA_GPIO_PIN(PXA_PINCTRL_PIN(28), 701951384cSRobert Jarzmik PXA_FUNCTION(0, 1, "BITCLK"), 711951384cSRobert Jarzmik PXA_FUNCTION(0, 2, "BITCLK"), 721951384cSRobert Jarzmik PXA_FUNCTION(1, 1, "BITCLK")), 731951384cSRobert Jarzmik PXA_GPIO_PIN(PXA_PINCTRL_PIN(29), 741951384cSRobert Jarzmik PXA_FUNCTION(0, 1, "SDATA_IN0"), 751951384cSRobert Jarzmik PXA_FUNCTION(0, 2, "SDATA_IN")), 761951384cSRobert Jarzmik PXA_GPIO_PIN(PXA_PINCTRL_PIN(30), 771951384cSRobert Jarzmik PXA_FUNCTION(1, 1, "SDATA_OUT"), 781951384cSRobert Jarzmik PXA_FUNCTION(1, 2, "SDATA_OUT")), 791951384cSRobert Jarzmik PXA_GPIO_PIN(PXA_PINCTRL_PIN(31), 801951384cSRobert Jarzmik PXA_FUNCTION(1, 1, "SYNC"), 811951384cSRobert Jarzmik PXA_FUNCTION(1, 2, "SYNC")), 821951384cSRobert Jarzmik PXA_GPIO_PIN(PXA_PINCTRL_PIN(32), 831951384cSRobert Jarzmik PXA_FUNCTION(0, 1, "SDATA_IN1"), 841951384cSRobert Jarzmik PXA_FUNCTION(1, 1, "SYSCLK")), 851951384cSRobert Jarzmik PXA_GPIO_PIN(PXA_PINCTRL_PIN(33), 861951384cSRobert Jarzmik PXA_FUNCTION(1, 2, "nCS[5]")), 871951384cSRobert Jarzmik PXA_GPIO_PIN(PXA_PINCTRL_PIN(34), 881951384cSRobert Jarzmik PXA_FUNCTION(0, 1, "FFRXD"), 891951384cSRobert Jarzmik PXA_FUNCTION(1, 2, "MMCCS0")), 901951384cSRobert Jarzmik PXA_GPIO_PIN(PXA_PINCTRL_PIN(35), 911951384cSRobert Jarzmik PXA_FUNCTION(0, 1, "CTS")), 921951384cSRobert Jarzmik PXA_GPIO_PIN(PXA_PINCTRL_PIN(36), 931951384cSRobert Jarzmik PXA_FUNCTION(0, 1, "DCD")), 941951384cSRobert Jarzmik PXA_GPIO_PIN(PXA_PINCTRL_PIN(37), 951951384cSRobert Jarzmik PXA_FUNCTION(0, 1, "DSR")), 961951384cSRobert Jarzmik PXA_GPIO_PIN(PXA_PINCTRL_PIN(38), 971951384cSRobert Jarzmik PXA_FUNCTION(0, 1, "RI")), 981951384cSRobert Jarzmik PXA_GPIO_PIN(PXA_PINCTRL_PIN(39), 991951384cSRobert Jarzmik PXA_FUNCTION(1, 1, "MMCC1"), 1001951384cSRobert Jarzmik PXA_FUNCTION(1, 2, "FFTXD")), 1011951384cSRobert Jarzmik PXA_GPIO_PIN(PXA_PINCTRL_PIN(40), 1021951384cSRobert Jarzmik PXA_FUNCTION(1, 2, "DTR")), 1031951384cSRobert Jarzmik PXA_GPIO_PIN(PXA_PINCTRL_PIN(41), 1041951384cSRobert Jarzmik PXA_FUNCTION(1, 2, "RTS")), 1051951384cSRobert Jarzmik PXA_GPIO_PIN(PXA_PINCTRL_PIN(42), 1061951384cSRobert Jarzmik PXA_FUNCTION(0, 1, "BTRXD"), 1071951384cSRobert Jarzmik PXA_FUNCTION(0, 3, "HWRXD")), 1081951384cSRobert Jarzmik PXA_GPIO_PIN(PXA_PINCTRL_PIN(43), 1091951384cSRobert Jarzmik PXA_FUNCTION(1, 2, "BTTXD"), 1101951384cSRobert Jarzmik PXA_FUNCTION(1, 3, "HWTXD")), 1111951384cSRobert Jarzmik PXA_GPIO_PIN(PXA_PINCTRL_PIN(44), 1121951384cSRobert Jarzmik PXA_FUNCTION(0, 1, "BTCTS"), 1131951384cSRobert Jarzmik PXA_FUNCTION(0, 3, "HWCTS")), 1141951384cSRobert Jarzmik PXA_GPIO_PIN(PXA_PINCTRL_PIN(45), 1151951384cSRobert Jarzmik PXA_FUNCTION(1, 2, "BTRTS"), 1161951384cSRobert Jarzmik PXA_FUNCTION(1, 3, "HWRTS")), 1171951384cSRobert Jarzmik PXA_GPIO_PIN(PXA_PINCTRL_PIN(46), 1181951384cSRobert Jarzmik PXA_FUNCTION(0, 1, "ICP_RXD"), 1191951384cSRobert Jarzmik PXA_FUNCTION(0, 2, "RXD")), 1201951384cSRobert Jarzmik PXA_GPIO_PIN(PXA_PINCTRL_PIN(47), 1211951384cSRobert Jarzmik PXA_FUNCTION(1, 1, "TXD"), 1221951384cSRobert Jarzmik PXA_FUNCTION(1, 2, "ICP_TXD")), 1231951384cSRobert Jarzmik PXA_GPIO_PIN(PXA_PINCTRL_PIN(48), 1241951384cSRobert Jarzmik PXA_FUNCTION(1, 1, "HWTXD"), 1251951384cSRobert Jarzmik PXA_FUNCTION(1, 2, "nPOE")), 1261951384cSRobert Jarzmik PXA_GPIO_PIN(PXA_PINCTRL_PIN(49), 1271951384cSRobert Jarzmik PXA_FUNCTION(0, 1, "HWRXD"), 1281951384cSRobert Jarzmik PXA_FUNCTION(1, 2, "nPWE")), 1291951384cSRobert Jarzmik PXA_GPIO_PIN(PXA_PINCTRL_PIN(50), 1301951384cSRobert Jarzmik PXA_FUNCTION(0, 1, "HWCTS"), 1311951384cSRobert Jarzmik PXA_FUNCTION(1, 2, "nPIOR")), 1321951384cSRobert Jarzmik PXA_GPIO_PIN(PXA_PINCTRL_PIN(51), 1331951384cSRobert Jarzmik PXA_FUNCTION(1, 1, "HWRTS"), 1341951384cSRobert Jarzmik PXA_FUNCTION(1, 2, "nPIOW")), 1351951384cSRobert Jarzmik PXA_GPIO_PIN(PXA_PINCTRL_PIN(52), 1361951384cSRobert Jarzmik PXA_FUNCTION(1, 2, "nPCE[1]")), 1371951384cSRobert Jarzmik PXA_GPIO_PIN(PXA_PINCTRL_PIN(53), 1381951384cSRobert Jarzmik PXA_FUNCTION(1, 1, "MMCCLK"), 1391951384cSRobert Jarzmik PXA_FUNCTION(1, 2, "nPCE[2]")), 1401951384cSRobert Jarzmik PXA_GPIO_PIN(PXA_PINCTRL_PIN(54), 1411951384cSRobert Jarzmik PXA_FUNCTION(1, 1, "MMCCLK"), 1421951384cSRobert Jarzmik PXA_FUNCTION(1, 2, "nPSKTSEL")), 1431951384cSRobert Jarzmik PXA_GPIO_PIN(PXA_PINCTRL_PIN(55), 1441951384cSRobert Jarzmik PXA_FUNCTION(1, 2, "nPREG")), 1451951384cSRobert Jarzmik PXA_GPIO_PIN(PXA_PINCTRL_PIN(56), 1461951384cSRobert Jarzmik PXA_FUNCTION(0, 1, "nPWAIT")), 1471951384cSRobert Jarzmik PXA_GPIO_PIN(PXA_PINCTRL_PIN(57), 1481951384cSRobert Jarzmik PXA_FUNCTION(0, 1, "nIOIS16")), 1491951384cSRobert Jarzmik PXA_GPIO_PIN(PXA_PINCTRL_PIN(58), 1501951384cSRobert Jarzmik PXA_FUNCTION(1, 2, "LDD<0>")), 1511951384cSRobert Jarzmik PXA_GPIO_PIN(PXA_PINCTRL_PIN(59), 1521951384cSRobert Jarzmik PXA_FUNCTION(1, 2, "LDD<1>")), 1531951384cSRobert Jarzmik PXA_GPIO_PIN(PXA_PINCTRL_PIN(60), 1541951384cSRobert Jarzmik PXA_FUNCTION(1, 2, "LDD<2>")), 1551951384cSRobert Jarzmik PXA_GPIO_PIN(PXA_PINCTRL_PIN(61), 1561951384cSRobert Jarzmik PXA_FUNCTION(1, 2, "LDD<3>")), 1571951384cSRobert Jarzmik PXA_GPIO_PIN(PXA_PINCTRL_PIN(62), 1581951384cSRobert Jarzmik PXA_FUNCTION(1, 2, "LDD<4>")), 1591951384cSRobert Jarzmik PXA_GPIO_PIN(PXA_PINCTRL_PIN(63), 1601951384cSRobert Jarzmik PXA_FUNCTION(1, 2, "LDD<5>")), 1611951384cSRobert Jarzmik PXA_GPIO_PIN(PXA_PINCTRL_PIN(64), 1621951384cSRobert Jarzmik PXA_FUNCTION(1, 2, "LDD<6>")), 1631951384cSRobert Jarzmik PXA_GPIO_PIN(PXA_PINCTRL_PIN(65), 1641951384cSRobert Jarzmik PXA_FUNCTION(1, 2, "LDD<7>")), 1651951384cSRobert Jarzmik PXA_GPIO_PIN(PXA_PINCTRL_PIN(66), 1661951384cSRobert Jarzmik PXA_FUNCTION(0, 1, "MBREQ"), 1671951384cSRobert Jarzmik PXA_FUNCTION(1, 2, "LDD<8>")), 1681951384cSRobert Jarzmik PXA_GPIO_PIN(PXA_PINCTRL_PIN(67), 1691951384cSRobert Jarzmik PXA_FUNCTION(1, 1, "MMCCS0"), 1701951384cSRobert Jarzmik PXA_FUNCTION(1, 2, "LDD<9>")), 1711951384cSRobert Jarzmik PXA_GPIO_PIN(PXA_PINCTRL_PIN(68), 1721951384cSRobert Jarzmik PXA_FUNCTION(1, 1, "MMCCS1"), 1731951384cSRobert Jarzmik PXA_FUNCTION(1, 2, "LDD<10>")), 1741951384cSRobert Jarzmik PXA_GPIO_PIN(PXA_PINCTRL_PIN(69), 1751951384cSRobert Jarzmik PXA_FUNCTION(1, 1, "MMCCLK"), 1761951384cSRobert Jarzmik PXA_FUNCTION(1, 2, "LDD<11>")), 1771951384cSRobert Jarzmik PXA_GPIO_PIN(PXA_PINCTRL_PIN(70), 1781951384cSRobert Jarzmik PXA_FUNCTION(1, 1, "RTCCLK"), 1791951384cSRobert Jarzmik PXA_FUNCTION(1, 2, "LDD<12>")), 1801951384cSRobert Jarzmik PXA_GPIO_PIN(PXA_PINCTRL_PIN(71), 1811951384cSRobert Jarzmik PXA_FUNCTION(1, 1, "3_6_MHz"), 1821951384cSRobert Jarzmik PXA_FUNCTION(1, 2, "LDD<13>")), 1831951384cSRobert Jarzmik PXA_GPIO_PIN(PXA_PINCTRL_PIN(72), 1841951384cSRobert Jarzmik PXA_FUNCTION(1, 1, "32_kHz"), 1851951384cSRobert Jarzmik PXA_FUNCTION(1, 2, "LDD<14>")), 1861951384cSRobert Jarzmik PXA_GPIO_PIN(PXA_PINCTRL_PIN(73), 1871951384cSRobert Jarzmik PXA_FUNCTION(1, 1, "MBGNT"), 1881951384cSRobert Jarzmik PXA_FUNCTION(1, 2, "LDD<15>")), 1891951384cSRobert Jarzmik PXA_GPIO_PIN(PXA_PINCTRL_PIN(74), 1901951384cSRobert Jarzmik PXA_FUNCTION(1, 2, "LCD_FCLK")), 1911951384cSRobert Jarzmik PXA_GPIO_PIN(PXA_PINCTRL_PIN(75), 1921951384cSRobert Jarzmik PXA_FUNCTION(1, 2, "LCD_LCLK")), 1931951384cSRobert Jarzmik PXA_GPIO_PIN(PXA_PINCTRL_PIN(76), 1941951384cSRobert Jarzmik PXA_FUNCTION(1, 2, "LCD_PCLK")), 1951951384cSRobert Jarzmik PXA_GPIO_PIN(PXA_PINCTRL_PIN(77), 1961951384cSRobert Jarzmik PXA_FUNCTION(1, 2, "LCD_ACBIAS")), 1971951384cSRobert Jarzmik PXA_GPIO_PIN(PXA_PINCTRL_PIN(78), 1981951384cSRobert Jarzmik PXA_FUNCTION(1, 2, "nCS<2>")), 1991951384cSRobert Jarzmik PXA_GPIO_PIN(PXA_PINCTRL_PIN(79), 2001951384cSRobert Jarzmik PXA_FUNCTION(1, 2, "nCS<3>")), 2011951384cSRobert Jarzmik PXA_GPIO_PIN(PXA_PINCTRL_PIN(80), 2021951384cSRobert Jarzmik PXA_FUNCTION(1, 2, "nCS<4>")), 2031951384cSRobert Jarzmik PXA_GPIO_PIN(PXA_PINCTRL_PIN(81), 2041951384cSRobert Jarzmik PXA_FUNCTION(0, 1, "NSSPSCLK"), 2051951384cSRobert Jarzmik PXA_FUNCTION(1, 1, "NSSPSCLK")), 2061951384cSRobert Jarzmik PXA_GPIO_PIN(PXA_PINCTRL_PIN(82), 2071951384cSRobert Jarzmik PXA_FUNCTION(0, 1, "NSSPSFRM"), 2081951384cSRobert Jarzmik PXA_FUNCTION(1, 1, "NSSPSFRM")), 2091951384cSRobert Jarzmik PXA_GPIO_PIN(PXA_PINCTRL_PIN(83), 2101951384cSRobert Jarzmik PXA_FUNCTION(0, 2, "NSSPRXD"), 2111951384cSRobert Jarzmik PXA_FUNCTION(1, 1, "NSSPTXD")), 2121951384cSRobert Jarzmik PXA_GPIO_PIN(PXA_PINCTRL_PIN(84), 2131951384cSRobert Jarzmik PXA_FUNCTION(0, 2, "NSSPRXD"), 2141951384cSRobert Jarzmik PXA_FUNCTION(1, 1, "NSSPTXD")), 2151951384cSRobert Jarzmik }; 2161951384cSRobert Jarzmik 2171951384cSRobert Jarzmik static int pxa25x_pinctrl_probe(struct platform_device *pdev) 2181951384cSRobert Jarzmik { 2191951384cSRobert Jarzmik int ret, i; 2201951384cSRobert Jarzmik void __iomem *base_af[8]; 2211951384cSRobert Jarzmik void __iomem *base_dir[4]; 2221951384cSRobert Jarzmik void __iomem *base_sleep[4]; 2231951384cSRobert Jarzmik struct resource *res; 2241951384cSRobert Jarzmik 2251951384cSRobert Jarzmik res = platform_get_resource(pdev, IORESOURCE_MEM, 0); 2261951384cSRobert Jarzmik base_af[0] = devm_ioremap_resource(&pdev->dev, res); 2271951384cSRobert Jarzmik if (IS_ERR(base_af[0])) 2281951384cSRobert Jarzmik return PTR_ERR(base_af[0]); 2291951384cSRobert Jarzmik 2301951384cSRobert Jarzmik res = platform_get_resource(pdev, IORESOURCE_MEM, 1); 2311951384cSRobert Jarzmik base_dir[0] = devm_ioremap_resource(&pdev->dev, res); 2321951384cSRobert Jarzmik if (IS_ERR(base_dir[0])) 2331951384cSRobert Jarzmik return PTR_ERR(base_dir[0]); 2341951384cSRobert Jarzmik 2351951384cSRobert Jarzmik res = platform_get_resource(pdev, IORESOURCE_MEM, 2); 2361951384cSRobert Jarzmik base_dir[3] = devm_ioremap_resource(&pdev->dev, res); 2371951384cSRobert Jarzmik if (IS_ERR(base_dir[3])) 2381951384cSRobert Jarzmik return PTR_ERR(base_dir[3]); 2391951384cSRobert Jarzmik 2401951384cSRobert Jarzmik res = platform_get_resource(pdev, IORESOURCE_MEM, 3); 2411951384cSRobert Jarzmik base_sleep[0] = devm_ioremap_resource(&pdev->dev, res); 2421951384cSRobert Jarzmik if (IS_ERR(base_sleep[0])) 2431951384cSRobert Jarzmik return PTR_ERR(base_sleep[0]); 2441951384cSRobert Jarzmik 2451951384cSRobert Jarzmik for (i = 0; i < ARRAY_SIZE(base_af); i++) 2461951384cSRobert Jarzmik base_af[i] = base_af[0] + sizeof(base_af[0]) * i; 2471951384cSRobert Jarzmik for (i = 0; i < 3; i++) 2481951384cSRobert Jarzmik base_dir[i] = base_dir[0] + sizeof(base_dir[0]) * i; 2491951384cSRobert Jarzmik for (i = 0; i < ARRAY_SIZE(base_sleep); i++) 2501951384cSRobert Jarzmik base_sleep[i] = base_sleep[0] + sizeof(base_af[0]) * i; 2511951384cSRobert Jarzmik 2521951384cSRobert Jarzmik ret = pxa2xx_pinctrl_init(pdev, pxa25x_pins, ARRAY_SIZE(pxa25x_pins), 2531951384cSRobert Jarzmik base_af, base_dir, base_sleep); 2541951384cSRobert Jarzmik return ret; 2551951384cSRobert Jarzmik } 2561951384cSRobert Jarzmik 2571951384cSRobert Jarzmik static const struct of_device_id pxa25x_pinctrl_match[] = { 2581951384cSRobert Jarzmik { .compatible = "marvell,pxa25x-pinctrl", }, 2591951384cSRobert Jarzmik {} 2601951384cSRobert Jarzmik }; 2611951384cSRobert Jarzmik MODULE_DEVICE_TABLE(of, pxa25x_pinctrl_match); 2621951384cSRobert Jarzmik 2631951384cSRobert Jarzmik static struct platform_driver pxa25x_pinctrl_driver = { 2641951384cSRobert Jarzmik .probe = pxa25x_pinctrl_probe, 2651951384cSRobert Jarzmik .driver = { 2661951384cSRobert Jarzmik .name = "pxa25x-pinctrl", 2671951384cSRobert Jarzmik .of_match_table = pxa25x_pinctrl_match, 2681951384cSRobert Jarzmik }, 2691951384cSRobert Jarzmik }; 2701951384cSRobert Jarzmik module_platform_driver(pxa25x_pinctrl_driver); 2711951384cSRobert Jarzmik 2721951384cSRobert Jarzmik MODULE_AUTHOR("Robert Jarzmik <robert.jarzmik@free.fr>"); 2731951384cSRobert Jarzmik MODULE_DESCRIPTION("Marvell PXA25x pinctrl driver"); 2741951384cSRobert Jarzmik MODULE_LICENSE("GPL v2"); 275