X-Git-Url: https://git.ayoreis.com/Adafruit_Blinka-hackapet.git/blobdiff_plain/a013da4927ee9ef030130fa287e5ce486b62281f..c2bc4a90827f28abb6b51eae659a1f80a65c0497:/src/adafruit_blinka/microcontroller/rockchip/rk3568b2/pin.py diff --git a/src/adafruit_blinka/microcontroller/rockchip/rk3568b2/pin.py b/src/adafruit_blinka/microcontroller/rockchip/rk3568b2/pin.py index 51535d5..45a0aa6 100644 --- a/src/adafruit_blinka/microcontroller/rockchip/rk3568b2/pin.py +++ b/src/adafruit_blinka/microcontroller/rockchip/rk3568b2/pin.py @@ -1,5 +1,12 @@ +# SPDX-FileCopyrightText: 2022 MrPanc0 for Adafruit Industries +# SPDX-FileCopyrightText: 2023 Steve Jeong for Hardkernel +# +# SPDX-License-Identifier: MIT + """A Pin class for use with Rockchip RK3568B2.""" +from adafruit_blinka.agnostic import detector +from adafruit_blinka.microcontroller.alias import get_dts_alias, get_pwm_chipid from adafruit_blinka.microcontroller.generic_linux.libgpiod_pin import Pin GPIO3C_6 = Pin((3, 22)) @@ -31,17 +38,14 @@ ADC_AIN0 = 37 ADC_AIN1 = 40 # I2C -I2C0_SCL = GPIO3B_5 -I2C0_SDA = GPIO3B_6 I2C1_SCL = GPIO0B_3 I2C1_SDA = GPIO0B_4 # SPI -SPI0_CS = GPIO2D_2 -SPI0_SCLK = GPIO2D_3 -SPI0_MISO = GPIO2D_0 -SPI0_MOSI = GPIO2D_1 - +SPI0_CS_M1 = GPIO2D_2 +SPI0_SCLK_M1 = GPIO2D_3 +SPI0_MISO_M1 = GPIO2D_0 +SPI0_MOSI_M1 = GPIO2D_1 # UART UART0_TX = GPIO0C_1 @@ -50,26 +54,65 @@ UART1_TX = GPIO3D_6 UART1_RX = GPIO3D_7 # PWM -#PWM0 = GPIO4_C2 -#PWM1 = GPIO4_C6 +# PWM0 = GPIO4_C2 +# PWM1 = GPIO4_C6 # ordered as i2cId, SCL, SDA -i2cPorts = ( - (0, I2C0_SCL, I2C0_SDA), +i2cPorts = [ (1, I2C1_SCL, I2C1_SDA), -) - -# ordered as spiId, sckId, mosiId, misoId -spiPorts = ((1, SPI0_SCLK, SPI0_MOSI, SPI0_MISO),) +] # SysFS pwm outputs, pwm channel and pin in first tuple -#pwmOuts = ( +# pwmOuts = ( # ((0, 0), PWM0), # ((1, 0), PWM1), -#) +# ) + +# ordered as spiId, sckId, mosiId, misoId +spiPorts = ((0, SPI0_SCLK_M1, SPI0_MOSI_M1, SPI0_MISO_M1),) + +# SysFS pwm outputs, pwm channel and pin in first tuple +pwmOuts = [] + +# ordered as uartId, txId, rxId +uartPorts = [] # SysFS analog inputs, Ordered as analog analogInId, device, and channel -analogIns = ( - (ADC_AIN0, 0, 0), - (ADC_AIN1, 0, 0), - ) +analogIns = [] + +board = detector.board.id +if board in ("ODROID_M1"): + analogIns.append((37, 0, 7)) + analogIns.append((40, 0, 6)) + alias = get_dts_alias("fe5c0000.i2c") + if alias is not None: + globals()[alias + "_SCL"] = GPIO3B_5 + globals()[alias + "_SDA"] = GPIO3B_6 + i2cPorts.append((int(alias[-1]), GPIO3B_5, GPIO3B_6)) + alias = get_pwm_chipid("fdd70010.pwm") + if alias is not None: + globals()["PWM" + alias] = GPIO0B_5 + pwmOuts.append(((int(alias[-1]), 0), GPIO0B_5)) + alias = get_pwm_chipid("fdd70020.pwm") + if alias is not None: + globals()["PWM" + alias] = GPIO0B_6 + pwmOuts.append(((int(alias[-1]), 0), GPIO0B_6)) + alias = get_pwm_chipid("fe6f0010.pwm") + if alias is not None: + globals()["PWM" + alias] = GPIO3B_2 + pwmOuts.append(((int(alias[-1]), 0), GPIO3B_2)) + alias = get_dts_alias("fdd50000.serial") + if alias is not None: + globals()[alias + "_TX"] = GPIO0C_1 + globals()[alias + "_RX"] = GPIO0C_0 + uartPorts.append((int(alias[-1]), GPIO0C_1, GPIO0C_0)) + alias = get_dts_alias("fe650000.serial") + if alias is not None: + globals()[alias + "_TX"] = GPIO3D_6 + globals()[alias + "_RX"] = GPIO3D_7 + uartPorts.append((int(alias[-1]), GPIO3D_6, GPIO3D_7)) + +analogIns = tuple(analogIns) +i2cPorts = tuple(i2cPorts) +pwmOuts = tuple(pwmOuts) +uartPorts = tuple(uartPorts)