Skip to content

Commit 79b87ae

Browse files
authored
Merge pull request #959 from mrv96/ft4232h
Add support to FT4232H
2 parents 16edde3 + 652bbe6 commit 79b87ae

File tree

12 files changed

+105
-11
lines changed

12 files changed

+105
-11
lines changed
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries
2+
#
3+
# SPDX-License-Identifier: MIT
4+
"""Pin definitions for the FTDI FT4232H"""
5+
from adafruit_blinka.microcontroller.ftdi_mpsse.ft4232h import pin
6+
7+
# MPSSE A
8+
AD4 = pin.AD4
9+
AD5 = pin.AD5
10+
AD6 = pin.AD6
11+
AD7 = pin.AD7
12+
13+
SDA0 = pin.SDA0
14+
SCL0 = pin.SCL0
15+
16+
SCK0 = pin.SCK0
17+
SCLK0 = pin.SCLK0
18+
MOSI0 = pin.MOSI0
19+
MISO0 = pin.MISO0
20+
21+
# MPSSE B
22+
BD4 = pin.BD4
23+
BD5 = pin.BD5
24+
BD6 = pin.BD6
25+
BD7 = pin.BD7
26+
27+
SDA1 = pin.SDA1
28+
SCL1 = pin.SCL1
29+
30+
SCK1 = pin.SCK1
31+
SCLK1 = pin.SCLK1
32+
MOSI1 = pin.MOSI1
33+
MISO1 = pin.MISO1

src/adafruit_blinka/microcontroller/ftdi_mpsse/ft4232h/__init__.py

Whitespace-only changes.
Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries
2+
#
3+
# SPDX-License-Identifier: MIT
4+
"""FT4232H pin names"""
5+
6+
from adafruit_blinka.microcontroller.ftdi_mpsse.mpsse.pin import Pin
7+
8+
# See https://eblot.github.io/pyftdi/pinout.html for detailed FTDI device pinout information
9+
10+
# MPSSE Port A
11+
AD4 = Pin(4, interface_id=0)
12+
AD5 = Pin(5, interface_id=0)
13+
AD6 = Pin(6, interface_id=0)
14+
AD7 = Pin(7, interface_id=0)
15+
16+
SCL0 = Pin(interface_id=0)
17+
SDA0 = Pin(interface_id=0)
18+
SCK0 = SCLK0 = Pin(interface_id=0)
19+
MOSI0 = Pin(interface_id=0)
20+
MISO0 = Pin(interface_id=0)
21+
22+
# MPSSE Port B
23+
BD4 = Pin(4, interface_id=1)
24+
BD5 = Pin(5, interface_id=1)
25+
BD6 = Pin(6, interface_id=1)
26+
BD7 = Pin(7, interface_id=1)
27+
28+
SCL1 = Pin(interface_id=1)
29+
SDA1 = Pin(interface_id=1)
30+
SCK1 = SCLK1 = Pin(interface_id=1)
31+
MOSI1 = Pin(interface_id=1)
32+
MISO1 = Pin(interface_id=1)
33+
34+
i2cPorts = (
35+
(0, SCL0, SDA0),
36+
(1, SCL1, SDA1),
37+
)
38+
39+
spiPorts = (
40+
(0, SCLK0, MOSI0, MISO0),
41+
(1, SCLK1, MOSI1, MISO1),
42+
)

src/adafruit_blinka/microcontroller/ftdi_mpsse/mpsse/i2c.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
from adafruit_blinka.microcontroller.ftdi_mpsse.mpsse.pin import Pin
66
from adafruit_blinka.microcontroller.ftdi_mpsse.mpsse.url import (
77
get_ft232h_url,
8-
get_ft2232h_url,
8+
get_ftx232h_url,
99
)
1010

1111

@@ -32,7 +32,7 @@ def __init__(self, i2c_id=None, mode=MASTER, baudrate=None, frequency=400000):
3232
if i2c_id is None:
3333
self._i2c.configure(get_ft232h_url(), frequency=frequency)
3434
else:
35-
self._i2c.configure(get_ft2232h_url(i2c_id), frequency=frequency)
35+
self._i2c.configure(get_ftx232h_url(i2c_id), frequency=frequency)
3636
Pin.mpsse_gpio = self._i2c.get_gpio()
3737

3838
def scan(self):

src/adafruit_blinka/microcontroller/ftdi_mpsse/mpsse/pin.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55

66
from adafruit_blinka.microcontroller.ftdi_mpsse.mpsse.url import (
77
get_ft232h_url,
8-
get_ft2232h_url,
8+
get_ftx232h_url,
99
)
1010

1111

@@ -35,7 +35,7 @@ def __init__(self, pin_id=None, interface_id=None):
3535
if interface_id is None:
3636
i2c.configure(get_ft232h_url())
3737
else:
38-
i2c.configure(get_ft2232h_url(interface_id))
38+
i2c.configure(get_ftx232h_url(interface_id))
3939
Pin.mpsse_gpio = i2c.get_gpio()
4040
# check if pin is valid
4141
if pin_id:

src/adafruit_blinka/microcontroller/ftdi_mpsse/mpsse/spi.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
from adafruit_blinka.microcontroller.ftdi_mpsse.mpsse.pin import Pin
66
from adafruit_blinka.microcontroller.ftdi_mpsse.mpsse.url import (
77
get_ft232h_url,
8-
get_ft2232h_url,
8+
get_ftx232h_url,
99
)
1010

1111

@@ -25,7 +25,7 @@ def __init__(self, spi_id=None):
2525
if spi_id is None:
2626
self._spi.configure(get_ft232h_url())
2727
else:
28-
self._spi.configure(get_ft2232h_url(spi_id + 1))
28+
self._spi.configure(get_ftx232h_url(spi_id + 1))
2929
self._port = self._spi.get_port(0)
3030
self._port.set_frequency(100000)
3131
self._port._cpol = 0

src/adafruit_blinka/microcontroller/ftdi_mpsse/mpsse/url.py

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
# SPDX-License-Identifier: MIT
44
"""
55
Support for getting the URL from the BLINKA_FT232H
6-
and BLINKA_FT2232H_{} environment variables.
6+
and BLINKA_FTX232H_{} environment variables.
77
"""
88

99
import os
@@ -23,15 +23,17 @@ def get_ft232h_url():
2323
return "ftdi://ftdi:ft232h/1"
2424

2525

26-
def get_ft2232h_url(interface_id):
26+
def get_ftx232h_url(interface_id):
2727
"""
28-
Return the FTDI url to use. If BLINKA_FT2232H_{} starts with ftdi:, returns
28+
Return the FTDI url to use. If BLINKA_FTX232H_{} starts with ftdi:, returns
2929
that. Otherwise, returns a default value.
3030
"""
3131

32-
url = os.environ.get("BLINKA_FT2232H_{}".format(interface_id), "1")
32+
url = os.environ.get("BLINKA_FTX232H_{}".format(interface_id), "1")
3333

3434
if url.startswith("ftdi:"):
3535
return url
3636

37-
return "ftdi://ftdi:ft2232h/{}".format(interface_id + 1)
37+
if os.environ.get("BLINKA_FT2232H", None):
38+
return "ftdi://ftdi:ft2232h/{}".format(interface_id + 1)
39+
return "ftdi://ftdi:ft4232h/{}".format(interface_id + 1)

src/board.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -239,6 +239,9 @@
239239
elif board_id == ap_board.FTDI_FT2232H:
240240
from adafruit_blinka.board.ftdi_ft2232h import *
241241

242+
elif board_id == ap_board.FTDI_FT4232H:
243+
from adafruit_blinka.board.ftdi_ft4232h import *
244+
242245
elif board_id == ap_board.BINHO_NOVA:
243246
from adafruit_blinka.board.binho_nova import *
244247

src/busio.py

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -151,6 +151,8 @@ def init(self, scl, sda, frequency):
151151
frequency = None # Set to None if default to avoid triggering warning
152152
elif detector.board.ftdi_ft2232h:
153153
from adafruit_blinka.microcontroller.ftdi_mpsse.mpsse.i2c import I2C as _I2C
154+
elif detector.board.ftdi_ft4232h:
155+
from adafruit_blinka.microcontroller.ftdi_mpsse.mpsse.i2c import I2C as _I2C
154156
else:
155157
from adafruit_blinka.microcontroller.generic_micropython.i2c import (
156158
I2C as _I2C,
@@ -358,6 +360,8 @@ def __init__(self, clock, MOSI=None, MISO=None):
358360
from adafruit_blinka.microcontroller.generic_linux.spi import SPI as _SPI
359361
elif detector.board.ftdi_ft2232h:
360362
from adafruit_blinka.microcontroller.ftdi_mpsse.mpsse.spi import SPI as _SPI
363+
elif detector.board.ftdi_ft4232h:
364+
from adafruit_blinka.microcontroller.ftdi_mpsse.mpsse.spi import SPI as _SPI
361365
elif detector.board.OS_AGNOSTIC_BOARD:
362366
from adafruit_blinka.microcontroller.generic_agnostic_board.spi import (
363367
SPI as _SPI,
@@ -396,6 +400,10 @@ def configure(self, baudrate=100000, polarity=0, phase=0, bits=8):
396400
from adafruit_blinka.microcontroller.ftdi_mpsse.mpsse.spi import (
397401
SPI as _SPI,
398402
)
403+
elif detector.board.ftdi_ft4232h:
404+
from adafruit_blinka.microcontroller.ftdi_mpsse.mpsse.spi import (
405+
SPI as _SPI,
406+
)
399407
elif detector.board.binho_nova:
400408
from adafruit_blinka.microcontroller.nova.spi import SPI as _SPI
401409
elif detector.board.greatfet_one:

src/digitalio.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -126,6 +126,8 @@
126126
from adafruit_blinka.microcontroller.ftdi_mpsse.ft232h.pin import Pin
127127
elif detector.board.ftdi_ft2232h:
128128
from adafruit_blinka.microcontroller.ftdi_mpsse.ft2232h.pin import Pin
129+
elif detector.board.ftdi_ft4232h:
130+
from adafruit_blinka.microcontroller.ftdi_mpsse.ft4232h.pin import Pin
129131
elif detector.board.binho_nova:
130132
from adafruit_blinka.microcontroller.nova.pin import Pin
131133
elif detector.board.greatfet_one:

0 commit comments

Comments
 (0)