Hello, I'm trying to use GPIOs on a Olinuxino A20 micro rev G which runs archlinux.
I don't understand how to map pins from this document https://www.olimex.com/Products/OLinuXino/A20/A20-OLinuXino-MICRO/resources/A20-OLinuXino-Micro.pdf and the result of `gpioinfo` :
gpiochip0 - 288 lines:
line 0: unnamed unused input active-high
line 1: unnamed unused input active-high
line 2: unnamed unused input active-high
line 3: unnamed unused input active-high
line 4: unnamed unused input active-high
line 5: unnamed unused input active-high
line 6: unnamed unused input active-high
line 7: unnamed unused input active-high
line 8: unnamed unused input active-high
line 9: unnamed unused input active-high
line 10: unnamed unused input active-high
line 11: unnamed unused input active-high
line 12: unnamed unused input active-high
line 13: unnamed unused input active-high
line 14: unnamed unused input active-high
line 15: unnamed unused input active-high
line 16: unnamed unused input active-high
line 17: unnamed unused input active-high
line 18: unnamed unused input active-high
line 19: unnamed unused input active-high
line 20: unnamed unused input active-high
line 21: unnamed unused input active-high
line 22: unnamed unused input active-high
line 23: unnamed unused input active-high
line 24: unnamed unused input active-high
line 25: unnamed unused input active-high
line 26: unnamed unused input active-high
line 27: unnamed unused input active-high
line 28: unnamed unused input active-high
line 29: unnamed unused input active-high
line 30: unnamed unused input active-high
line 31: unnamed unused input active-high
line 32: unnamed unused input active-high
line 33: unnamed unused input active-high
line 34: unnamed unused input active-high
line 35: unnamed unused input active-high
line 36: unnamed unused input active-high
line 37: unnamed unused input active-high
line 38: unnamed unused input active-high
line 39: unnamed unused input active-high
line 40: unnamed "ahci-5v" output active-high [used]
line 41: unnamed "usb0-vbus" output active-high [used]
line 42: unnamed unused input active-high
line 43: unnamed unused input active-high
line 44: unnamed unused input active-high
line 45: unnamed unused input active-high
line 46: unnamed unused input active-high
line 47: unnamed unused input active-high
line 48: unnamed unused input active-high
line 49: unnamed unused input active-high
line 50: unnamed unused input active-high
line 51: unnamed unused input active-high
line 52: unnamed unused input active-high
line 53: unnamed unused input active-high
line 54: unnamed unused input active-high
line 55: unnamed unused input active-high
line 56: unnamed unused input active-high
line 57: unnamed unused input active-high
line 58: unnamed unused input active-high
line 59: unnamed unused input active-high
line 60: unnamed unused input active-high
line 61: unnamed unused input active-high
line 62: unnamed unused input active-high
line 63: unnamed unused input active-high
line 64: unnamed unused input active-high
line 65: unnamed unused input active-high
line 66: unnamed unused input active-high
line 67: unnamed unused input active-high
line 68: unnamed unused input active-high
line 69: unnamed unused input active-high
line 70: unnamed unused input active-high
line 71: unnamed unused input active-high
line 72: unnamed unused input active-high
line 73: unnamed unused input active-high
line 74: unnamed unused input active-high
line 75: unnamed unused input active-high
line 76: unnamed unused input active-high
line 77: unnamed unused input active-high
line 78: unnamed unused input active-high
line 79: unnamed unused input active-high
line 80: unnamed unused input active-high
line 81: unnamed unused input active-high
line 82: unnamed unused input active-high
line 83: unnamed unused input active-high
line 84: unnamed unused input active-high
line 85: unnamed unused input active-high
line 86: unnamed unused input active-high
line 87: unnamed unused input active-high
line 88: unnamed unused input active-high
line 89: unnamed unused input active-high
line 90: unnamed unused input active-high
line 91: unnamed unused input active-high
line 92: unnamed unused input active-high
line 93: unnamed unused input active-high
line 94: unnamed unused input active-high
line 95: unnamed unused input active-high
line 96: unnamed unused input active-high
line 97: unnamed unused input active-high
line 98: unnamed unused input active-high
line 99: unnamed unused input active-high
line 100: unnamed unused input active-high
line 101: unnamed unused input active-high
line 102: unnamed unused input active-high
line 103: unnamed unused input active-high
line 104: unnamed unused input active-high
line 105: unnamed unused input active-high
line 106: unnamed unused input active-high
line 107: unnamed unused input active-high
line 108: unnamed unused input active-high
line 109: unnamed unused input active-high
line 110: unnamed unused input active-high
line 111: unnamed unused input active-high
line 112: unnamed unused input active-high
line 113: unnamed unused input active-high
line 114: unnamed unused input active-high
line 115: unnamed unused input active-high
line 116: unnamed unused input active-high
line 117: unnamed unused input active-high
line 118: unnamed unused input active-high
line 119: unnamed unused input active-high
line 120: unnamed unused input active-high
line 121: unnamed unused input active-high
line 122: unnamed unused input active-high
line 123: unnamed unused input active-high
line 124: unnamed unused input active-high
line 125: unnamed unused input active-high
line 126: unnamed unused input active-high
line 127: unnamed unused input active-high
line 128: unnamed unused input active-high
line 129: unnamed unused input active-high
line 130: unnamed unused input active-high
line 131: unnamed unused input active-high
line 132: unnamed unused input active-high
line 133: unnamed unused input active-high
line 134: unnamed unused input active-high
line 135: unnamed unused input active-high
line 136: unnamed unused input active-high
line 137: unnamed unused input active-high
line 138: unnamed unused input active-high
line 139: unnamed unused input active-high
line 140: unnamed unused input active-high
line 141: unnamed unused input active-high
line 142: unnamed unused input active-high
line 143: unnamed unused input active-high
line 144: unnamed unused input active-high
line 145: unnamed unused input active-high
line 146: unnamed unused input active-high
line 147: unnamed unused input active-high
line 148: unnamed unused input active-high
line 149: unnamed unused input active-high
line 150: unnamed unused input active-high
line 151: unnamed unused input active-high
line 152: unnamed unused input active-high
line 153: unnamed unused input active-high
line 154: unnamed unused input active-high
line 155: unnamed unused input active-high
line 156: unnamed unused input active-high
line 157: unnamed unused input active-high
line 158: unnamed unused input active-high
line 159: unnamed unused input active-high
line 160: unnamed unused input active-high
line 161: unnamed unused input active-high
line 162: unnamed unused input active-high
line 163: unnamed unused input active-high
line 164: unnamed unused input active-high
line 165: unnamed unused input active-high
line 166: unnamed unused input active-high
line 167: unnamed unused input active-high
line 168: unnamed unused input active-high
line 169: unnamed unused input active-high
line 170: unnamed unused input active-high
line 171: unnamed unused input active-high
line 172: unnamed unused input active-high
line 173: unnamed unused input active-high
line 174: unnamed unused input active-high
line 175: unnamed unused input active-high
line 176: unnamed unused input active-high
line 177: unnamed unused input active-high
line 178: unnamed unused input active-high
line 179: unnamed unused input active-high
line 180: unnamed unused input active-high
line 181: unnamed unused input active-high
line 182: unnamed unused input active-high
line 183: unnamed unused input active-high
line 184: unnamed unused input active-high
line 185: unnamed unused input active-high
line 186: unnamed unused input active-high
line 187: unnamed unused input active-high
line 188: unnamed unused input active-high
line 189: unnamed unused input active-high
line 190: unnamed unused input active-high
line 191: unnamed unused input active-high
line 192: unnamed unused input active-high
line 193: unnamed unused input active-high
line 194: unnamed unused input active-high
line 195: unnamed unused input active-high
line 196: unnamed unused input active-high
line 197: unnamed unused input active-high
line 198: unnamed unused input active-high
line 199: unnamed unused input active-high
line 200: unnamed unused input active-high
line 201: unnamed unused input active-high
line 202: unnamed unused input active-high
line 203: unnamed unused input active-high
line 204: unnamed unused input active-high
line 205: unnamed unused input active-high
line 206: unnamed unused input active-high
line 207: unnamed unused input active-high
line 208: unnamed unused input active-high
line 209: unnamed unused input active-high
line 210: unnamed unused input active-high
line 211: unnamed unused input active-high
line 212: unnamed unused input active-high
line 213: unnamed unused input active-high
line 214: unnamed unused input active-high
line 215: unnamed unused input active-high
line 216: unnamed unused input active-high
line 217: unnamed unused input active-high
line 218: unnamed unused input active-high
line 219: unnamed unused input active-high
line 220: unnamed unused input active-high
line 221: unnamed unused input active-high
line 222: unnamed unused input active-high
line 223: unnamed unused input active-high
line 224: unnamed unused input active-high
line 225: unnamed "cd" input active-low [used]
line 226: unnamed "a20-olinuxino-micro:green:usr" output active-high [used]
line 227: unnamed "usb2-vbus" output active-high [used]
line 228: unnamed "usb0_id_det" input active-high [used pull-up]
line 229: unnamed "usb0_vbus_det" input active-high [used pull-down]
line 230: unnamed "usb1-vbus" output active-high [used]
line 231: unnamed unused input active-high
line 232: unnamed unused input active-high
line 233: unnamed unused input active-high
line 234: unnamed unused input active-high
line 235: unnamed "cd" input active-low [used]
line 236: unnamed unused input active-high
line 237: unnamed unused input active-high
line 238: unnamed unused input active-high
line 239: unnamed unused input active-high
line 240: unnamed unused input active-high
line 241: unnamed unused input active-high
line 242: unnamed unused output active-high
line 243: unnamed unused input active-high
line 244: unnamed unused input active-high
line 245: unnamed unused input active-high
line 246: unnamed unused input active-high
line 247: unnamed unused input active-high
line 248: unnamed unused input active-high
line 249: unnamed unused input active-high
line 250: unnamed unused input active-high
line 251: unnamed unused input active-high
line 252: unnamed unused input active-high
line 253: unnamed unused input active-high
line 254: unnamed unused input active-high
line 255: unnamed unused input active-high
line 256: unnamed unused input active-high
line 257: unnamed unused input active-high
line 258: unnamed unused input active-high
line 259: unnamed unused input active-high
line 260: unnamed unused input active-high
line 261: unnamed unused input active-high
line 262: unnamed unused input active-high
line 263: unnamed unused input active-high
line 264: unnamed unused input active-high
line 265: unnamed unused input active-high
line 266: unnamed unused input active-high
line 267: unnamed unused input active-high
line 268: unnamed unused input active-high
line 269: unnamed unused input active-high
line 270: unnamed unused input active-high
line 271: unnamed unused input active-high
line 272: unnamed unused input active-high
line 273: unnamed unused input active-high
line 274: unnamed unused input active-high
line 275: unnamed unused input active-high
line 276: unnamed unused input active-high
line 277: unnamed unused input active-high
line 278: unnamed unused input active-high
line 279: unnamed unused input active-high
line 280: unnamed unused input active-high
line 281: unnamed unused input active-high
line 282: unnamed unused input active-high
line 283: unnamed unused input active-high
line 284: unnamed unused input active-high
line 285: unnamed unused input active-high
line 286: unnamed unused input active-high
line 287: unnamed unused input active-high
gpiochip1 - 3 lines:
line 0: unnamed unused input active-high
line 1: unnamed unused input active-high
line 2: unnamed unused input active-high
Why did I got 2 gpio chips here instead of the 3 in the docs ?
How did I found where is for example PE0/E23 ? From the schematic (https://raw.githubusercontent.com/OLIMEX/OLINUXINO/master/HARDWARE/A20-OLinuXino-MICRO/2.%20Older%20hardware%20revisions/Hardware%20revision%20G1/A20-OLINUXINO-MICRO_Rev_G1.pdf) I see its also TS0_CLK/CSI0_PCLK ... but I don't know what to do with this !
After some tries I can control PH 16/17/18 (B1/C1/C2, pin 25 27 29 on GPIO 3) with pins 240 241 and 242 from gpiochip0 (using gpioset 0 240=0 241=0 242=0), but I still don't understand the logic
Thank you for any help !
GPIO toggling is better explained in chapter 8.6 in this document:
https://github.com/OLIMEX/OLINUXINO/blob/master/DOCUMENTS/OLIMAGE/Olimage-guide.pdf
thank for the link I totally missed this document !
Indeed it is exactly what I needed:
QuotegpioNumberLinux = (portLetterChip position in the alphabet - 1) * bit-width-max +
pinNumberChip