2013-09-03 12:28:59 +04:00
/*
* Pinctrl Driver for ADI GPIO2 controller
*
* Copyright 2007 - 2013 Analog Devices Inc .
*
* Licensed under the GPLv2 or later
*/
# include <asm/portmux.h>
# include "pinctrl-adi2.h"
static const struct pinctrl_pin_desc adi_pads [ ] = {
PINCTRL_PIN ( 0 , " PA0 " ) ,
PINCTRL_PIN ( 1 , " PA1 " ) ,
PINCTRL_PIN ( 2 , " PA2 " ) ,
PINCTRL_PIN ( 3 , " PG3 " ) ,
PINCTRL_PIN ( 4 , " PA4 " ) ,
PINCTRL_PIN ( 5 , " PA5 " ) ,
PINCTRL_PIN ( 6 , " PA6 " ) ,
PINCTRL_PIN ( 7 , " PA7 " ) ,
PINCTRL_PIN ( 8 , " PA8 " ) ,
PINCTRL_PIN ( 9 , " PA9 " ) ,
PINCTRL_PIN ( 10 , " PA10 " ) ,
PINCTRL_PIN ( 11 , " PA11 " ) ,
PINCTRL_PIN ( 12 , " PA12 " ) ,
PINCTRL_PIN ( 13 , " PA13 " ) ,
PINCTRL_PIN ( 14 , " PA14 " ) ,
PINCTRL_PIN ( 15 , " PA15 " ) ,
PINCTRL_PIN ( 16 , " PB0 " ) ,
PINCTRL_PIN ( 17 , " PB1 " ) ,
PINCTRL_PIN ( 18 , " PB2 " ) ,
PINCTRL_PIN ( 19 , " PB3 " ) ,
PINCTRL_PIN ( 20 , " PB4 " ) ,
PINCTRL_PIN ( 21 , " PB5 " ) ,
PINCTRL_PIN ( 22 , " PB6 " ) ,
PINCTRL_PIN ( 23 , " PB7 " ) ,
PINCTRL_PIN ( 24 , " PB8 " ) ,
PINCTRL_PIN ( 25 , " PB9 " ) ,
PINCTRL_PIN ( 26 , " PB10 " ) ,
PINCTRL_PIN ( 27 , " PB11 " ) ,
PINCTRL_PIN ( 28 , " PB12 " ) ,
PINCTRL_PIN ( 29 , " PB13 " ) ,
PINCTRL_PIN ( 30 , " PB14 " ) ,
PINCTRL_PIN ( 31 , " PB15 " ) ,
PINCTRL_PIN ( 32 , " PC0 " ) ,
PINCTRL_PIN ( 33 , " PC1 " ) ,
PINCTRL_PIN ( 34 , " PC2 " ) ,
PINCTRL_PIN ( 35 , " PC3 " ) ,
PINCTRL_PIN ( 36 , " PC4 " ) ,
PINCTRL_PIN ( 37 , " PC5 " ) ,
PINCTRL_PIN ( 38 , " PC6 " ) ,
PINCTRL_PIN ( 39 , " PC7 " ) ,
PINCTRL_PIN ( 40 , " PC8 " ) ,
PINCTRL_PIN ( 41 , " PC9 " ) ,
PINCTRL_PIN ( 42 , " PC10 " ) ,
PINCTRL_PIN ( 43 , " PC11 " ) ,
PINCTRL_PIN ( 44 , " PC12 " ) ,
PINCTRL_PIN ( 45 , " PC13 " ) ,
PINCTRL_PIN ( 46 , " PC14 " ) ,
PINCTRL_PIN ( 47 , " PC15 " ) ,
PINCTRL_PIN ( 48 , " PD0 " ) ,
PINCTRL_PIN ( 49 , " PD1 " ) ,
PINCTRL_PIN ( 50 , " PD2 " ) ,
PINCTRL_PIN ( 51 , " PD3 " ) ,
PINCTRL_PIN ( 52 , " PD4 " ) ,
PINCTRL_PIN ( 53 , " PD5 " ) ,
PINCTRL_PIN ( 54 , " PD6 " ) ,
PINCTRL_PIN ( 55 , " PD7 " ) ,
PINCTRL_PIN ( 56 , " PD8 " ) ,
PINCTRL_PIN ( 57 , " PD9 " ) ,
PINCTRL_PIN ( 58 , " PD10 " ) ,
PINCTRL_PIN ( 59 , " PD11 " ) ,
PINCTRL_PIN ( 60 , " PD12 " ) ,
PINCTRL_PIN ( 61 , " PD13 " ) ,
PINCTRL_PIN ( 62 , " PD14 " ) ,
PINCTRL_PIN ( 63 , " PD15 " ) ,
PINCTRL_PIN ( 64 , " PE0 " ) ,
PINCTRL_PIN ( 65 , " PE1 " ) ,
PINCTRL_PIN ( 66 , " PE2 " ) ,
PINCTRL_PIN ( 67 , " PE3 " ) ,
PINCTRL_PIN ( 68 , " PE4 " ) ,
PINCTRL_PIN ( 69 , " PE5 " ) ,
PINCTRL_PIN ( 70 , " PE6 " ) ,
PINCTRL_PIN ( 71 , " PE7 " ) ,
PINCTRL_PIN ( 72 , " PE8 " ) ,
PINCTRL_PIN ( 73 , " PE9 " ) ,
PINCTRL_PIN ( 74 , " PE10 " ) ,
PINCTRL_PIN ( 75 , " PE11 " ) ,
PINCTRL_PIN ( 76 , " PE12 " ) ,
PINCTRL_PIN ( 77 , " PE13 " ) ,
PINCTRL_PIN ( 78 , " PE14 " ) ,
PINCTRL_PIN ( 79 , " PE15 " ) ,
PINCTRL_PIN ( 80 , " PF0 " ) ,
PINCTRL_PIN ( 81 , " PF1 " ) ,
PINCTRL_PIN ( 82 , " PF2 " ) ,
PINCTRL_PIN ( 83 , " PF3 " ) ,
PINCTRL_PIN ( 84 , " PF4 " ) ,
PINCTRL_PIN ( 85 , " PF5 " ) ,
PINCTRL_PIN ( 86 , " PF6 " ) ,
PINCTRL_PIN ( 87 , " PF7 " ) ,
PINCTRL_PIN ( 88 , " PF8 " ) ,
PINCTRL_PIN ( 89 , " PF9 " ) ,
PINCTRL_PIN ( 90 , " PF10 " ) ,
PINCTRL_PIN ( 91 , " PF11 " ) ,
PINCTRL_PIN ( 92 , " PF12 " ) ,
PINCTRL_PIN ( 93 , " PF13 " ) ,
PINCTRL_PIN ( 94 , " PF14 " ) ,
PINCTRL_PIN ( 95 , " PF15 " ) ,
PINCTRL_PIN ( 96 , " PG0 " ) ,
PINCTRL_PIN ( 97 , " PG1 " ) ,
PINCTRL_PIN ( 98 , " PG2 " ) ,
PINCTRL_PIN ( 99 , " PG3 " ) ,
PINCTRL_PIN ( 100 , " PG4 " ) ,
PINCTRL_PIN ( 101 , " PG5 " ) ,
PINCTRL_PIN ( 102 , " PG6 " ) ,
PINCTRL_PIN ( 103 , " PG7 " ) ,
PINCTRL_PIN ( 104 , " PG8 " ) ,
PINCTRL_PIN ( 105 , " PG9 " ) ,
PINCTRL_PIN ( 106 , " PG10 " ) ,
PINCTRL_PIN ( 107 , " PG11 " ) ,
PINCTRL_PIN ( 108 , " PG12 " ) ,
PINCTRL_PIN ( 109 , " PG13 " ) ,
PINCTRL_PIN ( 110 , " PG14 " ) ,
PINCTRL_PIN ( 111 , " PG15 " ) ,
} ;
static const unsigned uart0_pins [ ] = {
GPIO_PD7 , GPIO_PD8 ,
} ;
static const unsigned uart0_ctsrts_pins [ ] = {
GPIO_PD9 , GPIO_PD10 ,
} ;
static const unsigned uart1_pins [ ] = {
GPIO_PG15 , GPIO_PG14 ,
} ;
static const unsigned uart1_ctsrts_pins [ ] = {
GPIO_PG10 , GPIO_PG13 ,
} ;
static const unsigned rsi0_pins [ ] = {
GPIO_PG3 , GPIO_PG2 , GPIO_PG0 , GPIO_PE15 , GPIO_PG5 , GPIO_PG6 ,
} ;
static const unsigned eth0_pins [ ] = {
GPIO_PC6 , GPIO_PC7 , GPIO_PC2 , GPIO_PC0 , GPIO_PC3 , GPIO_PC1 ,
GPIO_PB13 , GPIO_PD6 , GPIO_PC5 , GPIO_PC4 , GPIO_PB14 , GPIO_PB15 ,
} ;
static const unsigned eth1_pins [ ] = {
GPIO_PE10 , GPIO_PE11 , GPIO_PG3 , GPIO_PG0 , GPIO_PG2 , GPIO_PE15 ,
GPIO_PG5 , GPIO_PE12 , GPIO_PE13 , GPIO_PE14 , GPIO_PG6 , GPIO_PC9 ,
} ;
static const unsigned spi0_pins [ ] = {
GPIO_PD4 , GPIO_PD2 , GPIO_PD3 ,
} ;
static const unsigned spi1_pins [ ] = {
GPIO_PD5 , GPIO_PD14 , GPIO_PD13 ,
} ;
static const unsigned twi0_pins [ ] = {
} ;
static const unsigned twi1_pins [ ] = {
} ;
static const unsigned rotary_pins [ ] = {
GPIO_PG7 , GPIO_PG11 , GPIO_PG12 ,
} ;
static const unsigned can0_pins [ ] = {
GPIO_PG1 , GPIO_PG4 ,
} ;
static const unsigned smc0_pins [ ] = {
GPIO_PA0 , GPIO_PA1 , GPIO_PA2 , GPIO_PA3 , GPIO_PA4 , GPIO_PA5 , GPIO_PA6 ,
GPIO_PA7 , GPIO_PA8 , GPIO_PA9 , GPIO_PB2 , GPIO_PA10 , GPIO_PA11 ,
GPIO_PB3 , GPIO_PA12 , GPIO_PA13 , GPIO_PA14 , GPIO_PA15 , GPIO_PB6 ,
GPIO_PB7 , GPIO_PB8 , GPIO_PB10 , GPIO_PB11 , GPIO_PB0 ,
} ;
static const unsigned sport0_pins [ ] = {
GPIO_PB5 , GPIO_PB4 , GPIO_PB9 , GPIO_PB8 , GPIO_PB7 , GPIO_PB11 ,
} ;
static const unsigned sport1_pins [ ] = {
GPIO_PE2 , GPIO_PE5 , GPIO_PD15 , GPIO_PE4 , GPIO_PE3 , GPIO_PE1 ,
} ;
static const unsigned sport2_pins [ ] = {
GPIO_PG4 , GPIO_PG1 , GPIO_PG9 , GPIO_PG10 , GPIO_PG7 , GPIO_PB12 ,
} ;
static const unsigned ppi0_8b_pins [ ] = {
GPIO_PF0 , GPIO_PF1 , GPIO_PF2 , GPIO_PF3 , GPIO_PF4 , GPIO_PF5 , GPIO_PF6 ,
GPIO_PF7 , GPIO_PF13 , GPIO_PF14 , GPIO_PF15 ,
GPIO_PE6 , GPIO_PE7 , GPIO_PE8 , GPIO_PE9 ,
} ;
static const unsigned ppi0_16b_pins [ ] = {
GPIO_PF0 , GPIO_PF1 , GPIO_PF2 , GPIO_PF3 , GPIO_PF4 , GPIO_PF5 , GPIO_PF6 ,
GPIO_PF7 , GPIO_PF9 , GPIO_PF10 , GPIO_PF11 , GPIO_PF12 ,
GPIO_PF13 , GPIO_PF14 , GPIO_PF15 ,
GPIO_PE6 , GPIO_PE7 , GPIO_PE8 , GPIO_PE9 ,
} ;
static const unsigned ppi0_24b_pins [ ] = {
GPIO_PF0 , GPIO_PF1 , GPIO_PF2 , GPIO_PF3 , GPIO_PF4 , GPIO_PF5 , GPIO_PF6 ,
GPIO_PF7 , GPIO_PF8 , GPIO_PF9 , GPIO_PF10 , GPIO_PF11 , GPIO_PF12 ,
GPIO_PF13 , GPIO_PF14 , GPIO_PF15 , GPIO_PE0 , GPIO_PE1 , GPIO_PE2 ,
GPIO_PE3 , GPIO_PE4 , GPIO_PE5 , GPIO_PE6 , GPIO_PE7 , GPIO_PE8 ,
GPIO_PE9 , GPIO_PD12 , GPIO_PD15 ,
} ;
static const unsigned ppi1_8b_pins [ ] = {
GPIO_PC0 , GPIO_PC1 , GPIO_PC2 , GPIO_PC3 , GPIO_PC4 , GPIO_PC5 , GPIO_PC6 ,
GPIO_PC7 , GPIO_PC8 , GPIO_PB13 , GPIO_PB14 , GPIO_PB15 , GPIO_PD6 ,
} ;
static const unsigned ppi1_16b_pins [ ] = {
GPIO_PC0 , GPIO_PC1 , GPIO_PC2 , GPIO_PC3 , GPIO_PC4 , GPIO_PC5 , GPIO_PC6 ,
GPIO_PC7 , GPIO_PC9 , GPIO_PC10 , GPIO_PC11 , GPIO_PC12 ,
GPIO_PC13 , GPIO_PC14 , GPIO_PC15 ,
GPIO_PB13 , GPIO_PB14 , GPIO_PB15 , GPIO_PD6 ,
} ;
static const unsigned ppi2_8b_pins [ ] = {
GPIO_PA0 , GPIO_PA1 , GPIO_PA2 , GPIO_PA3 , GPIO_PA4 , GPIO_PA5 , GPIO_PA6 ,
GPIO_PA7 , GPIO_PB0 , GPIO_PB1 , GPIO_PB2 , GPIO_PB3 ,
} ;
static const unsigned ppi2_16b_pins [ ] = {
GPIO_PA0 , GPIO_PA1 , GPIO_PA2 , GPIO_PA3 , GPIO_PA4 , GPIO_PA5 , GPIO_PA6 ,
GPIO_PA7 , GPIO_PA8 , GPIO_PA9 , GPIO_PA10 , GPIO_PA11 , GPIO_PA12 ,
2013-09-23 08:07:52 +04:00
GPIO_PA13 , GPIO_PA14 , GPIO_PA15 , GPIO_PB0 , GPIO_PB1 , GPIO_PB2 ,
2013-09-03 12:28:59 +04:00
} ;
static const unsigned lp0_pins [ ] = {
GPIO_PB0 , GPIO_PB1 , GPIO_PA0 , GPIO_PA1 , GPIO_PA2 , GPIO_PA3 ,
GPIO_PA4 , GPIO_PA5 , GPIO_PA6 , GPIO_PA7 ,
} ;
static const unsigned lp1_pins [ ] = {
GPIO_PB3 , GPIO_PB2 , GPIO_PA8 , GPIO_PA9 , GPIO_PA10 , GPIO_PA11 ,
GPIO_PA12 , GPIO_PA13 , GPIO_PA14 , GPIO_PA15 ,
} ;
static const unsigned lp2_pins [ ] = {
GPIO_PE6 , GPIO_PE7 , GPIO_PF0 , GPIO_PF1 , GPIO_PF2 , GPIO_PF3 ,
GPIO_PF4 , GPIO_PF5 , GPIO_PF6 , GPIO_PF7 ,
} ;
static const unsigned lp3_pins [ ] = {
GPIO_PE9 , GPIO_PE8 , GPIO_PF8 , GPIO_PF9 , GPIO_PF10 , GPIO_PF11 ,
GPIO_PF12 , GPIO_PF13 , GPIO_PF14 , GPIO_PF15 ,
} ;
static const unsigned short uart0_mux [ ] = {
P_UART0_TX , P_UART0_RX ,
0
} ;
static const unsigned short uart0_ctsrts_mux [ ] = {
P_UART0_RTS , P_UART0_CTS ,
0
} ;
static const unsigned short uart1_mux [ ] = {
P_UART1_TX , P_UART1_RX ,
0
} ;
static const unsigned short uart1_ctsrts_mux [ ] = {
P_UART1_RTS , P_UART1_CTS ,
0
} ;
static const unsigned short rsi0_mux [ ] = {
P_RSI_DATA0 , P_RSI_DATA1 , P_RSI_DATA2 , P_RSI_DATA3 ,
P_RSI_CMD , P_RSI_CLK , 0
} ;
static const unsigned short eth0_mux [ ] = P_RMII0 ;
static const unsigned short eth1_mux [ ] = P_RMII1 ;
static const unsigned short spi0_mux [ ] = {
P_SPI0_SCK , P_SPI0_MISO , P_SPI0_MOSI , 0
} ;
static const unsigned short spi1_mux [ ] = {
P_SPI1_SCK , P_SPI1_MISO , P_SPI1_MOSI , 0
} ;
static const unsigned short twi0_mux [ ] = {
P_TWI0_SCL , P_TWI0_SDA , 0
} ;
static const unsigned short twi1_mux [ ] = {
P_TWI1_SCL , P_TWI1_SDA , 0
} ;
static const unsigned short rotary_mux [ ] = {
P_CNT_CUD , P_CNT_CDG , P_CNT_CZM , 0
} ;
static const unsigned short sport0_mux [ ] = {
P_SPORT0_ACLK , P_SPORT0_AFS , P_SPORT0_AD0 , P_SPORT0_BCLK ,
P_SPORT0_BFS , P_SPORT0_BD0 , 0 ,
} ;
static const unsigned short sport1_mux [ ] = {
P_SPORT1_ACLK , P_SPORT1_AFS , P_SPORT1_AD0 , P_SPORT1_BCLK ,
P_SPORT1_BFS , P_SPORT1_BD0 , 0 ,
} ;
static const unsigned short sport2_mux [ ] = {
P_SPORT2_ACLK , P_SPORT2_AFS , P_SPORT2_AD0 , P_SPORT2_BCLK ,
P_SPORT2_BFS , P_SPORT2_BD0 , 0 ,
} ;
static const unsigned short can0_mux [ ] = {
P_CAN0_RX , P_CAN0_TX , 0
} ;
static const unsigned short smc0_mux [ ] = {
P_A3 , P_A4 , P_A5 , P_A6 , P_A7 , P_A8 , P_A9 , P_A10 , P_A11 , P_A12 ,
P_A13 , P_A14 , P_A15 , P_A16 , P_A17 , P_A18 , P_A19 , P_A20 , P_A21 ,
P_A22 , P_A23 , P_A24 , P_A25 , P_NORCK , 0 ,
} ;
static const unsigned short ppi0_8b_mux [ ] = {
P_PPI0_D0 , P_PPI0_D1 , P_PPI0_D2 , P_PPI0_D3 ,
P_PPI0_D4 , P_PPI0_D5 , P_PPI0_D6 , P_PPI0_D7 ,
P_PPI0_CLK , P_PPI0_FS1 , P_PPI0_FS2 ,
0 ,
} ;
static const unsigned short ppi0_16b_mux [ ] = {
P_PPI0_D0 , P_PPI0_D1 , P_PPI0_D2 , P_PPI0_D3 ,
P_PPI0_D4 , P_PPI0_D5 , P_PPI0_D6 , P_PPI0_D7 ,
P_PPI0_D8 , P_PPI0_D9 , P_PPI0_D10 , P_PPI0_D11 ,
P_PPI0_D12 , P_PPI0_D13 , P_PPI0_D14 , P_PPI0_D15 ,
P_PPI0_CLK , P_PPI0_FS1 , P_PPI0_FS2 ,
0 ,
} ;
static const unsigned short ppi0_24b_mux [ ] = {
P_PPI0_D0 , P_PPI0_D1 , P_PPI0_D2 , P_PPI0_D3 ,
P_PPI0_D4 , P_PPI0_D5 , P_PPI0_D6 , P_PPI0_D7 ,
P_PPI0_D8 , P_PPI0_D9 , P_PPI0_D10 , P_PPI0_D11 ,
P_PPI0_D12 , P_PPI0_D13 , P_PPI0_D14 , P_PPI0_D15 ,
P_PPI0_D16 , P_PPI0_D17 , P_PPI0_D18 , P_PPI0_D19 ,
P_PPI0_D20 , P_PPI0_D21 , P_PPI0_D22 , P_PPI0_D23 ,
P_PPI0_CLK , P_PPI0_FS1 , P_PPI0_FS2 ,
0 ,
} ;
static const unsigned short ppi1_8b_mux [ ] = {
P_PPI1_D0 , P_PPI1_D1 , P_PPI1_D2 , P_PPI1_D3 ,
P_PPI1_D4 , P_PPI1_D5 , P_PPI1_D6 , P_PPI1_D7 ,
P_PPI1_CLK , P_PPI1_FS1 , P_PPI1_FS2 ,
0 ,
} ;
static const unsigned short ppi1_16b_mux [ ] = {
P_PPI1_D0 , P_PPI1_D1 , P_PPI1_D2 , P_PPI1_D3 ,
P_PPI1_D4 , P_PPI1_D5 , P_PPI1_D6 , P_PPI1_D7 ,
P_PPI1_D8 , P_PPI1_D9 , P_PPI1_D10 , P_PPI1_D11 ,
P_PPI1_D12 , P_PPI1_D13 , P_PPI1_D14 , P_PPI1_D15 ,
P_PPI1_CLK , P_PPI1_FS1 , P_PPI1_FS2 ,
0 ,
} ;
static const unsigned short ppi2_8b_mux [ ] = {
P_PPI2_D0 , P_PPI2_D1 , P_PPI2_D2 , P_PPI2_D3 ,
P_PPI2_D4 , P_PPI2_D5 , P_PPI2_D6 , P_PPI2_D7 ,
P_PPI2_CLK , P_PPI2_FS1 , P_PPI2_FS2 ,
0 ,
} ;
static const unsigned short ppi2_16b_mux [ ] = {
P_PPI2_D0 , P_PPI2_D1 , P_PPI2_D2 , P_PPI2_D3 ,
P_PPI2_D4 , P_PPI2_D5 , P_PPI2_D6 , P_PPI2_D7 ,
P_PPI2_D8 , P_PPI2_D9 , P_PPI2_D10 , P_PPI2_D11 ,
P_PPI2_D12 , P_PPI2_D13 , P_PPI2_D14 , P_PPI2_D15 ,
P_PPI2_CLK , P_PPI2_FS1 , P_PPI2_FS2 ,
0 ,
} ;
static const unsigned short lp0_mux [ ] = {
P_LP0_CLK , P_LP0_ACK , P_LP0_D0 , P_LP0_D1 , P_LP0_D2 ,
P_LP0_D3 , P_LP0_D4 , P_LP0_D5 , P_LP0_D6 , P_LP0_D7 ,
2015-06-16 23:32:30 +03:00
0
2013-09-03 12:28:59 +04:00
} ;
static const unsigned short lp1_mux [ ] = {
P_LP1_CLK , P_LP1_ACK , P_LP1_D0 , P_LP1_D1 , P_LP1_D2 ,
P_LP1_D3 , P_LP1_D4 , P_LP1_D5 , P_LP1_D6 , P_LP1_D7 ,
2015-06-16 23:32:30 +03:00
0
2013-09-03 12:28:59 +04:00
} ;
static const unsigned short lp2_mux [ ] = {
P_LP2_CLK , P_LP2_ACK , P_LP2_D0 , P_LP2_D1 , P_LP2_D2 ,
P_LP2_D3 , P_LP2_D4 , P_LP2_D5 , P_LP2_D6 , P_LP2_D7 ,
2015-06-16 23:32:30 +03:00
0
2013-09-03 12:28:59 +04:00
} ;
static const unsigned short lp3_mux [ ] = {
P_LP3_CLK , P_LP3_ACK , P_LP3_D0 , P_LP3_D1 , P_LP3_D2 ,
P_LP3_D3 , P_LP3_D4 , P_LP3_D5 , P_LP3_D6 , P_LP3_D7 ,
2015-06-16 23:32:30 +03:00
0
2013-09-03 12:28:59 +04:00
} ;
2014-02-14 14:21:06 +04:00
static const struct adi_pin_group adi_pin_groups [ ] = {
ADI_PIN_GROUP ( " uart0grp " , uart0_pins , uart0_mux ) ,
ADI_PIN_GROUP ( " uart0ctsrtsgrp " , uart0_ctsrts_pins , uart0_ctsrts_mux ) ,
ADI_PIN_GROUP ( " uart1grp " , uart1_pins , uart1_mux ) ,
ADI_PIN_GROUP ( " uart1ctsrtsgrp " , uart1_ctsrts_pins , uart1_ctsrts_mux ) ,
ADI_PIN_GROUP ( " rsi0grp " , rsi0_pins , rsi0_mux ) ,
ADI_PIN_GROUP ( " eth0grp " , eth0_pins , eth0_mux ) ,
ADI_PIN_GROUP ( " eth1grp " , eth1_pins , eth1_mux ) ,
ADI_PIN_GROUP ( " spi0grp " , spi0_pins , spi0_mux ) ,
ADI_PIN_GROUP ( " spi1grp " , spi1_pins , spi1_mux ) ,
ADI_PIN_GROUP ( " twi0grp " , twi0_pins , twi0_mux ) ,
ADI_PIN_GROUP ( " twi1grp " , twi1_pins , twi1_mux ) ,
ADI_PIN_GROUP ( " rotarygrp " , rotary_pins , rotary_mux ) ,
ADI_PIN_GROUP ( " can0grp " , can0_pins , can0_mux ) ,
ADI_PIN_GROUP ( " smc0grp " , smc0_pins , smc0_mux ) ,
ADI_PIN_GROUP ( " sport0grp " , sport0_pins , sport0_mux ) ,
ADI_PIN_GROUP ( " sport1grp " , sport1_pins , sport1_mux ) ,
ADI_PIN_GROUP ( " sport2grp " , sport2_pins , sport2_mux ) ,
ADI_PIN_GROUP ( " ppi0_8bgrp " , ppi0_8b_pins , ppi0_8b_mux ) ,
ADI_PIN_GROUP ( " ppi0_16bgrp " , ppi0_16b_pins , ppi0_16b_mux ) ,
ADI_PIN_GROUP ( " ppi0_24bgrp " , ppi0_24b_pins , ppi0_24b_mux ) ,
ADI_PIN_GROUP ( " ppi1_8bgrp " , ppi1_8b_pins , ppi1_8b_mux ) ,
ADI_PIN_GROUP ( " ppi1_16bgrp " , ppi1_16b_pins , ppi1_16b_mux ) ,
ADI_PIN_GROUP ( " ppi2_8bgrp " , ppi2_8b_pins , ppi2_8b_mux ) ,
ADI_PIN_GROUP ( " ppi2_16bgrp " , ppi2_16b_pins , ppi2_16b_mux ) ,
ADI_PIN_GROUP ( " lp0grp " , lp0_pins , lp0_mux ) ,
ADI_PIN_GROUP ( " lp1grp " , lp1_pins , lp1_mux ) ,
ADI_PIN_GROUP ( " lp2grp " , lp2_pins , lp2_mux ) ,
ADI_PIN_GROUP ( " lp3grp " , lp3_pins , lp3_mux ) ,
} ;
2013-09-03 12:28:59 +04:00
static const char * const uart0grp [ ] = { " uart0grp " } ;
static const char * const uart0ctsrtsgrp [ ] = { " uart0ctsrtsgrp " } ;
static const char * const uart1grp [ ] = { " uart1grp " } ;
static const char * const uart1ctsrtsgrp [ ] = { " uart1ctsrtsgrp " } ;
static const char * const rsi0grp [ ] = { " rsi0grp " } ;
static const char * const eth0grp [ ] = { " eth0grp " } ;
static const char * const eth1grp [ ] = { " eth1grp " } ;
static const char * const spi0grp [ ] = { " spi0grp " } ;
static const char * const spi1grp [ ] = { " spi1grp " } ;
static const char * const twi0grp [ ] = { " twi0grp " } ;
static const char * const twi1grp [ ] = { " twi1grp " } ;
static const char * const rotarygrp [ ] = { " rotarygrp " } ;
static const char * const can0grp [ ] = { " can0grp " } ;
static const char * const smc0grp [ ] = { " smc0grp " } ;
static const char * const sport0grp [ ] = { " sport0grp " } ;
static const char * const sport1grp [ ] = { " sport1grp " } ;
static const char * const sport2grp [ ] = { " sport2grp " } ;
2014-02-14 14:21:06 +04:00
static const char * const ppi0grp [ ] = { " ppi0_8bgrp " ,
" ppi0_16bgrp " ,
" ppi0_24bgrp " } ;
static const char * const ppi1grp [ ] = { " ppi1_8bgrp " ,
" ppi1_16bgrp " } ;
static const char * const ppi2grp [ ] = { " ppi2_8bgrp " ,
" ppi2_16bgrp " } ;
2013-09-03 12:28:59 +04:00
static const char * const lp0grp [ ] = { " lp0grp " } ;
static const char * const lp1grp [ ] = { " lp1grp " } ;
static const char * const lp2grp [ ] = { " lp2grp " } ;
static const char * const lp3grp [ ] = { " lp3grp " } ;
static const struct adi_pmx_func adi_pmx_functions [ ] = {
2014-02-14 14:21:06 +04:00
ADI_PMX_FUNCTION ( " uart0 " , uart0grp ) ,
ADI_PMX_FUNCTION ( " uart0_ctsrts " , uart0ctsrtsgrp ) ,
ADI_PMX_FUNCTION ( " uart1 " , uart1grp ) ,
ADI_PMX_FUNCTION ( " uart1_ctsrts " , uart1ctsrtsgrp ) ,
ADI_PMX_FUNCTION ( " rsi0 " , rsi0grp ) ,
ADI_PMX_FUNCTION ( " eth0 " , eth0grp ) ,
ADI_PMX_FUNCTION ( " eth1 " , eth1grp ) ,
ADI_PMX_FUNCTION ( " spi0 " , spi0grp ) ,
ADI_PMX_FUNCTION ( " spi1 " , spi1grp ) ,
ADI_PMX_FUNCTION ( " twi0 " , twi0grp ) ,
ADI_PMX_FUNCTION ( " twi1 " , twi1grp ) ,
ADI_PMX_FUNCTION ( " rotary " , rotarygrp ) ,
ADI_PMX_FUNCTION ( " can0 " , can0grp ) ,
ADI_PMX_FUNCTION ( " smc0 " , smc0grp ) ,
ADI_PMX_FUNCTION ( " sport0 " , sport0grp ) ,
ADI_PMX_FUNCTION ( " sport1 " , sport1grp ) ,
ADI_PMX_FUNCTION ( " sport2 " , sport2grp ) ,
ADI_PMX_FUNCTION ( " ppi0 " , ppi0grp ) ,
ADI_PMX_FUNCTION ( " ppi1 " , ppi1grp ) ,
ADI_PMX_FUNCTION ( " ppi2 " , ppi2grp ) ,
ADI_PMX_FUNCTION ( " lp0 " , lp0grp ) ,
ADI_PMX_FUNCTION ( " lp1 " , lp1grp ) ,
ADI_PMX_FUNCTION ( " lp2 " , lp2grp ) ,
ADI_PMX_FUNCTION ( " lp3 " , lp3grp ) ,
2013-09-03 12:28:59 +04:00
} ;
static const struct adi_pinctrl_soc_data adi_bf60x_soc = {
. functions = adi_pmx_functions ,
. nfunctions = ARRAY_SIZE ( adi_pmx_functions ) ,
. groups = adi_pin_groups ,
. ngroups = ARRAY_SIZE ( adi_pin_groups ) ,
. pins = adi_pads ,
. npins = ARRAY_SIZE ( adi_pads ) ,
} ;
void adi_pinctrl_soc_init ( const struct adi_pinctrl_soc_data * * soc )
{
* soc = & adi_bf60x_soc ;
}