未验证 提交 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
* For Allwinner SoCs: [SunxiDriver](Drivers/Sunxi/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
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.
先完成此消息的编辑!
想要评论请 注册