From 3ad53f931888a2822b2055834ba424815de8cfb8 Mon Sep 17 00:00:00 2001 From: Heesub Shin Date: Thu, 6 Apr 2017 21:02:34 +0900 Subject: [PATCH] artik053: register ADC driver at boot S5J supports 4 ADC channels and they are exported through GPIO pins of ARTIK-053 starter kit. This commit initializes the ADC driver and registers a device ndoe at boot stage, so that users may open it and get conversion samples from ADC. Change-Id: I0f01ca1bccdd39f10d704894fa1293936451b0fa Signed-off-by: Heesub Shin --- os/arch/arm/src/artik053/src/artik053_tash.c | 44 +++++++++++++++++++++++++++- 1 file changed, 43 insertions(+), 1 deletion(-) diff --git a/os/arch/arm/src/artik053/src/artik053_tash.c b/os/arch/arm/src/artik053/src/artik053_tash.c index 5b5374f..2234793 100644 --- a/os/arch/arm/src/artik053/src/artik053_tash.c +++ b/os/arch/arm/src/artik053/src/artik053_tash.c @@ -71,9 +71,49 @@ #include "artik053.h" -/***************************************************************************** +/**************************************************************************** * Pre-processor Definitions ****************************************************************************/ + +/**************************************************************************** + * Private Functions + ****************************************************************************/ + +/**************************************************************************** + * Name: artik053_adc_setup + * + * Description: + * Initialize ADC and register the ADC driver. + * + ****************************************************************************/ +int artik053_adc_setup(void) +{ +#ifdef CONFIG_S5J_ADC + int ret; + struct adc_dev_s *adc; + uint8_t chanlist[] = { + adc_channel_0, + adc_channel_1, + adc_channel_2, + adc_channel_3, + }; + + /* Get an instance of the ADC interface */ + adc = s5j_adc_initialize(chanlist, sizeof(chanlist)); + if (adc == NULL) { + return -ENODEV; + } + + /* Register the ADC driver at "/dev/adc0" */ + ret = adc_register("/dev/adc0", adc); + if (ret < 0) { + return ret; + } +#endif /* CONFIG_S5J_ADC */ + + return OK; +} + static void artik053_configure_partitions(void) { #if defined(CONFIG_ARTIK053_FLASH_PART) @@ -256,6 +296,8 @@ int board_app_initialize(void) } #endif /* CONFIG_RTC_DRIVER */ + artik053_adc_setup(); + scsc_wpa_ctrl_iface_init(); #ifdef CONFIG_TASH -- 2.7.4