]> Repositories - Adafruit_Blinka-hackapet.git/commitdiff
Merge pull request #769 from how2flow/odroid
authorMelissa LeBlanc-Williams <melissa@adafruit.com>
Fri, 5 Jan 2024 23:26:00 +0000 (15:26 -0800)
committerGitHub <noreply@github.com>
Fri, 5 Jan 2024 23:26:00 +0000 (15:26 -0800)
ODROID-COMMON: Change pin mapping to support new dtbo and to unify with other odroid boards

src/adafruit_blinka/board/hardkernel/odroidc4.py
src/adafruit_blinka/board/hardkernel/odroidm1.py
src/adafruit_blinka/board/hardkernel/odroidm1s.py
src/adafruit_blinka/board/hardkernel/odroidn2.py
src/adafruit_blinka/microcontroller/amlogic/meson_g12_common/pin.py

index 34e1acece1e7058b6fd9e9447ff092871c765935..fd7af822c993ccc5ed2860dfab4c889b3e14e8d7 100644 (file)
@@ -16,7 +16,9 @@ if pin.i2cPorts:
 SCLK = pin.SPI0_SCLK
 MOSI = pin.SPI0_MOSI
 MISO = pin.SPI0_MISO
-SPI_CS0 = pin.SPI0_CS0
+CS0 = pin.SPI0_CS0
+CS1 = pin.GPIOH_6
+SPI_CS0 = CS0  # aliased for backward compatibility
 
 """J2: physical pin number"""
 
@@ -57,3 +59,10 @@ D47 = pin.GPIOAO_4
 """ ADC """
 A0 = 40
 A1 = 37
+
+""" PWM """
+PWM = D15
+
+""" UART """
+UART0_TX = D8
+UART0_RX = D10
index 7093fc4113b5f96c1059c08da94e5cd6e351f4b8..23ec888531ba35d4c0d6d7714ec7cff46b2656cc 100644 (file)
@@ -31,18 +31,20 @@ D31 = pin.GPIO4B_6
 D33 = pin.GPIO0B_5
 D35 = pin.GPIO3D_5
 
-SDA = D27
-SCL = D28
+SDA = D3
+SCL = D5
 
 SCLK = D23
 MOSI = D19
 MISO = D21
-CS = D24
+CS0 = D24
+CS1 = D26
+CS = CS0  # aliased for backward compatibility
 
-UART0_TX = D13
-UART0_RX = D11
-UART1_TX = D8
-UART1_RX = D10
+UART0_TX = D8
+UART0_RX = D10
+UART1_TX = D13
+UART1_RX = D11
 
 UART1_CTS = D29
 UART1_RTS = D31
@@ -55,3 +57,6 @@ I2C1_SCL = D28
 """ ADC """
 A0 = 40
 A1 = 37
+
+""" PWM """
+PWM = D15
index 4b5d6007b3cd23a312284d4bfbcfacd4ed1cff1d..3ed43a50c06e63be775c615e2577e4f49c680fe6 100644 (file)
@@ -37,18 +37,20 @@ EXT_D12 = pin.GPIO3_C5
 EXT_D13 = pin.GPIO3_B3
 EXT_D14 = pin.GPIO3_B4
 
-SDA = D27
-SCL = D28
+SDA = D3
+SCL = D5
 
 SCLK = D23
 MOSI = D19
 MISO = D21
-CS = D24
+CS0 = D24
+CS1 = D26
+CS = CS0  # aliased for backward compatibility
 
-UART0_TX = D13
-UART0_RX = D11
-UART1_TX = D8
-UART1_RX = D10
+UART0_TX = D8
+UART0_RX = D10
+UART1_TX = D13
+UART1_RX = D11
 
 UART1_CTS = D29
 UART1_RTS = D31
@@ -61,3 +63,6 @@ I2C1_SCL = D28
 """ ADC """
 A0 = 40
 A1 = 37
+
+""" PWM """
+PWM = D15
index 782fbd263a2fcfc0bbed4f65b5b1bfbaa9563003..c88f1ded0d6079837590dc643725e95de769d903 100644 (file)
@@ -58,47 +58,50 @@ for it in pin.i2cPorts:
     globals()["SCL" + str(it[0])] = it[1]
     globals()["SDA" + str(it[0])] = it[2]
 
-SCL = None
-SDA = None
-# Set second i2c bus as default for backward compatibility.
-if len(pin.i2cPorts) > 1:
-    SCL = pin.i2cPorts[1][1]
-    SDA = pin.i2cPorts[1][2]
-elif len(pin.i2cPorts) > 0:
+if pin.i2cPorts:
     SCL = pin.i2cPorts[0][1]
     SDA = pin.i2cPorts[0][2]
 
 SCLK = pin.SPI0_SCLK
 MOSI = pin.SPI0_MOSI
 MISO = pin.SPI0_MISO
-SPI_CS0 = pin.GPIO486
+CS0 = pin.GPIO486
+CS1 = pin.GPIO464
+SPI_CS0 = CS0  # aliased for backward compatibility
 
-D0 = GPIOX_3  # PIN_11
-D1 = GPIOX_16  # PIN_12
-D2 = GPIOX_4  # PIN_13
-D3 = GPIOX_7  # PIN_15
-D4 = GPIOX_0  # PIN_16
-D5 = GPIOX_1  # PIN_18
-D6 = GPIOX_2  # PIN_22
-D7 = GPIOA_13  # PIN_7
-D8 = GPIOX_17  # PIN_3
-D9 = GPIOX_18  # PIN_5
-D10 = GPIOX_10  # PIN_24
-D11 = GPIOA_4  # PIN_26
-D12 = GPIOX_8  # PIN_19
-D13 = GPIOX_9  # PIN_21
-D14 = GPIOX_11  # PIN_23
-D15 = GPIOX_12  # PIN_8
-D16 = GPIOX_13  # PIN_10
-D21 = GPIOX_14  # PIN_29
-D22 = GPIOX_15  # PIN_31
-D23 = GPIOX_5  # PIN_33
-D24 = GPIOX_6  # PIN_35
-D26 = GPIOA_12  # PIN_32
-D27 = GPIOX_19  # PIN_36
-D30 = GPIOA_14  # PIN_27
-D31 = GPIOA_15  # PIN_28
+D3 = GPIOX_17
+D5 = GPIOX_18
+D7 = GPIOA_13
+D8 = GPIOX_12
+D10 = GPIOX_13
+D11 = GPIOX_3
+D12 = GPIOX_16
+D13 = GPIOX_4
+D15 = GPIOX_7
+D16 = GPIOX_0
+D18 = GPIOX_1
+D19 = GPIOX_8
+D21 = GPIOX_9
+D22 = GPIOX_2
+D23 = GPIOX_11
+D24 = GPIOX_10
+D26 = GPIOA_4
+D27 = GPIOA_14
+D28 = GPIOA_15
+D29 = GPIOX_14
+D31 = GPIOX_15
+D32 = GPIOA_12
+D33 = GPIOX_5
+D35 = GPIOX_6
+D36 = GPIOX_19
 
 """ ADC """
 A0 = 40
 A1 = 37
+
+""" PWM """
+PWM = D15
+
+""" UART """
+UART0_TX = D8
+UART0_RX = D10
index f44f92a04a408f5084cf890f7befd86f229f5f39..c18e9d940aa974461cfca41f5918dfb5a086a7bb 100644 (file)
@@ -13,7 +13,7 @@ Linux kernel 5.4.y (mainline)
 """
 
 from adafruit_blinka.agnostic import detector
-from adafruit_blinka.microcontroller.alias import get_dts_alias
+from adafruit_blinka.microcontroller.alias import get_dts_alias, get_pwm_chipid
 from adafruit_blinka.microcontroller.generic_linux.libgpiod_pin import Pin
 
 try:
@@ -131,6 +131,9 @@ i2cPorts = []
 # ordered as spiId, sckId, mosiId, misoId
 spiPorts = ((0, SPI0_SCLK, SPI0_MOSI, SPI0_MISO),)
 
+# SysFs pwm outputs, pwm channel and pin in first tuple
+pwmOuts = []
+
 # ordered as uartId, txId, rxId
 uartPorts = [
     (1, UART1_TX, UART1_RX),
@@ -151,24 +154,55 @@ if board in ("ODROID_C4", "ODROID_N2"):
         globals()[alias + "_SCL"] = GPIOA_15
         globals()[alias + "_SDA"] = GPIOA_14
         i2cPorts.append((int(alias[-1]), GPIOA_15, GPIOA_14))
-    alias = get_dts_alias("fdd24000.serial")
+    alias = get_dts_alias("ffd24000.serial")
     if alias is not None:
         globals()[alias + "_TX"] = GPIOX_12
         globals()[alias + "_RX"] = GPIOX_13
         uartPorts.append((int(alias[-1]), GPIOX_12, GPIOX_13))
-    alias = get_dts_alias("fdd23000.serial")
+    alias = get_dts_alias("ffd23000.serial")
     if alias is not None:
         globals()[alias + "_TX"] = GPIOX_6
         globals()[alias + "_RX"] = GPIOX_7
         uartPorts.append((int(alias[-1]), GPIOX_6, GPIOX_7))
 
 if board in ("ODROID_C4"):
+    alias = get_pwm_chipid("ffd1b000.pwm")
+    if alias is not None:
+        globals()["PWMA"] = GPIOX_6
+        globals()["PWMB"] = GPIOX_19
+        pwmOuts.append(((int(alias[-1]), 0), GPIOX_6))
+        pwmOuts.append(((int(alias[-1]), 1), GPIOX_19))
+    alias = get_pwm_chipid("ffd1a000.pwm")
+    if alias is not None:
+        globals()["PWMC"] = GPIOX_5
+        globals()["PWMD"] = GPIOX_3
+        pwmOuts.append(((int(alias[-1]), 0), GPIOX_5))
+        pwmOuts.append(((int(alias[-1]), 1), GPIOX_3))
+    alias = get_pwm_chipid("ffd19000.pwm")
+    if alias is not None:
+        globals()["PWME"] = GPIOX_16
+        globals()["PWMF"] = GPIOH_5
+        pwmOuts.append(((int(alias[-1]), 0), GPIOX_16))
+        pwmOuts.append(((int(alias[-1]), 1), GPIOH_5))
     analogIns.append((37, 0, 2))
     analogIns.append((40, 0, 0))
 if board in ("ODROID_N2"):
+    alias = get_pwm_chipid("ffd1a000.pwm")
+    if alias is not None:
+        globals()["PWMC"] = GPIOX_5
+        globals()["PWMD"] = GPIOX_6
+        pwmOuts.append(((int(alias[-1]), 0), GPIOX_5))
+        pwmOuts.append(((int(alias[-1]), 1), GPIOX_6))
+    alias = get_pwm_chipid("ffd19000.pwm")
+    if alias is not None:
+        globals()["PWME"] = GPIOX_16
+        globals()["PWMF"] = GPIOX_7
+        pwmOuts.append(((int(alias[-1]), 0), GPIOX_16))
+        pwmOuts.append(((int(alias[-1]), 1), GPIOX_7))
     analogIns.append((37, 0, 3))
     analogIns.append((40, 0, 2))
 
 analogIns = tuple(analogIns)
 i2cPorts = tuple(i2cPorts)
+pwmOuts = tuple(pwmOuts)
 uartPorts = tuple(uartPorts)