mirror of
https://github.com/lupyuen/pinephone-nuttx.git
synced 2025-01-12 20:58:34 +08:00
109 lines
4.2 KiB
C
109 lines
4.2 KiB
C
// Test Code for MIPI DSI
|
|
// Add `#include "../../pinephone-nuttx/test/test_mipi_dsi.c"` to the end of this file:
|
|
// https://github.com/apache/nuttx/blob/master/arch/arm64/src/a64/mipi_dsi.c
|
|
|
|
void mipi_dsi_test(void) //// TODO: Remove
|
|
{
|
|
// Allocate Packet Buffer
|
|
uint8_t pkt_buf[128];
|
|
memset(pkt_buf, 0, sizeof(pkt_buf));
|
|
|
|
// Test Compose Short Packet (Without Parameter)
|
|
ginfo("Testing Compose Short Packet (Without Parameter)...\n");
|
|
const uint8_t short_pkt[1] = {
|
|
0x11,
|
|
};
|
|
const ssize_t short_pkt_result = mipi_dsi_short_packet(
|
|
pkt_buf, // Packet Buffer
|
|
sizeof(pkt_buf), // Packet Buffer Size
|
|
0, // Virtual Channel
|
|
MIPI_DSI_DCS_SHORT_WRITE, // DCS Command
|
|
short_pkt, // Transmit Buffer
|
|
sizeof(short_pkt) // Buffer Length
|
|
);
|
|
ginfo("Result:\n");
|
|
ginfodumpbuffer("pkt_buf", pkt_buf, short_pkt_result);
|
|
|
|
const uint8_t expected_short_pkt[] = {
|
|
0x05, 0x11, 0x00, 0x36
|
|
};
|
|
DEBUGASSERT(short_pkt_result == sizeof(expected_short_pkt));
|
|
DEBUGASSERT(memcmp(pkt_buf, expected_short_pkt, sizeof(expected_short_pkt)) == 0);
|
|
|
|
// Write to MIPI DSI
|
|
// _ = nuttx_mipi_dsi_dcs_write(
|
|
// null, // Device
|
|
// 0, // Virtual Channel
|
|
// MIPI_DSI_DCS_SHORT_WRITE, // DCS Command
|
|
// &short_pkt, // Transmit Buffer
|
|
// short_pkt.len // Buffer Length
|
|
// );
|
|
|
|
// Test Compose Short Packet (With Parameter)
|
|
ginfo("Testing Compose Short Packet (With Parameter)...\n");
|
|
const uint8_t short_pkt_param[2] = {
|
|
0xbc, 0x4e,
|
|
};
|
|
const ssize_t short_pkt_param_result = mipi_dsi_short_packet(
|
|
pkt_buf, // Packet Buffer
|
|
sizeof(pkt_buf), // Packet Buffer Size
|
|
0, // Virtual Channel
|
|
MIPI_DSI_DCS_SHORT_WRITE_PARAM, // DCS Command
|
|
short_pkt_param, // Transmit Buffer
|
|
sizeof(short_pkt_param) // Buffer Length
|
|
);
|
|
ginfo("Result:\n");
|
|
ginfodumpbuffer("pkt_buf", pkt_buf, short_pkt_param_result);
|
|
|
|
const uint8_t expected_short_pkt_param[] = {
|
|
0x15, 0xbc, 0x4e, 0x35
|
|
};
|
|
DEBUGASSERT(short_pkt_param_result == sizeof(expected_short_pkt_param));
|
|
DEBUGASSERT(memcmp(pkt_buf, expected_short_pkt_param, sizeof(expected_short_pkt_param)) == 0);
|
|
|
|
// Write to MIPI DSI
|
|
// _ = nuttx_mipi_dsi_dcs_write(
|
|
// null, // Device
|
|
// 0, // Virtual Channel
|
|
// MIPI_DSI_DCS_SHORT_WRITE_PARAM, // DCS Command
|
|
// &short_pkt_param, // Transmit Buffer
|
|
// short_pkt_param.len // Buffer Length
|
|
// );
|
|
|
|
// Test Compose Long Packet
|
|
ginfo("Testing Compose Long Packet...\n");
|
|
const uint8_t long_pkt[] = {
|
|
0xe9, 0x82, 0x10, 0x06, 0x05, 0xa2, 0x0a, 0xa5,
|
|
0x12, 0x31, 0x23, 0x37, 0x83, 0x04, 0xbc, 0x27,
|
|
0x38, 0x0c, 0x00, 0x03, 0x00, 0x00, 0x00, 0x0c,
|
|
0x00, 0x03, 0x00, 0x00, 0x00, 0x75, 0x75, 0x31,
|
|
0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x13, 0x88,
|
|
0x64, 0x64, 0x20, 0x88, 0x88, 0x88, 0x88, 0x88,
|
|
0x88, 0x02, 0x88, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
};
|
|
const ssize_t long_pkt_result = mipi_dsi_long_packet(
|
|
pkt_buf, // Packet Buffer
|
|
sizeof(pkt_buf), // Packet Buffer Size
|
|
0, // Virtual Channel
|
|
MIPI_DSI_DCS_LONG_WRITE, // DCS Command
|
|
long_pkt, // Transmit Buffer
|
|
sizeof(long_pkt) // Buffer Length
|
|
);
|
|
ginfo("Result:\n");
|
|
ginfodumpbuffer("pkt_buf", pkt_buf, long_pkt_result);
|
|
|
|
const uint8_t expected_long_pkt[] = {
|
|
0x39, 0x40, 0x00, 0x25, 0xe9, 0x82, 0x10, 0x06,
|
|
0x05, 0xa2, 0x0a, 0xa5, 0x12, 0x31, 0x23, 0x37,
|
|
0x83, 0x04, 0xbc, 0x27, 0x38, 0x0c, 0x00, 0x03,
|
|
0x00, 0x00, 0x00, 0x0c, 0x00, 0x03, 0x00, 0x00,
|
|
0x00, 0x75, 0x75, 0x31, 0x88, 0x88, 0x88, 0x88,
|
|
0x88, 0x88, 0x13, 0x88, 0x64, 0x64, 0x20, 0x88,
|
|
0x88, 0x88, 0x88, 0x88, 0x88, 0x02, 0x88, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0x65, 0x03,
|
|
};
|
|
DEBUGASSERT(long_pkt_result == sizeof(expected_long_pkt));
|
|
DEBUGASSERT(memcmp(pkt_buf, expected_long_pkt, sizeof(expected_long_pkt)) == 0);
|
|
}
|