diff --git a/README.md b/README.md index 26ed63479..91e781190 100644 --- a/README.md +++ b/README.md @@ -52,6 +52,7 @@ ARM * [Radxa ROCK 3C](../master/docs/radxa_rock_3c.md) * [Radxa ROCK 5A](../master/docs/radxa_rock_5a.md) * [Radxa ROCK 5B](../master/docs/radxa_rock_5b.md) +* [Radxa ROCK 5C](../master/docs/radxa_rock_5c.md) * [Radxa CM5 IO](../master/docs/radxa_cm5_io.md) * [Rock Pi 4](../master/docs/rockpi4.md) * [Orange Pi Prime](../master/docs/orange_pi_prime.md) diff --git a/docs/index.java.md b/docs/index.java.md index 033602aa5..f67237491 100644 --- a/docs/index.java.md +++ b/docs/index.java.md @@ -62,6 +62,7 @@ Specific platform information for supported platforms is documented here: - @ref radxa_rock_3c - @ref radxa_rock_5a - @ref radxa_rock_5b +- @ref radxa_rock_5c - @ref rockpi4 ## DEBUGGING diff --git a/docs/index.md b/docs/index.md index 841ade12b..dd423e283 100644 --- a/docs/index.md +++ b/docs/index.md @@ -70,6 +70,7 @@ Specific platform information for supported platforms is documented here: - @ref radxa_rock_3c - @ref radxa_rock_5a - @ref radxa_rock_5b +- @ref radxa_rock_5c - @ref rockpi4 ## DEBUGGING diff --git a/docs/radxa_rock_5c.md b/docs/radxa_rock_5c.md new file mode 100644 index 000000000..84da9f3bd --- /dev/null +++ b/docs/radxa_rock_5c.md @@ -0,0 +1,18 @@ +Radxa ROCK 5 Model C {#_Radxa} +============================= + +Radxa ROCK 5C is a compact single-board computer (SBC) that offers a range of cutting-edge features, characteristics, and expansion options. It is the ideal choice for makers, IoT enthusiasts, hobbyists, gamers, PC users, and anyone in need of a high-spec platform with excellent performance and reliability. Radxa ROCK 5C comes in two versions: a standard version based on RK3588S2 and a Lite version based on RK3582. The standard version and Lite version share most of the features, the only difference lies in the SoC (System-on-Chip). + +Pin Mapping +----------- + +The Radxa ROCK 5C 40-pin headers' pinout is compatible with the [Radxa ROCK 5A 40-pin headers' pinout](./radxa_rock_5a.md#pin-mapping). + +Resources +--------- + +You can find additional product support in the following channels: + +- [Product Info](https://docs.radxa.com/en/rock5/rock5c) +- [Forums](https://forum.radxa.com/c/rock5) +- [Github](https://github.com/radxa) diff --git a/include/arm/radxa_rock_5a.h b/include/arm/radxa_rock_5a.h index 6b119f749..67eb8bc6b 100644 --- a/include/arm/radxa_rock_5a.h +++ b/include/arm/radxa_rock_5a.h @@ -21,6 +21,7 @@ extern "C" { #define MRAA_RADXA_ROCK_5A_AIO_COUNT 1 #define MRAA_RADXA_ROCK_5A_PIN_COUNT 40 #define PLATFORM_NAME_RADXA_ROCK_5A "Radxa ROCK 5A" +#define PLATFORM_NAME_RADXA_ROCK_5C "Radxa ROCK 5C" mraa_board_t * mraa_radxa_rock_5a(); diff --git a/src/arm/arm.c b/src/arm/arm.c index 9a20c168a..335127c65 100644 --- a/src/arm/arm.c +++ b/src/arm/arm.c @@ -112,7 +112,8 @@ mraa_arm_platform() platform_type = MRAA_RADXA_ROCK_3B; else if (mraa_file_contains("/proc/device-tree/model", PLATFORM_NAME_RADXA_ROCK_3C)) platform_type = MRAA_RADXA_ROCK_3C; - else if (mraa_file_contains("/proc/device-tree/model", PLATFORM_NAME_RADXA_ROCK_5A)) + else if (mraa_file_contains("/proc/device-tree/model", PLATFORM_NAME_RADXA_ROCK_5A) || + mraa_file_contains("/proc/device-tree/model", PLATFORM_NAME_RADXA_ROCK_5C)) platform_type = MRAA_RADXA_ROCK_5A; else if (mraa_file_contains("/proc/device-tree/model", PLATFORM_NAME_RADXA_ROCK_5B)) platform_type = MRAA_RADXA_ROCK_5B; diff --git a/src/arm/radxa_rock_5a.c b/src/arm/radxa_rock_5a.c index 15b71f82a..098bd9601 100644 --- a/src/arm/radxa_rock_5a.c +++ b/src/arm/radxa_rock_5a.c @@ -55,9 +55,18 @@ mraa_radxa_rock_5a() b->no_bus_mux = 1; b->phy_pin_count = MRAA_RADXA_ROCK_5A_PIN_COUNT + 1; + if (mraa_file_contains("/proc/device-tree/model", PLATFORM_NAME_RADXA_ROCK_5A)) { + b->platform_name = PLATFORM_NAME_RADXA_ROCK_5A; + } else if (mraa_file_contains("/proc/device-tree/model", PLATFORM_NAME_RADXA_ROCK_5C)) { + b->platform_name = PLATFORM_NAME_RADXA_ROCK_5C; + } else { + syslog(LOG_ERR, "An unknown product detected. Fail early..."); + free(b); + return NULL; + } + // UART b->uart_dev_count = MRAA_RADXA_ROCK_5A_UART_COUNT; - b->platform_name = PLATFORM_NAME_RADXA_ROCK_5A; b->def_uart_dev = 0; b->uart_dev[0].index = 2; b->uart_dev[1].index = 4;