Skip to content

Commit 8a37e75

Browse files
nascstingleby
authored andcommitted
platform: add radxa zero3 support
Signed-off-by: Nascs <[email protected]>
1 parent a62c094 commit 8a37e75

File tree

7 files changed

+37
-4
lines changed

7 files changed

+37
-4
lines changed

README.md

+2-1
Original file line numberDiff line numberDiff line change
@@ -46,13 +46,14 @@ ARM
4646
* [96Boards](../master/docs/96boards.md)
4747
* [ADLINK IPi-SMARC ARM](../master/docs/adlink_ipi_arm.md)
4848
* [Radxa CM3](../master/docs/radxa_cm3.md)
49+
* [Radxa CM5 IO](../master/docs/radxa_cm5_io.md)
4950
* [Radxa E25](../master/docs/radxa_e25.md)
5051
* [Radxa ROCK 3A](../master/docs/radxa_rock_3a.md)
5152
* [Radxa ROCK 3B](../master/docs/radxa_rock_3b.md)
5253
* [Radxa ROCK 3C](../master/docs/radxa_rock_3c.md)
5354
* [Radxa ROCK 5A](../master/docs/radxa_rock_5a.md)
5455
* [Radxa ROCK 5B](../master/docs/radxa_rock_5b.md)
55-
* [Radxa CM5 IO](../master/docs/radxa_cm5_io.md)
56+
* [Radxa ZERO3](../master/docs/radxa_zero3.md)
5657
* [Rock Pi 4](../master/docs/rockpi4.md)
5758
* [Orange Pi Prime](../master/docs/orange_pi_prime.md)
5859

docs/index.java.md

+1
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,7 @@ Specific platform information for supported platforms is documented here:
6262
- @ref radxa_rock_3c
6363
- @ref radxa_rock_5a
6464
- @ref radxa_rock_5b
65+
- @ref radxa_zero3
6566
- @ref rockpi4
6667

6768
## DEBUGGING

docs/index.md

+1
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,7 @@ Specific platform information for supported platforms is documented here:
7070
- @ref radxa_rock_3c
7171
- @ref radxa_rock_5a
7272
- @ref radxa_rock_5b
73+
- @ref radxa_zero3
7374
- @ref rockpi4
7475

7576
## DEBUGGING

docs/radxa_zero3.md

+20
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
Radxa ZERO 3 {#_Radxa}
2+
=====================
3+
4+
Radxa ZERO 3 is an ultra-small, versatile platform that can be used for a wide variety of applications, including IoT devices, machine learning edge computing, home automation, education, and entertainment.
5+
6+
The ZERO 3W and ZERO 3E differ only in storage and network interfaces.
7+
8+
Pin Mapping
9+
-----------
10+
11+
The Radxa ZERO 3's GPIO pinout is compatible with the [Radxa ROCK 3C](./radxa_rock_3c.md).
12+
13+
Supports
14+
--------
15+
16+
You can find additional product support in the following channels:
17+
18+
- [Product Info](https://docs.radxa.com/en/zero/zero3)
19+
- [Forums](https://forum.radxa.com/c/rock3)
20+
- [Github](https://github.com/radxa)

include/arm/radxa_rock_3c.h

+1
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ extern "C" {
2121
#define MRAA_RADXA_ROCK_3C_AIO_COUNT 0
2222
#define MRAA_RADXA_ROCK_3C_PIN_COUNT 40
2323
#define PLATFORM_NAME_RADXA_ROCK_3C "Radxa ROCK3 Model C"
24+
#define PLATFORM_NAME_RADXA_ZERO3 "Radxa ZERO 3"
2425

2526
mraa_board_t *
2627
mraa_radxa_rock_3c();

src/arm/arm.c

+2-1
Original file line numberDiff line numberDiff line change
@@ -110,7 +110,8 @@ mraa_arm_platform()
110110
platform_type = MRAA_RADXA_ROCK_3A;
111111
else if (mraa_file_contains("/proc/device-tree/model", PLATFORM_NAME_RADXA_ROCK_3B))
112112
platform_type = MRAA_RADXA_ROCK_3B;
113-
else if (mraa_file_contains("/proc/device-tree/model", PLATFORM_NAME_RADXA_ROCK_3C))
113+
else if (mraa_file_contains("/proc/device-tree/model", PLATFORM_NAME_RADXA_ROCK_3C) ||
114+
mraa_file_contains("/proc/device-tree/model", PLATFORM_NAME_RADXA_ZERO3))
114115
platform_type = MRAA_RADXA_ROCK_3C;
115116
else if (mraa_file_contains("/proc/device-tree/model", PLATFORM_NAME_RADXA_ROCK_5A))
116117
platform_type = MRAA_RADXA_ROCK_5A;

src/arm/radxa_rock_3c.c

+10-2
Original file line numberDiff line numberDiff line change
@@ -49,11 +49,19 @@ mraa_radxa_rock_3c()
4949
return NULL;
5050
}
5151

52+
if (mraa_file_contains("/proc/device-tree/model", PLATFORM_NAME_RADXA_ROCK_3C)) {
53+
b->platform_name = PLATFORM_NAME_RADXA_ROCK_3C;
54+
} else if (mraa_file_contains("/proc/device-tree/model", PLATFORM_NAME_RADXA_ZERO3)) {
55+
b->platform_name = PLATFORM_NAME_RADXA_ZERO3;
56+
} else {
57+
syslog(LOG_ERR, "An unknown product detected. Fail early...");
58+
free(b);
59+
return NULL;
60+
}
61+
5262
// pin mux for buses are setup by default by kernel so tell mraa to ignore them
5363
b->no_bus_mux = 1;
5464
b->phy_pin_count = MRAA_RADXA_ROCK_3C_PIN_COUNT + 1;
55-
56-
b->platform_name = PLATFORM_NAME_RADXA_ROCK_3C;
5765
b->chardev_capable = 1;
5866

5967
// UART

0 commit comments

Comments
 (0)