From 284d882b9db8637dc67773a86e9cf4a8564230a3 Mon Sep 17 00:00:00 2001 From: IvanFarkas Date: Tue, 3 Apr 2018 09:35:03 -0400 Subject: [PATCH] Added Qualcomm DragonBoard 820c support. GPIO ports from DragonBoard 820c Hardware Manual (p16) at https://github.com/sdrobertw/dragonboard820c/blob/master/hardware-docs/files/db820c-user-guide.docx Add Chardev support for DragonBoard 820c Signed-off-by: Ivan Farkas Signed-off-by: malikabhi05 --- docs/96boards.md | 1 + src/arm/96boards.c | 12 ++++-------- src/arm/arm.c | 2 ++ 3 files changed, 7 insertions(+), 8 deletions(-) diff --git a/docs/96boards.md b/docs/96boards.md index 0b8425b..fb90100 100644 --- a/docs/96boards.md +++ b/docs/96boards.md @@ -9,6 +9,7 @@ Board Support ------------- - [DragonBoard 410c](http://www.96boards.org/product/dragonboard410c/) +- [DragonBoard 820c](http://www.96boards.org/product/dragonboard820c/) - [HiKey](http://www.96boards.org/product/hikey/) - [Bubblegum-96](http://www.96boards.org/product/bubblegum-96/) diff --git a/src/arm/96boards.c b/src/arm/96boards.c index 7b16ee1..227a1ea 100644 --- a/src/arm/96boards.c +++ b/src/arm/96boards.c @@ -60,10 +60,12 @@ int db820c_ls_gpio_pins[MRAA_96BOARDS_LS_GPIO_COUNT] = { }; int db820c_chardev_map[MRAA_96BOARDS_LS_GPIO_COUNT][2] = { - { 0, 80 }, { 0, 29 }, { 0, 124 }, { 0, 62 }, { 0, 507 }, { 2, 3 }, + { 0, 80 }, { 0, 29 }, { 0, 124 }, { 0, 24 }, { 0, 62 }, { 2, 3 }, { 0, 10 }, { 0, 8 }, { 0, 25 }, { 0, 26 }, { 0, 23 }, { 0, 133 }, }; +const char* db820c_serialdev[MRAA_96BOARDS_LS_UART_COUNT] = { "/dev/ttyMSM0", "/dev/ttyMSM1" }; + int hikey_ls_gpio_pins[MRAA_96BOARDS_LS_GPIO_COUNT] = { 488, 489, 490, 491, 492, 415, 463, 495, 426, 433, 427, 434, }; @@ -73,11 +75,6 @@ int hikey_chardev_map[MRAA_96BOARDS_LS_GPIO_COUNT][2] = { { 6, 7 }, { 2, 7 }, { 10, 2 }, { 9, 1 }, { 10, 3 }, { 9, 2 }, }; -int hikey_chardev_map[MRAA_96BOARDS_LS_GPIO_COUNT][2] = { - { 2, 0 }, { 2, 1 }, { 2, 2 }, { 2, 3 }, { 2, 4 }, { 12, 7 }, - { 6, 7 }, { 2, 7 }, { 10, 2 }, { 9, 1 }, { 10, 3 }, { 9, 2 }, -}; - const char* hikey_serialdev[MRAA_96BOARDS_LS_UART_COUNT] = { "/dev/ttyAMA2", "/dev/ttyAMA3" }; int bbgum_ls_gpio_pins[MRAA_96BOARDS_LS_GPIO_COUNT] = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 155, 154 }; @@ -228,7 +225,7 @@ mraa_96boards() b->no_bus_mux = 1; b->phy_pin_count = MRAA_96BOARDS_LS_PIN_COUNT + 1; - if (mraa_file_exist(DT_BASE "/model")) { + if (mraa_file_exist(DT_BASE "/model")) { // We are on a modern kernel, great!!!! if (mraa_file_contains(DT_BASE "/model", "Qualcomm Technologies, Inc. APQ 8016 SBC")) { b->platform_name = PLATFORM_NAME_DB410C; @@ -257,7 +254,6 @@ mraa_96boards() } } - // UART b->uart_dev_count = MRAA_96BOARDS_LS_UART_COUNT; b->def_uart_dev = 0; diff --git a/src/arm/arm.c b/src/arm/arm.c index 40eccf5..4fd8ca7 100644 --- a/src/arm/arm.c +++ b/src/arm/arm.c @@ -87,6 +87,8 @@ mraa_arm_platform() if (platform_type == MRAA_UNKNOWN_PLATFORM) { if (mraa_file_contains("/proc/device-tree/compatible", "qcom,apq8016-sbc")) platform_type = MRAA_96BOARDS; + else if (mraa_file_contains("/proc/device-tree/compatible", "arrow,apq8096-db820c")) + platform_type = MRAA_96BOARDS; else if (mraa_file_contains("/proc/device-tree/model", "HiKey Development Board")) platform_type = MRAA_96BOARDS;