From: Steve Jeong Date: Wed, 3 Jan 2024 09:42:54 +0000 (+0000) Subject: ODROID-N2/C4: Support PWMOuts X-Git-Tag: 8.30.0~4^2~6 X-Git-Url: https://git.ayoreis.com/Adafruit_Blinka-hackapet.git/commitdiff_plain/e344ad8030ef2b52ac7534e656fe0159c7e7a35c ODROID-N2/C4: Support PWMOuts Signed-off-by: Steve Jeong --- diff --git a/src/adafruit_blinka/microcontroller/amlogic/meson_g12_common/pin.py b/src/adafruit_blinka/microcontroller/amlogic/meson_g12_common/pin.py index f44f92a..f0c378a 100644 --- a/src/adafruit_blinka/microcontroller/amlogic/meson_g12_common/pin.py +++ b/src/adafruit_blinka/microcontroller/amlogic/meson_g12_common/pin.py @@ -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), @@ -163,12 +166,43 @@ if board in ("ODROID_C4", "ODROID_N2"): 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)