sidk_s5jt200: register ADC driver at boot
authorHeesub Shin <heesub.shin@samsung.com>
Thu, 6 Apr 2017 12:02:20 +0000 (21:02 +0900)
committerHeesub Shin <heesub.shin@samsung.com>
Tue, 18 Apr 2017 03:02:12 +0000 (12:02 +0900)
S5J supports 4 ADC channels that are exported through GPIO pins. This
commit initializes the ADC driver and registers a device node at boot
stage.

Change-Id: Ida2f6932dc6a8d8b73b36eda735ff6d207b9aca4
Signed-off-by: Heesub Shin <heesub.shin@samsung.com>
os/arch/arm/src/sidk_s5jt200/src/s5jt200_tash.c

index 9a5b5f0..32853ca 100644 (file)
@@ -66,6 +66,7 @@
 #include <chip.h>
 
 #include "s5j_rtc.h"
+#include "s5j_adc.h"
 #include "up_internal.h"
 
 #include <apps/shell/tash.h>
@@ -225,6 +226,41 @@ static void sidk_s5jt200_configure_partitions(void)
 }
 
 /****************************************************************************
+ * Name: sidk_s5jt200_adc_setup
+ *
+ * Description:
+ *   Initialize ADC and register the ADC driver.
+ *
+ ****************************************************************************/
+int sidk_s5jt200_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;
+}
+
+/****************************************************************************
  * Name: board_app_initialize
  *
  * Description:
@@ -317,6 +353,8 @@ int board_app_initialize(void)
 #endif /* CONFIG_RTC_DRIVER */
 #endif /* CONFIG_RTC */
 
+       sidk_s5jt200_adc_setup();
+
        scsc_wpa_ctrl_iface_init();
 
 #ifdef CONFIG_TASH