@@ -26,7 +26,7 @@ extern "C" {
|
|||||||
#define MRAA_RASPBERRY_PI3_A_PLUS_PINCOUNT 41
|
#define MRAA_RASPBERRY_PI3_A_PLUS_PINCOUNT 41
|
||||||
#define MRAA_RASPBERRY_PI4_B_PINCOUNT 41
|
#define MRAA_RASPBERRY_PI4_B_PINCOUNT 41
|
||||||
#define MRAA_RASPBERRY_PI_400_PINCOUNT 41
|
#define MRAA_RASPBERRY_PI_400_PINCOUNT 41
|
||||||
|
#define MRAA_RASPBERRY_PI5_B_PINCOUNT 41
|
||||||
mraa_board_t *
|
mraa_board_t *
|
||||||
mraa_raspberry_pi();
|
mraa_raspberry_pi();
|
||||||
|
|
||||||
|
|||||||
@@ -30,6 +30,7 @@
|
|||||||
#define PLATFORM_NAME_RASPBERRY_PI3_A_PLUS "Raspberry Pi 3 Model A+"
|
#define PLATFORM_NAME_RASPBERRY_PI3_A_PLUS "Raspberry Pi 3 Model A+"
|
||||||
#define PLATFORM_NAME_RASPBERRY_PI4_B "Raspberry Pi 4 Model B"
|
#define PLATFORM_NAME_RASPBERRY_PI4_B "Raspberry Pi 4 Model B"
|
||||||
#define PLATFORM_NAME_RASPBERRY_PI_400 "Raspberry Pi 400"
|
#define PLATFORM_NAME_RASPBERRY_PI_400 "Raspberry Pi 400"
|
||||||
|
#define PLATFORM_NAME_RASPBERRY_PI5_B "Raspberry Pi 5 Model B"
|
||||||
#define PLATFORM_RASPBERRY_PI_B_REV_1 1
|
#define PLATFORM_RASPBERRY_PI_B_REV_1 1
|
||||||
#define PLATFORM_RASPBERRY_PI_A_REV_2 2
|
#define PLATFORM_RASPBERRY_PI_A_REV_2 2
|
||||||
#define PLATFORM_RASPBERRY_PI_B_REV_2 3
|
#define PLATFORM_RASPBERRY_PI_B_REV_2 3
|
||||||
@@ -44,6 +45,7 @@
|
|||||||
#define PLATFORM_RASPBERRY_PI3_A_PLUS 12
|
#define PLATFORM_RASPBERRY_PI3_A_PLUS 12
|
||||||
#define PLATFORM_RASPBERRY_PI4_B 13
|
#define PLATFORM_RASPBERRY_PI4_B 13
|
||||||
#define PLATFORM_RASPBERRY_PI_400 14
|
#define PLATFORM_RASPBERRY_PI_400 14
|
||||||
|
#define PLATFORM_RASPBERRY_PI5_B 15
|
||||||
#define MMAP_PATH "/dev/mem"
|
#define MMAP_PATH "/dev/mem"
|
||||||
#define BCM2835_PERI_BASE 0x20000000
|
#define BCM2835_PERI_BASE 0x20000000
|
||||||
#define BCM2836_PERI_BASE 0x3f000000
|
#define BCM2836_PERI_BASE 0x3f000000
|
||||||
@@ -523,6 +525,12 @@ mraa_raspberry_pi()
|
|||||||
platform_detected = PLATFORM_RASPBERRY_PI_400;
|
platform_detected = PLATFORM_RASPBERRY_PI_400;
|
||||||
b->phy_pin_count = MRAA_RASPBERRY_PI_400_PINCOUNT;
|
b->phy_pin_count = MRAA_RASPBERRY_PI_400_PINCOUNT;
|
||||||
peripheral_base = BCM2837_PERI_BASE;
|
peripheral_base = BCM2837_PERI_BASE;
|
||||||
|
block_size = BCM2837_BLOCK_SIZE;
|
||||||
|
} else if (strstr(line, "c04170") || strstr(line,"d04170")) {
|
||||||
|
b->platform_name = PLATFORM_NAME_RASPBERRY_PI5_B;
|
||||||
|
platform_detected = PLATFORM_RASPBERRY_PI5_B;
|
||||||
|
b->phy_pin_count = MRAA_RASPBERRY_PI5_B_PINCOUNT;
|
||||||
|
peripheral_base = BCM2837_PERI_BASE;
|
||||||
block_size = BCM2837_BLOCK_SIZE;
|
block_size = BCM2837_BLOCK_SIZE;
|
||||||
} else {
|
} else {
|
||||||
b->platform_name = PLATFORM_NAME_RASPBERRY_PI_B_REV_1;
|
b->platform_name = PLATFORM_NAME_RASPBERRY_PI_B_REV_1;
|
||||||
@@ -602,6 +610,10 @@ mraa_raspberry_pi()
|
|||||||
b->platform_name = PLATFORM_NAME_RASPBERRY_PI_400;
|
b->platform_name = PLATFORM_NAME_RASPBERRY_PI_400;
|
||||||
platform_detected = PLATFORM_RASPBERRY_PI_400;
|
platform_detected = PLATFORM_RASPBERRY_PI_400;
|
||||||
b->phy_pin_count = MRAA_RASPBERRY_PI_400_PINCOUNT;
|
b->phy_pin_count = MRAA_RASPBERRY_PI_400_PINCOUNT;
|
||||||
|
} else if (mraa_file_contains(compatible_path, "raspberrypi,5-model-b")) {
|
||||||
|
b->platform_name = PLATFORM_NAME_RASPBERRY_PI5_B;
|
||||||
|
platform_detected = PLATFORM_RASPBERRY_PI5_B;
|
||||||
|
b->phy_pin_count = MRAA_RASPBERRY_PI5_B_PINCOUNT;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -872,7 +884,8 @@ mraa_raspberry_pi()
|
|||||||
(platform_detected == PLATFORM_RASPBERRY_PI3_B_PLUS) ||
|
(platform_detected == PLATFORM_RASPBERRY_PI3_B_PLUS) ||
|
||||||
(platform_detected == PLATFORM_RASPBERRY_PI3_A_PLUS) ||
|
(platform_detected == PLATFORM_RASPBERRY_PI3_A_PLUS) ||
|
||||||
(platform_detected == PLATFORM_RASPBERRY_PI4_B) ||
|
(platform_detected == PLATFORM_RASPBERRY_PI4_B) ||
|
||||||
(platform_detected == PLATFORM_RASPBERRY_PI_400)) {
|
(platform_detected == PLATFORM_RASPBERRY_PI_400) ||
|
||||||
|
(platform_detected == PLATFORM_RASPBERRY_PI5_B) ) {
|
||||||
|
|
||||||
strncpy(b->pins[27].name, "ID_SD", MRAA_PIN_NAME_SIZE);
|
strncpy(b->pins[27].name, "ID_SD", MRAA_PIN_NAME_SIZE);
|
||||||
b->pins[27].capabilities = (mraa_pincapabilities_t){ 1, 0, 0, 0, 0, 0, 0, 0 };
|
b->pins[27].capabilities = (mraa_pincapabilities_t){ 1, 0, 0, 0, 0, 0, 0, 0 };
|
||||||
|
|||||||
Reference in New Issue
Block a user