Fix names of i2c busses

- The names of the i2c busses (i2c-x) are incorrect, so a user trying to
rely on pinout to tell what bus their device on will have trouble. The
hardware names are correct.
- Fetch the /dev/i2c-x names from sysfs

Change-Id: I30c77d3e845c0e460b2ed4f4c4a28e82041ee308
diff --git a/pinout b/pinout
index c21ce74..cd47c10 100755
--- a/pinout
+++ b/pinout
@@ -15,6 +15,7 @@
 # limitations under the License.
 
 import argparse
+import os
 
 class Style:
     BOLD      = 1
@@ -41,10 +42,21 @@
     Kind.PWM:   (Style.YELLOW,    'PWM',   'Pulse Width Modulation [/sys/class/pwm/pwmchipN/pwm0]'),
 }
 
+I2C_DEVICES = {
+    'I2C1': '1100a000.i2c',
+    'I2C2': '1100b000.i2c',
+}
+
+def lookup_i2c_bus(device_tree_name):
+    sysfs_directory = '/sys/devices/platform/soc/{}'.format(device_tree_name)
+    return [x for x in os.listdir(sysfs_directory) if x.startswith('i2c-')][0]
+
 PINS = {
     1:  ('3.3.V',                     Kind.POWER), 2:  ('5V',                       Kind.POWER),
-    3:  ('I2C1_SDA (i2c-2)',          Kind.I2C),   4:  ('5V',                       Kind.POWER),
-    5:  ('I2C1_SCL (i2c-2)',          Kind.I2C),   6:  ('GND',                      Kind.GND),
+    3:  ('I2C1_SDA ({})'.format(lookup_i2c_bus(I2C_DEVICES['I2C1'])), Kind.I2C),
+    4:  ('5V',                        Kind.POWER),
+    5:  ('I2C1_SCL ({})'.format(lookup_i2c_bus(I2C_DEVICES['I2C1'])), Kind.I2C),
+    6:  ('GND',                       Kind.GND),
     7:  ('GPIO (gpio409)',            Kind.GPIO),  8:  ('UART0_TX (ttyS0)',         Kind.UART),
     9:  ('GND',                       Kind.GND),   10: ('UART0_RX (ttyS0)',         Kind.UART),
     11: ('GPIO (gpio396)',            Kind.GPIO),  12: ('GPIO (gpio423) / I2S_BCK', Kind.SAI),
@@ -55,7 +67,8 @@
     21: ('SPI_MISO (spidev0)',        Kind.SPI),   22: ('GPIO (gpio394)',           Kind.GPIO),
     23: ('SPI_SCLK (spidev0)',        Kind.SPI),   24: ('SPI_CSB (spidev0.0)',      Kind.SPI),
     25: ('GND',                       Kind.GND),   26: ('GPIO (gpio395)',           Kind.GPIO),
-    27: ('I2C2_SDA (i2c-3)',          Kind.I2C),   28: ('I2C2_SCL (i2c-3)',         Kind.I2C),
+    27: ('I2C2_SDA ({})'.format(lookup_i2c_bus(I2C_DEVICES['I2C2'])), Kind.I2C),
+    28: ('I2C2_SCL ({})'.format(lookup_i2c_bus(I2C_DEVICES['I2C2'])), Kind.I2C),
     29: ('UART1_TX (ttyS1)',          Kind.UART),  30: ('GND',                      Kind.GND),
     31: ('UART1_RX (ttyS1)',          Kind.UART),  32: ('PWM (pwmchip0.0)',         Kind.PWM),
     33: ('PWM (pwmchip0.1)',          Kind.PWM),   34: ('GND',                      Kind.GND),