This is an automated email from the ASF dual-hosted git repository.

xiaoxiang pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/nuttx.git

commit a83e7ced77412483b79bb93189b5e0eb190c9409
Author: Henry Rovner <[email protected]>
AuthorDate: Thu Jul 4 14:26:35 2024 -0700

    ox64: Add adc example config
---
 arch/risc-v/src/bl808/bl808_gpadc.c            |  35 +++++++-
 arch/risc-v/src/bl808/bl808_start.c            |   1 -
 boards/risc-v/bl808/ox64/configs/adc/defconfig | 112 +++++++++++++++++++++++++
 3 files changed, 143 insertions(+), 5 deletions(-)

diff --git a/arch/risc-v/src/bl808/bl808_gpadc.c 
b/arch/risc-v/src/bl808/bl808_gpadc.c
index cd36d34020..a051411dde 100644
--- a/arch/risc-v/src/bl808/bl808_gpadc.c
+++ b/arch/risc-v/src/bl808/bl808_gpadc.c
@@ -43,6 +43,7 @@
 #include "riscv_internal.h"
 #include "chip.h"
 #include "bl808_gpadc.h"
+#include "bl808_gpio.h"
 
 #ifdef CONFIG_BL808_GPADC
 
@@ -161,6 +162,22 @@ static struct adc_ops_s gpadc_ops =
     .ao_ioctl = bl808_gpadc_ioctl
   };
 
+static uint8_t ch_to_gpio_map[12] =
+  {
+    [0] = 17,
+    [1] = 5,
+    [2] = 4,
+    [3] = 11,
+    [4] = 6,
+    [5] = 40,
+    [6] = 12,
+    [7] = 13,
+    [8] = 16,
+    [9] = 18,
+    [10] = 19,
+    [11] = 34
+  };
+
 /****************************************************************************
  * Private Functions
  ****************************************************************************/
@@ -339,17 +356,27 @@ static int bl808_gpadc_setup(struct adc_dev_s *dev)
        channel_idx < priv->nchannels;
        channel_idx++)
     {
+      uint8_t channel = priv->enabled_channels[channel_idx];
+
+      /* If enabling an external channel, configure GPIO */
+
+      if (channel < 12)
+        {
+          int pin = ch_to_gpio_map[channel];
+          bl808_configgpio(pin, GPIO_INPUT
+                           | GPIO_FLOAT
+                           | GPIO_FUNC_ANA);
+        }
+
       if (channel_idx < 6)
         {
           modifyreg32(BL808_GPADC_SCAN_POS1, 0,
-                      (priv->enabled_channels[channel_idx]
-                       << GPADC_SCAN_SHIFT(channel_idx)));
+                      (channel << GPADC_SCAN_SHIFT(channel_idx)));
         }
       else
         {
           modifyreg32(BL808_GPADC_SCAN_POS2, 0,
-                      (priv->enabled_channels[channel_idx]
-                       << GPADC_SCAN_SHIFT(channel_idx)));
+                      (channel << GPADC_SCAN_SHIFT(channel_idx)));
         }
     }
 
diff --git a/arch/risc-v/src/bl808/bl808_start.c 
b/arch/risc-v/src/bl808/bl808_start.c
index 6c01b8e97e..7e0663b603 100644
--- a/arch/risc-v/src/bl808/bl808_start.c
+++ b/arch/risc-v/src/bl808/bl808_start.c
@@ -37,7 +37,6 @@
 #include "bl808_mm_init.h"
 #include "bl808_memorymap.h"
 #include "bl808_serial.h"
-#include "bl808_gpadc.h"
 
 /****************************************************************************
  * Pre-processor Definitions
diff --git a/boards/risc-v/bl808/ox64/configs/adc/defconfig 
b/boards/risc-v/bl808/ox64/configs/adc/defconfig
new file mode 100644
index 0000000000..a58f02d0d0
--- /dev/null
+++ b/boards/risc-v/bl808/ox64/configs/adc/defconfig
@@ -0,0 +1,112 @@
+#
+# This file is autogenerated: PLEASE DO NOT EDIT IT.
+#
+# You can use "make menuconfig" to make any modifications to the installed 
.config file.
+# You can then do "make savedefconfig" to generate a new defconfig file that 
includes your
+# modifications.
+#
+# CONFIG_DISABLE_OS_API is not set
+# CONFIG_NSH_DISABLE_LOSMART is not set
+# CONFIG_STANDARD_SERIAL is not set
+CONFIG_ADC=y
+CONFIG_ANALOG=y
+CONFIG_ARCH="risc-v"
+CONFIG_ARCH_ADDRENV=y
+CONFIG_ARCH_BOARD="ox64"
+CONFIG_ARCH_BOARD_BL808_OX64=y
+CONFIG_ARCH_CHIP="bl808"
+CONFIG_ARCH_CHIP_BL808=y
+CONFIG_ARCH_DATA_NPAGES=128
+CONFIG_ARCH_DATA_VBASE=0x80100000
+CONFIG_ARCH_HEAP_NPAGES=128
+CONFIG_ARCH_HEAP_VBASE=0x80200000
+CONFIG_ARCH_INTERRUPTSTACK=2048
+CONFIG_ARCH_KERNEL_STACKSIZE=3072
+CONFIG_ARCH_PGPOOL_MAPPING=y
+CONFIG_ARCH_PGPOOL_PBASE=0x50600000
+CONFIG_ARCH_PGPOOL_SIZE=4194304
+CONFIG_ARCH_PGPOOL_VBASE=0x50600000
+CONFIG_ARCH_RISCV=y
+CONFIG_ARCH_STACKDUMP=y
+CONFIG_ARCH_TEXT_NPAGES=128
+CONFIG_ARCH_TEXT_VBASE=0x80000000
+CONFIG_ARCH_USE_MMU=y
+CONFIG_ARCH_USE_MPU=y
+CONFIG_ARCH_USE_S_MODE=y
+CONFIG_BL808_GPADC=y
+CONFIG_BL808_GPADC_NCHANNELS=5
+CONFIG_BL808_GPADC_RES_16=y
+CONFIG_BL808_GPADC_SCAN_ORD0=3
+CONFIG_BL808_GPADC_SCAN_ORD1=4
+CONFIG_BL808_GPADC_SCAN_ORD2=6
+CONFIG_BL808_GPADC_SCAN_ORD3=7
+CONFIG_BL808_GPADC_SCAN_ORD4=9
+CONFIG_BL808_UART0=y
+CONFIG_BL808_UART1=y
+CONFIG_BL808_UART2=y
+CONFIG_BL808_UART3=y
+CONFIG_BOARDCTL_ROMDISK=y
+CONFIG_BOARD_LATE_INITIALIZE=y
+CONFIG_BOARD_LOOPSPERMSEC=1120
+CONFIG_BUILD_KERNEL=y
+CONFIG_DEBUG_ASSERTIONS=y
+CONFIG_DEBUG_ASSERTIONS_EXPRESSION=y
+CONFIG_DEBUG_FEATURES=y
+CONFIG_DEBUG_FULLOPT=y
+CONFIG_DEBUG_SYMBOLS=y
+CONFIG_DEV_ZERO=y
+CONFIG_ELF=y
+CONFIG_EXAMPLES_ADC=y
+CONFIG_EXAMPLES_ADC_DEVPATH="/dev/gpadc"
+CONFIG_EXAMPLES_ADC_GROUPSIZE=5
+CONFIG_EXAMPLES_ADC_NSAMPLES=1
+CONFIG_EXAMPLES_HELLO=m
+CONFIG_FS_PROCFS=y
+CONFIG_FS_ROMFS=y
+CONFIG_IDLETHREAD_STACKSIZE=3072
+CONFIG_INIT_FILEPATH="/system/bin/init"
+CONFIG_INIT_MOUNT=y
+CONFIG_INIT_MOUNT_FLAGS=0x1
+CONFIG_INIT_MOUNT_TARGET="/system/bin"
+CONFIG_INIT_STACKSIZE=3072
+CONFIG_INTELHEX_BINARY=y
+CONFIG_LIBC_ENVPATH=y
+CONFIG_LIBC_EXECFUNCS=y
+CONFIG_LIBC_PERROR_STDOUT=y
+CONFIG_LIBC_STRERROR=y
+CONFIG_MEMSET_64BIT=y
+CONFIG_MEMSET_OPTSPEED=y
+CONFIG_MM_PGALLOC=y
+CONFIG_NFILE_DESCRIPTORS_PER_BLOCK=6
+CONFIG_NSH_ARCHINIT=y
+CONFIG_NSH_FILEIOSIZE=512
+CONFIG_NSH_FILE_APPS=y
+CONFIG_NSH_READLINE=y
+CONFIG_PATH_INITIAL="/system/bin"
+CONFIG_RAM_SIZE=1048576
+CONFIG_RAM_START=0x50200000
+CONFIG_READLINE_CMD_HISTORY=y
+CONFIG_RR_INTERVAL=200
+CONFIG_SCHED_HAVE_PARENT=y
+CONFIG_SCHED_LPWORK=y
+CONFIG_SCHED_WAITPID=y
+CONFIG_STACK_COLORATION=y
+CONFIG_START_MONTH=12
+CONFIG_START_YEAR=2021
+CONFIG_SYMTAB_ORDEREDBYNAME=y
+CONFIG_SYSTEM_NSH=y
+CONFIG_SYSTEM_NSH_PROGNAME="init"
+CONFIG_TESTING_GETPRIME=y
+CONFIG_TESTING_OSTEST=y
+CONFIG_UART0_BAUD=2000000
+CONFIG_UART0_BITS=7
+CONFIG_UART1_BAUD=2000000
+CONFIG_UART1_BITS=7
+CONFIG_UART2_BAUD=2000000
+CONFIG_UART2_BITS=7
+CONFIG_UART3_BAUD=2000000
+CONFIG_UART3_BITS=7
+CONFIG_UART3_SERIAL_CONSOLE=y
+CONFIG_USEC_PER_TICK=1000
+CONFIG_USERLED=y
+CONFIG_USERLED_LOWER=y

Reply via email to