Skip to content

Commit 3022803

Browse files
Chuckdueytingleby
authored andcommitted
Adding in RPI 5 support
Signed-off-by: Chuckduey <[email protected]>
1 parent 3c288a0 commit 3022803

File tree

2 files changed

+15
-2
lines changed

2 files changed

+15
-2
lines changed

include/arm/raspberry_pi.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ extern "C" {
2626
#define MRAA_RASPBERRY_PI3_A_PLUS_PINCOUNT 41
2727
#define MRAA_RASPBERRY_PI4_B_PINCOUNT 41
2828
#define MRAA_RASPBERRY_PI_400_PINCOUNT 41
29-
29+
#define MRAA_RASPBERRY_PI5_B_PINCOUNT 41
3030
mraa_board_t *
3131
mraa_raspberry_pi();
3232

src/arm/raspberry_pi.c

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@
3030
#define PLATFORM_NAME_RASPBERRY_PI3_A_PLUS "Raspberry Pi 3 Model A+"
3131
#define PLATFORM_NAME_RASPBERRY_PI4_B "Raspberry Pi 4 Model B"
3232
#define PLATFORM_NAME_RASPBERRY_PI_400 "Raspberry Pi 400"
33+
#define PLATFORM_NAME_RASPBERRY_PI5_B "Raspberry Pi 5 Model B"
3334
#define PLATFORM_RASPBERRY_PI_B_REV_1 1
3435
#define PLATFORM_RASPBERRY_PI_A_REV_2 2
3536
#define PLATFORM_RASPBERRY_PI_B_REV_2 3
@@ -44,6 +45,7 @@
4445
#define PLATFORM_RASPBERRY_PI3_A_PLUS 12
4546
#define PLATFORM_RASPBERRY_PI4_B 13
4647
#define PLATFORM_RASPBERRY_PI_400 14
48+
#define PLATFORM_RASPBERRY_PI5_B 15
4749
#define MMAP_PATH "/dev/mem"
4850
#define BCM2835_PERI_BASE 0x20000000
4951
#define BCM2836_PERI_BASE 0x3f000000
@@ -523,6 +525,12 @@ mraa_raspberry_pi()
523525
platform_detected = PLATFORM_RASPBERRY_PI_400;
524526
b->phy_pin_count = MRAA_RASPBERRY_PI_400_PINCOUNT;
525527
peripheral_base = BCM2837_PERI_BASE;
528+
block_size = BCM2837_BLOCK_SIZE;
529+
} else if (strstr(line, "c04170") || strstr(line,"d04170")) {
530+
b->platform_name = PLATFORM_NAME_RASPBERRY_PI5_B;
531+
platform_detected = PLATFORM_RASPBERRY_PI5_B;
532+
b->phy_pin_count = MRAA_RASPBERRY_PI5_B_PINCOUNT;
533+
peripheral_base = BCM2837_PERI_BASE;
526534
block_size = BCM2837_BLOCK_SIZE;
527535
} else {
528536
b->platform_name = PLATFORM_NAME_RASPBERRY_PI_B_REV_1;
@@ -602,6 +610,10 @@ mraa_raspberry_pi()
602610
b->platform_name = PLATFORM_NAME_RASPBERRY_PI_400;
603611
platform_detected = PLATFORM_RASPBERRY_PI_400;
604612
b->phy_pin_count = MRAA_RASPBERRY_PI_400_PINCOUNT;
613+
} else if (mraa_file_contains(compatible_path, "raspberrypi,5-model-b")) {
614+
b->platform_name = PLATFORM_NAME_RASPBERRY_PI5_B;
615+
platform_detected = PLATFORM_RASPBERRY_PI5_B;
616+
b->phy_pin_count = MRAA_RASPBERRY_PI5_B_PINCOUNT;
605617
}
606618
}
607619

@@ -872,7 +884,8 @@ mraa_raspberry_pi()
872884
(platform_detected == PLATFORM_RASPBERRY_PI3_B_PLUS) ||
873885
(platform_detected == PLATFORM_RASPBERRY_PI3_A_PLUS) ||
874886
(platform_detected == PLATFORM_RASPBERRY_PI4_B) ||
875-
(platform_detected == PLATFORM_RASPBERRY_PI_400)) {
887+
(platform_detected == PLATFORM_RASPBERRY_PI_400) ||
888+
(platform_detected == PLATFORM_RASPBERRY_PI5_B) ) {
876889

877890
strncpy(b->pins[27].name, "ID_SD", MRAA_PIN_NAME_SIZE);
878891
b->pins[27].capabilities = (mraa_pincapabilities_t){ 1, 0, 0, 0, 0, 0, 0, 0 };

0 commit comments

Comments
 (0)