Library for interfacing with GPIO, I2C, SPI, Serial, etc

FYI I have just released v1.3.5 of the diozero Java library that includes support for Rockchip RK3399 SoCs - i.e. the Rock 4 family. I have done all my testing on a recently acquired Rock 4C+.
This implementation includes support for high-speed memory mapped GPIO control as well as input event detection using gpio chardev.
I hope some of you find this useful. Please reach out via GitHub if you have any questions, comments or feedback.

Output from running the GpioReadAll utility application:

$ sudo java -cp diozero-sampleapps-1.3.5.jar com.diozero.sampleapps.GpioReadAll
Header: Default
+-----+----------+------+---+--------+----------+--------+---+------+----------+-----+
+ GP# +     Name + Mode + V +  gpiod + Physical + gpiod  + V + Mode + Name     + GP# +
+-----+----------+------+---+--------+----------+--------+---+------+----------+-----+
|     |      3v3 |      |   |        |  1 || 2  |        |   |      | 5v       |     |
|  71 | GPIO2_A7 |   In | 1 |  2:7   |  3 || 4  |        |   |      | 5v       |     |
|  72 | GPIO2_B0 |   In | 1 |  2:8   |  5 || 6  |        |   |      | GND      |     |
|  75 | GPIO2_B3 |   In | 1 |  2:11  |  7 || 8  |  4:20  | 1 | UART | TXD2     | 148 |
|     |      GND |      |   |        |  9 || 10 |  4:19  | 1 | UART | RXD2     | 147 |
| 146 |     PWM0 |   In | 0 |  4:18  | 11 || 12 |  4:3   | 1 | In   | GPIO4_A3 | 131 |
| 150 |     PWM1 |   In | 0 |  4:22  | 13 || 14 |        |   |      | GND      |     |
| 149 | GPIO4_C5 |   In | 0 |  4:21  | 15 || 16 |  4:26  | 0 | In   | GPIO4_D2 | 154 |
|     |      3v3 |      |   |        | 17 || 18 |  4:28  | 0 | In   | GPIO4_D4 | 156 |
|  40 |  SPI1_TX |  SPI | 0 |  1:8   | 19 || 20 |        |   |      | GND      |     |
|  39 |  SPI1_RX |  SPI | 1 |  1:7   | 21 || 22 |  4:29  | 0 | In   | GPIO4_D5 | 157 |
|  41 | SPI1_CLK |  SPI | 0 |  1:9   | 23 || 24 |  1:10  | 1 | SPI  | SPI1_CS0 | 42  |
|     |      GND |      |   |        | 25 || 26 |        |   | In   | ADC_IN0  | 0   |
|  64 | GPIO2_A0 |   In | 1 |  2:0   | 27 || 28 |  2:1   | 1 | In   | GPIO2_A1 | 65  |
|  74 | GPIO2_B2 |   In | 1 |  2:10  | 29 || 30 |        |   |      | GND      |     |
|  73 | GPIO2_B1 |   In | 1 |  2:9   | 31 || 32 |  3:0   | 1 | In   | GPIO3_C0 | 112 |
|  76 | GPIO2_B4 |   In | 1 |  2:12  | 33 || 34 |        |   |      | GND      |     |
| 133 | GPIO4_A5 |   In | 1 |  4:5   | 35 || 36 |  4:4   | 1 | In   | GPIO4_A4 | 132 |
| 158 | GPIO4_D6 |   In | 0 |  4:30  | 37 || 38 |  4:6   | 1 | In   | GPIO4_A6 | 134 |
|     |      GND |      |   |        | 39 || 40 |  4:7   | 1 | In   | GPIO4_A7 | 135 |
+-----+----------+------+---+--------+----------+--------+---+------+----------+-----+