@@ -30,7 +30,7 @@ static const int pinToGpio[64] = {
3030 116 , 115 , // 2 | 3 : GPIOX.19, GPIOX.18
3131 104 , 102 , // 4 | 5 : GPIOX.7, GPIOX.5
3232 103 , 83 , // 6 | 7 : GPIOX.6, GPIOY.3
33- -1 , -1 , // 8 | 9 : GPIODV.24(I2CA_SDA), GPIODV.25(I2CA_SCL)
33+ 74 , 75 , // 8 | 9 : GPIODV.24(I2CA_SDA), GPIODV.25(I2CA_SCL)
3434 117 , 118 , // 10 | 11 : GPIOX.20(SPI_CE0), GPIOX.21(SPI_CE1)
3535 107 , 106 , // 12 | 13 : GPIOX.10(SPI_MOSI), GPIOX.9(SPI_MISO)
3636 105 , -1 , // 14 | 15 : GPIOX.8(SPI_SCLK), GPIOX.16(UART_TX_B)
@@ -52,8 +52,8 @@ static const int phyToGpio[64] = {
5252 // physical header pin number to native gpio number
5353 -1 , // 0
5454 -1 , -1 , // 1 | 2 : 3.3V, 5.0V
55- -1 , -1 , // 3 | 4 : GPIODV.24(I2CA_SDA), 5.0V
56- -1 , -1 , // 5 | 6 : GPIODV.25(I2CA_SCL), GND
55+ 74 , -1 , // 3 | 4 : GPIODV.24(I2CA_SDA), 5.0V
56+ 75 , -1 , // 5 | 6 : GPIODV.25(I2CA_SCL), GND
5757 83 , -1 , // 7 | 8 : GPIOY.3, GPIOX.16(UART_TX_B)
5858 -1 , -1 , // 9 | 10 : GND, GPIOX.17(UART_RX_B)
5959 88 , 87 , // 11 | 12 : GPIOY.8, GPIOY.7
@@ -135,6 +135,8 @@ static int gpioToGPSETReg (int pin)
135135 return GPIOX_OUTP_REG_OFFSET ;
136136 if (pin >= GPIOY_PIN_START && pin <= GPIOY_PIN_END )
137137 return GPIOY_OUTP_REG_OFFSET ;
138+ if (pin >= GPIODV_PIN_START && pin <= GPIODV_PIN_END )
139+ return GPIODV_OUTP_REG_OFFSET ;
138140 return -1 ;
139141}
140142
@@ -149,6 +151,8 @@ static int gpioToGPLEVReg (int pin)
149151 return GPIOX_INP_REG_OFFSET ;
150152 if (pin >= GPIOY_PIN_START && pin <= GPIOY_PIN_END )
151153 return GPIOY_INP_REG_OFFSET ;
154+ if (pin >= GPIODV_PIN_START && pin <= GPIODV_PIN_END )
155+ return GPIODV_INP_REG_OFFSET ;
152156 return -1 ;
153157}
154158
@@ -163,6 +167,8 @@ static int gpioToPUENReg (int pin)
163167 return GPIOX_PUEN_REG_OFFSET ;
164168 if (pin >= GPIOY_PIN_START && pin <= GPIOY_PIN_END )
165169 return GPIOY_PUEN_REG_OFFSET ;
170+ if (pin >= GPIODV_PIN_START && pin <= GPIODV_PIN_END )
171+ return GPIODV_PUEN_REG_OFFSET ;
166172 return -1 ;
167173}
168174
@@ -177,6 +183,8 @@ static int gpioToPUPDReg (int pin)
177183 return GPIOX_PUPD_REG_OFFSET ;
178184 if (pin >= GPIOY_PIN_START && pin <= GPIOY_PIN_END )
179185 return GPIOY_PUPD_REG_OFFSET ;
186+ if (pin >= GPIODV_PIN_START && pin <= GPIODV_PIN_END )
187+ return GPIODV_PUPD_REG_OFFSET ;
180188 return -1 ;
181189}
182190
@@ -191,6 +199,8 @@ static int gpioToShiftReg (int pin)
191199 return pin - GPIOX_PIN_START ;
192200 if (pin >= GPIOY_PIN_START && pin <= GPIOY_PIN_END )
193201 return pin - GPIOY_PIN_START ;
202+ if (pin >= GPIODV_PIN_START && pin <= GPIODV_PIN_END )
203+ return pin - GPIODV_PIN_START ;
194204 return -1 ;
195205}
196206
@@ -205,29 +215,42 @@ static int gpioToGPFSELReg (int pin)
205215 return GPIOX_FSEL_REG_OFFSET ;
206216 if (pin >= GPIOY_PIN_START && pin <= GPIOY_PIN_END )
207217 return GPIOY_FSEL_REG_OFFSET ;
218+ if (pin >= GPIODV_PIN_START && pin <= GPIODV_PIN_END )
219+ return GPIODV_FSEL_REG_OFFSET ;
208220 return -1 ;
209221}
210222/*----------------------------------------------------------------------------*/
211223static int getModeToGpio (int mode , int pin )
212224{
225+ int retPin = -1 ;
226+
213227 switch (mode ) {
214228 /* Native gpio number */
215229 case MODE_GPIO :
216- return pin ;
230+ retPin = pin ;
231+ break ;
217232 /* Native gpio number for sysfs */
218233 case MODE_GPIO_SYS :
219- return lib -> sysFds [pin ] != -1 ? pin : -1 ;
234+ retPin = lib -> sysFds [pin ] != -1 ? pin : -1 ;
235+ break ;
220236 /* wiringPi number */
221237 case MODE_PINS :
222- return pin < 64 ? pinToGpio [pin ] : -1 ;
238+ retPin = pin < 64 ? pinToGpio [pin ] : -1 ;
239+ break ;
223240 /* header pin number */
224241 case MODE_PHYS :
225- return pin < 64 ? phyToGpio [pin ] : -1 ;
226- default :
242+ retPin = pin < 64 ? phyToGpio [pin ] : -1 ;
227243 break ;
244+ default :
245+ msg (MSG_WARN , "%s : Unknown Mode %d\n" , __func__ , mode );
246+ return -1 ;
228247 }
229- msg (MSG_WARN , "%s : Unknown Mode %d\n" , __func__ , mode );
230- return -1 ;
248+
249+ /* To check I2C module loaded */
250+ if (moduleLoaded (AML_MODULE_I2C ) && (retPin == 74 || retPin == 75 ))
251+ return -1 ;
252+ else
253+ return retPin ;
231254}
232255
233256/*----------------------------------------------------------------------------*/
0 commit comments