Skip to content

Commit f09cd94

Browse files
authored
Merge pull request #5676 from tannewt/rpi_uart
Full UART support for RPI
2 parents 45caaa8 + ab4f789 commit f09cd94

File tree

13 files changed

+269
-55
lines changed

13 files changed

+269
-55
lines changed

main.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,7 @@
5656
#include "supervisor/shared/safe_mode.h"
5757
#include "supervisor/shared/stack.h"
5858
#include "supervisor/shared/status_leds.h"
59+
#include "supervisor/shared/tick.h"
5960
#include "supervisor/shared/traceback.h"
6061
#include "supervisor/shared/translate.h"
6162
#include "supervisor/shared/workflow.h"

ports/broadcom/Makefile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -166,7 +166,7 @@ $(BUILD)/firmware.disk.img.zip: $(BUILD)/kernel8.img
166166
$(Q)parted -s $(BUILD)/circuitpython-disk.img mkpart primary fat32 0% 100%
167167
$(Q)mkfs.fat -F 32 -n BOOT --offset=2048 $(BUILD)/circuitpython-disk.img
168168

169-
$(Q)mcopy -i $(BUILD)/circuitpython-disk.img@@1M config.txt firmware/bootcode.bin firmware/fixup* firmware/start* ::
169+
$(Q)mcopy -i $(BUILD)/circuitpython-disk.img@@1M config.txt firmware/bootcode.bin firmware/fixup* firmware/start* firmware/*.dtb ::
170170
$(Q)mcopy -i $(BUILD)/circuitpython-disk.img@@1M $(BUILD)/kernel8.img ::
171171
$(Q)zip $@ $(BUILD)/circuitpython-disk.img
172172
$(Q)rm $(BUILD)/circuitpython-disk.img

ports/broadcom/boards/raspberrypi_cm4io/mpconfigboard.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,3 +2,5 @@
22

33
#define DEFAULT_I2C_BUS_SCL (&pin_GPIO3)
44
#define DEFAULT_I2C_BUS_SDA (&pin_GPIO2)
5+
6+
#define MICROPY_HW_LED_STATUS (&pin_GPIO42)

ports/broadcom/boards/raspberrypi_cm4io/pins.c

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,8 @@ STATIC const mp_rom_map_elem_t board_global_dict_table[] = {
5757
{ MP_ROM_QSTR(MP_QSTR_D26), MP_ROM_PTR(&pin_GPIO26) },
5858
{ MP_ROM_QSTR(MP_QSTR_D27), MP_ROM_PTR(&pin_GPIO27) },
5959

60+
{ MP_ROM_QSTR(MP_QSTR_LED), MP_ROM_PTR(&pin_GPIO42) },
61+
6062
{ MP_ROM_QSTR(MP_QSTR_I2C), MP_ROM_PTR(&board_i2c_obj) },
6163
{ MP_ROM_QSTR(MP_QSTR_DISPLAY), MP_ROM_PTR(&displays[0].display)},
6264
};

ports/broadcom/boards/raspberrypi_pi4b/mpconfigboard.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,3 +2,5 @@
22

33
#define DEFAULT_I2C_BUS_SCL (&pin_GPIO3)
44
#define DEFAULT_I2C_BUS_SDA (&pin_GPIO2)
5+
6+
#define MICROPY_HW_LED_STATUS (&pin_GPIO42)

ports/broadcom/boards/raspberrypi_pi4b/mpconfigboard.mk

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,4 +3,4 @@ USB_PID = 0xF001
33
USB_PRODUCT = "Raspberry Pi 4B"
44
USB_MANUFACTURER = "Raspberry Pi"
55

6-
CHIP_VARIANT = bcm2711
6+
CHIP_VARIANT = "bcm2711"

ports/broadcom/boards/raspberrypi_pi4b/pins.c

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,8 @@ STATIC const mp_rom_map_elem_t board_global_dict_table[] = {
5757
{ MP_ROM_QSTR(MP_QSTR_D26), MP_ROM_PTR(&pin_GPIO26) },
5858
{ MP_ROM_QSTR(MP_QSTR_D27), MP_ROM_PTR(&pin_GPIO27) },
5959

60+
{ MP_ROM_QSTR(MP_QSTR_LED), MP_ROM_PTR(&pin_GPIO42) },
61+
6062
{ MP_ROM_QSTR(MP_QSTR_I2C), MP_ROM_PTR(&board_i2c_obj) },
6163
{ MP_ROM_QSTR(MP_QSTR_DISPLAY), MP_ROM_PTR(&displays[0].display)},
6264
};

ports/broadcom/boards/raspberrypi_zero2w/mpconfigboard.mk

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,4 +3,4 @@ USB_PID = 0xF002
33
USB_PRODUCT = "Raspberry Pi Zero 2W"
44
USB_MANUFACTURER = "Raspberry Pi"
55

6-
CHIP_VARIANT = rp3a0
6+
CHIP_VARIANT = "bcm2837"

ports/broadcom/common-hal/busio/I2C.c

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,8 @@ void common_hal_busio_i2c_construct(busio_i2c_obj_t *self,
7272
uint8_t sda_alt = 0;
7373
for (scl_alt = 0; scl_alt < 6; scl_alt++) {
7474
if (scl->functions[scl_alt].type != PIN_FUNCTION_I2C ||
75-
i2c_in_use[scl->functions[scl_alt].index]) {
75+
i2c_in_use[scl->functions[scl_alt].index] ||
76+
scl->functions[scl_alt].function != I2C_FUNCTION_SCL) {
7677
continue;
7778
}
7879
for (sda_alt = 0; sda_alt < 6; sda_alt++) {

0 commit comments

Comments
 (0)