未验证 提交 9cc3577d 编写于 作者: Ł Łukasz 提交者: GitHub

Add driver for Radxa Rock Pi 4B Plus (#1918)

* Add driver for Radxa Rock Pi 4B Plus

* make the class as public

* fix formatting

* add `Board specific drivers` to readme

* driver name and link to source

* Fix markdown error
Co-authored-by: NPatrick Grawehr <Patrick.Grawehr@leica-geosystems.com>
上级 ad8b2c6f
// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the MIT license.
using System;
namespace Iot.Device.Gpio.Drivers
{
/// <summary>
/// A GPIO driver for the Rock Pi 4B Plus.
/// </summary>
/// <remarks>
/// SoC: Rockchip RK3399
/// </remarks>
public class RockPi4bPlusDriver : Rk3399Driver
{
private static readonly int[] _pinNumberConverter = new int[]
{
-1, -1, MapPinNumber(2, 'A', 7), -1, MapPinNumber(2, 'B', 0), -1, MapPinNumber(2, 'B', 3),
MapPinNumber(4, 'C', 4), -1, MapPinNumber(4, 'C', 3), MapPinNumber(4, 'C', 2), MapPinNumber(4, 'A', 3),
MapPinNumber(4, 'C', 6), -1, MapPinNumber(4, 'C', 5), MapPinNumber(4, 'D', 2), -1, MapPinNumber(4, 'D', 4),
MapPinNumber(1, 'B', 0), -1, MapPinNumber(1, 'A', 7), MapPinNumber(4, 'D', 5), MapPinNumber(1, 'B', 1),
MapPinNumber(1, 'B', 2), -1, -1, MapPinNumber(2, 'A', 0), MapPinNumber(2, 'A', 1), MapPinNumber(2, 'B', 2),
-1, MapPinNumber(2, 'B', 1), MapPinNumber(3, 'C', 0), MapPinNumber(2, 'B', 4), -1, MapPinNumber(4, 'A', 5),
MapPinNumber(4, 'A', 4), MapPinNumber(4, 'D', 6), MapPinNumber(4, 'A', 6), -1, MapPinNumber(4, 'A', 7)
};
/// <inheritdoc/>
protected override int PinCount => 40;
/// <inheritdoc/>
protected override int ConvertPinNumberToLogicalNumberingScheme(int pinNumber)
{
int num = _pinNumberConverter[pinNumber];
return num != -1 ? num : throw new ArgumentException($"Board (header) pin {pinNumber} is not a GPIO pin on the {GetType().Name} device.", nameof(pinNumber));
}
}
}
...@@ -7,6 +7,17 @@ This project contains some **full function(PULL-UP, PULL-DOWN)** generic GPIO dr ...@@ -7,6 +7,17 @@ This project contains some **full function(PULL-UP, PULL-DOWN)** generic GPIO dr
* For Allwinner SoCs: [SunxiDriver](Drivers/Sunxi/README.md) * For Allwinner SoCs: [SunxiDriver](Drivers/Sunxi/README.md)
* For Rockchip SoCs: [RockchipDriver](Drivers/Rockchip/README.md) * For Rockchip SoCs: [RockchipDriver](Drivers/Rockchip/README.md)
## Board specific drivers
| Board | Driver |
| :-: | :-: |
| Orange Pi 4 | [OrangePi4Driver](./Drivers/OrangePi4Driver.cs) |
| Orange Pi Lite | [OrangePiLiteDriver](./Drivers/OrangePiLiteDriver.cs) |
| Orange Pi Lite 2 | [OrangePiLite2Driver](./Drivers/OrangePiLite2Driver.cs) |
| Orange Pi Zero | [OrangePiZeroDriver](./Drivers/OrangePiZeroDriver.cs) |
| Orange Pi Zero 2 | [OrangePiZero2Driver](./Drivers/OrangePiZero2Driver.cs) |
| Rock Pi 4B Plus | [RockPi4bPlusDriver](./Drivers/RockPi4bPlusDriver.cs) |
## Benchmarks ## Benchmarks
The test uses different GPIO drivers to quickly switch the state of GPIO, and uses an oscilloscope to measure the average frequency of GPIO externally. The test uses different GPIO drivers to quickly switch the state of GPIO, and uses an oscilloscope to measure the average frequency of GPIO externally.
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册