diff --git a/make.mk b/make.mk
index 21ccc0f..a58aba3 100644
--- a/make.mk
+++ b/make.mk
@@ -40,7 +40,6 @@ INCLUDES += \
-I../../watch-library/hal/utils/include/ \
-I../../watch-library/hal/utils/src/ \
-I../../watch-library/hpl/ \
- -I../../watch-library/hpl/adc/ \
-I../../watch-library/hpl/core/ \
-I../../watch-library/hpl/dmac/ \
-I../../watch-library/hpl/eic/ \
@@ -54,8 +53,6 @@ INCLUDES += \
-I../../watch-library/hpl/sercom/ \
-I../../watch-library/hpl/slcd/ \
-I../../watch-library/hpl/systick/ \
- -I../../watch-library/hpl/tcc/ \
- -I../../watch-library/hpl/tc/ \
-I../../watch-library/hri/ \
-I../../watch-library/config/ \
-I../../watch-library/hw/ \
@@ -75,7 +72,6 @@ SRCS += \
../../watch-library/startup_saml22.c \
../../watch-library/hw/driver_init.c \
../../watch-library/watch/watch.c \
- ../../watch-library/hal/src/hal_adc_sync.c \
../../watch-library/hal/src/hal_atomic.c \
../../watch-library/hal/src/hal_calendar.c \
../../watch-library/hal/src/hal_delay.c \
@@ -84,14 +80,12 @@ SRCS += \
../../watch-library/hal/src/hal_i2c_m_sync.c \
../../watch-library/hal/src/hal_init.c \
../../watch-library/hal/src/hal_io.c \
- ../../watch-library/hal/src/hal_pwm.c \
../../watch-library/hal/src/hal_slcd_sync.c \
../../watch-library/hal/src/hal_sleep.c \
../../watch-library/hal/utils/src/utils_assert.c \
../../watch-library/hal/utils/src/utils_event.c \
../../watch-library/hal/utils/src/utils_list.c \
../../watch-library/hal/utils/src/utils_syscalls.c \
- ../../watch-library/hpl/adc/hpl_adc.c \
../../watch-library/hpl/core/hpl_core_m0plus_base.c \
../../watch-library/hpl/core/hpl_init.c \
../../watch-library/hpl/dmac/hpl_dmac.c \
@@ -105,8 +99,6 @@ SRCS += \
../../watch-library/hpl/sercom/hpl_sercom.c \
../../watch-library/hpl/slcd/hpl_slcd.c \
../../watch-library/hpl/systick/hpl_systick.c \
- ../../watch-library/hpl/tcc/hpl_tcc.c \
- ../../watch-library/hpl/tc/hpl_tc.c
DEFINES += \
-D__SAML22J18A__ \
diff --git a/watch-library/config/hpl_adc_config.h b/watch-library/config/hpl_adc_config.h
deleted file mode 100644
index e15dc52..0000000
--- a/watch-library/config/hpl_adc_config.h
+++ /dev/null
@@ -1,305 +0,0 @@
-/* Auto-generated config file hpl_adc_config.h */
-#ifndef HPL_ADC_CONFIG_H
-#define HPL_ADC_CONFIG_H
-
-// <<< Use Configuration Wizard in Context Menu >>>
-
-#ifndef CONF_ADC_0_ENABLE
-#define CONF_ADC_0_ENABLE 1
-#endif
-
-// Basic Configuration
-
-// Conversion Result Resolution
-// <0x0=>12-bit
-// <0x1=>16-bit (averaging must be enabled)
-// <0x2=>10-bit
-// <0x3=>8-bit
-// Defines the bit resolution for the ADC sample values (RESSEL)
-// adc_resolution
-#ifndef CONF_ADC_0_RESSEL
-#define CONF_ADC_0_RESSEL 0x0
-#endif
-
-// Reference Selection
-// <0x0=>Internal bandgap reference
-// <0x1=>1/1.6 VDDANA
-// <0x2=>1/2 VDDANA (only for VDDANA > 2.0V)
-// <0x3=>External reference A
-// <0x4=>External reference B
-// <0x5=>VDDANA
-// Select the reference for the ADC (REFSEL)
-// adc_reference
-#ifndef CONF_ADC_0_REFSEL
-#define CONF_ADC_0_REFSEL 0x0
-#endif
-
-// Prescaler configuration
-// <0x0=>Peripheral clock divided by 2
-// <0x1=>Peripheral clock divided by 4
-// <0x2=>Peripheral clock divided by 8
-// <0x3=>Peripheral clock divided by 16
-// <0x4=>Peripheral clock divided by 32
-// <0x5=>Peripheral clock divided by 64
-// <0x6=>Peripheral clock divided by 128
-// <0x7=>Peripheral clock divided by 256
-// These bits define the ADC clock relative to the peripheral clock (PRESCALER)
-// adc_prescaler
-#ifndef CONF_ADC_0_PRESCALER
-#define CONF_ADC_0_PRESCALER 0x0
-#endif
-
-// Free Running Mode
-// When enabled, the ADC is in free running mode and a new conversion will be initiated when a previous conversion completes. (FREERUN)
-// adc_freerunning_mode
-#ifndef CONF_ADC_0_FREERUN
-#define CONF_ADC_0_FREERUN 0
-#endif
-
-// Differential Mode
-// In differential mode, the voltage difference between the MUXPOS and MUXNEG inputs will be converted by the ADC. (DIFFMODE)
-// adc_differential_mode
-#ifndef CONF_ADC_0_DIFFMODE
-#define CONF_ADC_0_DIFFMODE 0
-#endif
-
-// Positive Mux Input Selection
-// <0x00=>ADC AIN0 pin
-// <0x01=>ADC AIN1 pin
-// <0x02=>ADC AIN2 pin
-// <0x03=>ADC AIN3 pin
-// <0x04=>ADC AIN4 pin
-// <0x05=>ADC AIN5 pin
-// <0x06=>ADC AIN6 pin
-// <0x07=>ADC AIN7 pin
-// <0x08=>ADC AIN8 pin
-// <0x09=>ADC AIN9 pin
-// <0x0A=>ADC AIN10 pin
-// <0x0B=>ADC AIN11 pin
-// <0x0C=>ADC AIN12 pin
-// <0x0D=>ADC AIN13 pin
-// <0x0E=>ADC AIN14 pin
-// <0x0F=>ADC AIN15 pin
-// <0x10=>ADC AIN16 pin
-// <0x11=>ADC AIN17 pin
-// <0x12=>ADC AIN18 pin
-// <0x13=>ADC AIN19 pin
-// <0x18=>Temperature reference
-// <0x19=>Bandgap voltage
-// <0x1A=>1/4 scaled core supply
-// <0x1B=>1/4 scaled I/O supply
-// <0x1D=>1/4 Scaled VBAT Supply
-// <0x1E=>CTAT Output
-// These bits define the Mux selection for the positive ADC input. (MUXPOS)
-// adc_pinmux_positive
-#ifndef CONF_ADC_0_MUXPOS
-#define CONF_ADC_0_MUXPOS 0x0
-#endif
-
-// Negative Mux Input Selection
-// <0x00=>ADC AIN0 pin
-// <0x01=>ADC AIN1 pin
-// <0x02=>ADC AIN2 pin
-// <0x03=>ADC AIN3 pin
-// <0x04=>ADC AIN4 pin
-// <0x05=>ADC AIN5 pin
-// <0x06=>ADC AIN6 pin
-// <0x07=>ADC AIN7 pin
-// <0x18=>Internal ground
-// These bits define the Mux selection for the negative ADC input. (MUXNEG)
-// adc_pinmux_negative
-#ifndef CONF_ADC_0_MUXNEG
-#define CONF_ADC_0_MUXNEG 0x0
-#endif
-
-//
-
-// Advanced Configuration
-// adc_advanced_settings
-#ifndef CONF_ADC_0_ADVANCED
-#define CONF_ADC_0_ADVANCED 0
-#endif
-
-// Run in standby
-// Indicates whether the ADC will continue running in standby sleep mode or not (RUNSTDBY)
-// adc_arch_runstdby
-#ifndef CONF_ADC_0_RUNSTDBY
-#define CONF_ADC_0_RUNSTDBY 0
-#endif
-
-// Debug Run
-// If enabled, the ADC is running if the CPU is halted by an external debugger. (DBGRUN)
-// adc_arch_dbgrun
-#ifndef CONF_ADC_0_DBGRUN
-#define CONF_ADC_0_DBGRUN 0
-#endif
-
-// On Demand Control
-// Will keep the ADC peripheral running if requested by other peripherals (ONDEMAND)
-// adc_arch_ondemand
-#ifndef CONF_ADC_0_ONDEMAND
-#define CONF_ADC_0_ONDEMAND 0
-#endif
-
-// Left-Adjusted Result
-// When enabled, the ADC conversion result is left-adjusted in the RESULT register. The high byte of the 12-bit result will be present in the upper part of the result register. (LEFTADJ)
-// adc_arch_leftadj
-#ifndef CONF_ADC_0_LEFTADJ
-#define CONF_ADC_0_LEFTADJ 0
-#endif
-
-// Reference Buffer Offset Compensation Enable
-// The accuracy of the gain stage can be increased by enabling the reference buffer offset compensation. This will decrease the input impedance and thus increase the start-up time of the reference. (REFCOMP)
-// adc_arch_refcomp
-#ifndef CONF_ADC_0_REFCOMP
-#define CONF_ADC_0_REFCOMP 0
-#endif
-
-// Comparator Offset Compensation Enable
-// This bit indicates whether the Comparator Offset Compensation is enabled or not (OFFCOMP)
-// adc_arch_offcomp
-#ifndef CONF_ADC_0_OFFCOMP
-#define CONF_ADC_0_OFFCOMP 0
-#endif
-
-// Digital Correction Logic Enabled
-// When enabled, the ADC conversion result in the RESULT register is then corrected for gain and offset based on the values in the GAINCAL and OFFSETCAL registers. (CORREN)
-// adc_arch_corren
-#ifndef CONF_ADC_0_CORREN
-#define CONF_ADC_0_CORREN 0
-#endif
-
-// Offset Correction Value <0-4095>
-// If the digital correction logic is enabled (CTRLB.CORREN = 1), these bits define how the ADC conversion result is compensated for offset error before being written to the Result register. (OFFSETCORR)
-// adc_arch_offsetcorr
-#ifndef CONF_ADC_0_OFFSETCORR
-#define CONF_ADC_0_OFFSETCORR 0
-#endif
-
-// Gain Correction Value <0-4095>
-// If the digital correction logic is enabled (CTRLB.CORREN = 1), these bits define how the ADC conversion result is compensated for gain error before being written to the result register. (GAINCORR)
-// adc_arch_gaincorr
-#ifndef CONF_ADC_0_GAINCORR
-#define CONF_ADC_0_GAINCORR 0
-#endif
-
-// Adjusting Result / Division Coefficient <0-7>
-// These bits define the division coefficient in 2n steps. (ADJRES)
-// adc_arch_adjres
-#ifndef CONF_ADC_0_ADJRES
-#define CONF_ADC_0_ADJRES 0x0
-#endif
-
-// Number of Samples to be Collected
-// <0x0=>1 sample
-// <0x1=>2 samples
-// <0x2=>4 samples
-// <0x3=>8 samples
-// <0x4=>16 samples
-// <0x5=>32 samples
-// <0x6=>64 samples
-// <0x7=>128 samples
-// <0x8=>256 samples
-// <0x9=>512 samples
-// <0xA=>1024 samples
-// Define how many samples should be added together.The result will be available in the Result register (SAMPLENUM)
-// adc_arch_samplenum
-#ifndef CONF_ADC_0_SAMPLENUM
-#define CONF_ADC_0_SAMPLENUM 0x0
-#endif
-
-// Sampling Time Length <0-63>
-// These bits control the ADC sampling time in number of CLK_ADC cycles, depending of the prescaler value, thus controlling the ADC input impedance. (SAMPLEN)
-// adc_arch_samplen
-#ifndef CONF_ADC_0_SAMPLEN
-#define CONF_ADC_0_SAMPLEN 0
-#endif
-
-// Window Monitor Mode
-// <0x0=>No window mode
-// <0x1=>Mode 1: RESULT above lower threshold
-// <0x2=>Mode 2: RESULT beneath upper threshold
-// <0x3=>Mode 3: RESULT inside lower and upper threshold
-// <0x4=>Mode 4: RESULT outside lower and upper threshold
-// These bits enable and define the window monitor mode. (WINMODE)
-// adc_arch_winmode
-#ifndef CONF_ADC_0_WINMODE
-#define CONF_ADC_0_WINMODE 0x0
-#endif
-
-// Window Monitor Lower Threshold <0-65535>
-// If the window monitor is enabled, these bits define the lower threshold value. (WINLT)
-// adc_arch_winlt
-#ifndef CONF_ADC_0_WINLT
-#define CONF_ADC_0_WINLT 0
-#endif
-
-// Window Monitor Upper Threshold <0-65535>
-// If the window monitor is enabled, these bits define the lower threshold value. (WINUT)
-// adc_arch_winut
-#ifndef CONF_ADC_0_WINUT
-#define CONF_ADC_0_WINUT 0
-#endif
-
-// Bitmask for positive input sequence <0-4294967295>
-// Use this parameter to input the bitmask for positive input sequence control (refer to datasheet for the device).
-// adc_arch_seqen
-#ifndef CONF_ADC_0_SEQEN
-#define CONF_ADC_0_SEQEN 0x0
-#endif
-
-//
-
-// Event Control
-// adc_arch_event_settings
-#ifndef CONF_ADC_0_EVENT_CONTROL
-#define CONF_ADC_0_EVENT_CONTROL 0
-#endif
-
-// Window Monitor Event Out
-// Enables event output on window event (WINMONEO)
-// adc_arch_winmoneo
-#ifndef CONF_ADC_0_WINMONEO
-#define CONF_ADC_0_WINMONEO 0
-#endif
-
-// Result Ready Event Out
-// Enables event output on result ready event (RESRDEO)
-// adc_arch_resrdyeo
-#ifndef CONF_ADC_0_RESRDYEO
-#define CONF_ADC_0_RESRDYEO 0
-#endif
-
-// Invert flush Event Signal
-// Invert the flush event input signal (FLUSHINV)
-// adc_arch_flushinv
-#ifndef CONF_ADC_0_FLUSHINV
-#define CONF_ADC_0_FLUSHINV 0
-#endif
-
-// Trigger Flush On Event
-// Trigger an ADC pipeline flush on event (FLUSHEI)
-// adc_arch_flushei
-#ifndef CONF_ADC_0_FLUSHEI
-#define CONF_ADC_0_FLUSHEI 0
-#endif
-
-// Invert Start Conversion Event Signal
-// Invert the start conversion event input signal (STARTINV)
-// adc_arch_startinv
-#ifndef CONF_ADC_0_STARTINV
-#define CONF_ADC_0_STARTINV 0
-#endif
-
-// Trigger Conversion On Event
-// Trigger a conversion on event. (STARTEI)
-// adc_arch_startei
-#ifndef CONF_ADC_0_STARTEI
-#define CONF_ADC_0_STARTEI 0
-#endif
-
-//
-
-// <<< end of configuration section >>>
-
-#endif // HPL_ADC_CONFIG_H
diff --git a/watch-library/hal/documentation/adc_sync.rst b/watch-library/hal/documentation/adc_sync.rst
deleted file mode 100644
index d189565..0000000
--- a/watch-library/hal/documentation/adc_sync.rst
+++ /dev/null
@@ -1,74 +0,0 @@
-======================
-ADC Synchronous driver
-======================
-
-An ADC (Analog-to-Digital Converter) converts analog signals to digital values.
-A reference signal with a known voltage level is quantified into equally
-sized chunks, each representing a digital value from 0 to the highest number
-possible with the bit resolution supported by the ADC. The input voltage
-measured by the ADC is compared against these chunks and the chunk with the
-closest voltage level defines the digital value that can be used to represent
-the analog input voltage level.
-
-Usually an ADC can operate in either differential or single-ended mode.
-In differential mode two signals (V+ and V-) are compared against each other
-and the resulting digital value represents the relative voltage level between
-V+ and V-. This means that if the input voltage level on V+ is lower than on
-V- the digital value is negative, which also means that in differential
-mode one bit is lost to the sign. In single-ended mode only V+ is compared
-against the reference voltage, and the resulting digital value can only be
-positive, but the full bit-range of the ADC can be used.
-
-Usually multiple resolutions are supported by the ADC, lower resolution can
-reduce the conversion time, but lose accuracy.
-
-Some ADCs has a gain stage on the input lines which can be used to increase the
-dynamic range. The default gain value is usually x1, which means that the
-conversion range is from 0V to the reference voltage.
-Applications can change the gain stage, to increase or reduce the conversion
-range.
-
-The window mode allows the conversion result to be compared to a set of
-predefined threshold values. Applications can use callback function to monitor
-if the conversion result exceeds predefined threshold value.
-
-Usually multiple reference voltages are supported by the ADC, both internal and
-external with difference voltage levels. The reference voltage have an impact
-on the accuracy, and should be selected to cover the full range of the analog
-input signal and never less than the expected maximum input voltage.
-
-There are two conversion modes supported by ADC, single shot and free running.
-In single shot mode the ADC only make one conversion when triggered by the
-application, in free running mode it continues to make conversion from it
-is triggered until it is stopped by the application. When window monitoring,
-the ADC should be set to free running mode.
-
-Features
---------
-* Initialization and de-initialization
-* Support multiple Conversion Mode, Single or Free run
-* Start ADC Conversion
-* Read Conversion Result
-
-Applications
-------------
-* Measurement of internal sensor. E.g., MCU internal temperature sensor value.
-* Measurement of external sensor. E.g., Temperature, humidity sensor value.
-* Sampling and measurement of a signal. E.g., sinusoidal wave, square wave.
-
-Dependencies
-------------
-* ADC hardware
-
-Concurrency
------------
-N/A
-
-Limitations
------------
-N/A
-
-Knows issues and workarounds
-----------------------------
-N/A
-
diff --git a/watch-library/hal/documentation/pwm.rst b/watch-library/hal/documentation/pwm.rst
deleted file mode 100644
index 71785c6..0000000
--- a/watch-library/hal/documentation/pwm.rst
+++ /dev/null
@@ -1,53 +0,0 @@
-The PWM Driver(bare-bone)
-=========================
-
-Pulse-width modulation (PWM) is used to create an analog behavior
-digitally by controlling the amount of power transferred to the
-connected peripheral. This is achieved by controlling the high period
-(duty-cycle) of a periodic signal.
-
-User can change the period or duty cycle whenever PWM is running. The
-function pwm_set_parameters is used to configure these two parameters.
-Note these are raw register values and the parameter duty_cycle means
-the period of first half during one cycle, which should be not beyond
-total period value.
-
-In addition, user can also get multi PWM channels output from different
-peripherals at the same time, which is implemented more flexible by the
-function pointers.
-
-Features
---------
-
-* Initialization/de-initialization
-* Enabling/disabling
-* Run-time control of PWM duty-cycle and period
-* Notifications about errors and one PWM cycle is done
-
-Applications
-------------
-
-Motor control, ballast, LED, H-bridge, power converters, and
-other types of power control applications.
-
-Dependencies
-------------
-
-The peripheral which can perform waveform generation like frequency
-generation and pulse-width modulation, such as Timer/Counter.
-
-Concurrency
------------
-
-N/A
-
-Limitations
------------
-
-The current driver doesn't support the features like recoverable,
-non-recoverable faults, dithering, dead-time insertion.
-
-Known issues and workarounds
-----------------------------
-
-N/A
diff --git a/watch-library/hal/include/hal_adc_sync.h b/watch-library/hal/include/hal_adc_sync.h
deleted file mode 100644
index 1b66e3d..0000000
--- a/watch-library/hal/include/hal_adc_sync.h
+++ /dev/null
@@ -1,277 +0,0 @@
-/**
- * \file
- *
- * \brief ADC functionality declaration.
- *
- * Copyright (c) 2014-2018 Microchip Technology Inc. and its subsidiaries.
- *
- * \asf_license_start
- *
- * \page License
- *
- * Subject to your compliance with these terms, you may use Microchip
- * software and any derivatives exclusively with Microchip products.
- * It is your responsibility to comply with third party license terms applicable
- * to your use of third party software (including open source software) that
- * may accompany Microchip software.
- *
- * THIS SOFTWARE IS SUPPLIED BY MICROCHIP "AS IS". NO WARRANTIES,
- * WHETHER EXPRESS, IMPLIED OR STATUTORY, APPLY TO THIS SOFTWARE,
- * INCLUDING ANY IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY,
- * AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT WILL MICROCHIP BE
- * LIABLE FOR ANY INDIRECT, SPECIAL, PUNITIVE, INCIDENTAL OR CONSEQUENTIAL
- * LOSS, DAMAGE, COST OR EXPENSE OF ANY KIND WHATSOEVER RELATED TO THE
- * SOFTWARE, HOWEVER CAUSED, EVEN IF MICROCHIP HAS BEEN ADVISED OF THE
- * POSSIBILITY OR THE DAMAGES ARE FORESEEABLE. TO THE FULLEST EXTENT
- * ALLOWED BY LAW, MICROCHIP'S TOTAL LIABILITY ON ALL CLAIMS IN ANY WAY
- * RELATED TO THIS SOFTWARE WILL NOT EXCEED THE AMOUNT OF FEES, IF ANY,
- * THAT YOU HAVE PAID DIRECTLY TO MICROCHIP FOR THIS SOFTWARE.
- *
- * \asf_license_stop
- *
- */
-
-#ifndef _HAL_ADC_SYNC_H_INCLUDED
-#define _HAL_ADC_SYNC_H_INCLUDED
-
-#include
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/**
- * \addtogroup doc_driver_hal_adc_sync
- *
- * @{
- */
-
-/**
- * \brief ADC descriptor
- *
- * The ADC descriptor forward declaration.
- */
-struct adc_sync_descriptor;
-
-/**
- * \brief ADC descriptor
- */
-struct adc_sync_descriptor {
- /** ADC device */
- struct _adc_sync_device device;
-};
-
-/**
- * \brief Initialize ADC
- *
- * This function initializes the given ADC descriptor.
- * It checks if the given hardware is not initialized and if the given hardware
- * is permitted to be initialized.
- *
- * \param[out] descr An ADC descriptor to initialize
- * \param[in] hw The pointer to hardware instance
- * \param[in] func The pointer to a set of functions pointers
- *
- * \return Initialization status.
- */
-int32_t adc_sync_init(struct adc_sync_descriptor *const descr, void *const hw, void *const func);
-
-/**
- * \brief Deinitialize ADC
- *
- * This function deinitializes the given ADC descriptor.
- * It checks if the given hardware is initialized and if the given hardware is
- * permitted to be deinitialized.
- *
- * \param[in] descr An ADC descriptor to deinitialize
- *
- * \return De-initialization status.
- */
-int32_t adc_sync_deinit(struct adc_sync_descriptor *const descr);
-
-/**
- * \brief Enable ADC
- *
- * Use this function to set the ADC peripheral to enabled state.
- *
- * \param[in] descr Pointer to the ADC descriptor
- * \param[in] channel Channel number
- *
- * \return Operation status
- *
- */
-int32_t adc_sync_enable_channel(struct adc_sync_descriptor *const descr, const uint8_t channel);
-
-/**
- * \brief Disable ADC
- *
- * Use this function to set the ADC peripheral to disabled state.
- *
- * \param[in] descr Pointer to the ADC descriptor
- * \param[in] channel Channel number
- *
- * \return Operation status
- *
- */
-int32_t adc_sync_disable_channel(struct adc_sync_descriptor *const descr, const uint8_t channel);
-
-/**
- * \brief Read data from ADC
- *
- * \param[in] descr The pointer to the ADC descriptor
- * \param[in] channel Channel number
- * \param[in] buf A buffer to read data to
- * \param[in] length The size of a buffer
- *
- * \return The number of bytes read.
- */
-int32_t adc_sync_read_channel(struct adc_sync_descriptor *const descr, const uint8_t channel, uint8_t *const buffer,
- const uint16_t length);
-
-/**
- * \brief Set ADC reference source
- *
- * This function sets ADC reference source.
- *
- * \param[in] descr The pointer to the ADC descriptor
- * \param[in] reference A reference source to set
- *
- * \return Status of the ADC reference source setting.
- */
-int32_t adc_sync_set_reference(struct adc_sync_descriptor *const descr, const adc_reference_t reference);
-
-/**
- * \brief Set ADC resolution
- *
- * This function sets ADC resolution.
- *
- * \param[in] descr The pointer to the ADC descriptor
- * \param[in] resolution A resolution to set
- *
- * \return Status of the ADC resolution setting.
- */
-int32_t adc_sync_set_resolution(struct adc_sync_descriptor *const descr, const adc_resolution_t resolution);
-
-/**
- * \brief Set ADC input source of a channel
- *
- * This function sets ADC positive and negative input sources.
- *
- * \param[in] descr The pointer to the ADC descriptor
- * \param[in] pos_input A positive input source to set
- * \param[in] neg_input A negative input source to set
- * \param[in] channel Channel number
- *
- * \return Status of the ADC channels setting.
- */
-int32_t adc_sync_set_inputs(struct adc_sync_descriptor *const descr, const adc_pos_input_t pos_input,
- const adc_neg_input_t neg_input, const uint8_t channel);
-
-/**
- * \brief Set ADC conversion mode
- *
- * This function sets ADC conversion mode.
- *
- * \param[in] descr The pointer to the ADC descriptor
- * \param[in] mode A conversion mode to set
- *
- * \return Status of the ADC conversion mode setting.
- */
-int32_t adc_sync_set_conversion_mode(struct adc_sync_descriptor *const descr, const enum adc_conversion_mode mode);
-
-/**
- * \brief Set ADC differential mode
- *
- * This function sets ADC differential mode.
- *
- * \param[in] descr The pointer to the ADC descriptor
- * \param[in] channel Channel number
- * \param[in] mode A differential mode to set
- *
- * \return Status of the ADC differential mode setting.
- */
-int32_t adc_sync_set_channel_differential_mode(struct adc_sync_descriptor *const descr, const uint8_t channel,
- const enum adc_differential_mode mode);
-
-/**
- * \brief Set ADC channel gain
- *
- * This function sets ADC channel gain.
- *
- * \param[in] descr The pointer to the ADC descriptor
- * \param[in] channel Channel number
- * \param[in] gain A gain to set
- *
- * \return Status of the ADC gain setting.
- */
-int32_t adc_sync_set_channel_gain(struct adc_sync_descriptor *const descr, const uint8_t channel,
- const adc_gain_t gain);
-
-/**
- * \brief Set ADC window mode
- *
- * This function sets ADC window mode.
- *
- * \param[in] descr The pointer to the ADC descriptor
- * \param[in] mode A window mode to set
- *
- * \return Status of the ADC window mode setting.
- */
-int32_t adc_sync_set_window_mode(struct adc_sync_descriptor *const descr, const adc_window_mode_t mode);
-
-/**
- * \brief Set ADC thresholds
- *
- * This function sets ADC positive and negative thresholds.
- *
- * \param[in] descr The pointer to the ADC descriptor
- * \param[in] low_threshold A lower thresholds to set
- * \param[in] up_threshold An upper thresholds to set
- *
- * \return Status of the ADC thresholds setting.
- */
-int32_t adc_sync_set_thresholds(struct adc_sync_descriptor *const descr, const adc_threshold_t low_threshold,
- const adc_threshold_t up_threshold);
-
-/**
- * \brief Retrieve threshold state
- *
- * This function retrieves ADC threshold state.
- *
- * \param[in] descr The pointer to the ADC descriptor
- * \param[out] state The threshold state
- *
- * \return The state of ADC thresholds state retrieving.
- */
-int32_t adc_sync_get_threshold_state(const struct adc_sync_descriptor *const descr,
- adc_threshold_status_t *const state);
-
-/**
- * \brief Check if conversion is complete
- *
- * This function checks if the ADC has finished the conversion.
- *
- * \param[in] descr The pointer to the ADC descriptor
- * \param[in] channel Channel number
- *
- * \return The status of ADC conversion completion checking.
- * \retval 1 The conversion is complete
- * \retval 0 The conversion is not complete
- */
-int32_t adc_sync_is_channel_conversion_complete(const struct adc_sync_descriptor *const descr, const uint8_t channel);
-
-/**
- * \brief Retrieve the current driver version
- *
- * \return Current driver version.
- */
-uint32_t adc_sync_get_version(void);
-/**@}*/
-
-#ifdef __cplusplus
-}
-#endif
-
-#include
-
-#endif /* _HAL_ADC_SYNC_H_INCLUDED */
diff --git a/watch-library/hal/include/hal_pwm.h b/watch-library/hal/include/hal_pwm.h
deleted file mode 100644
index d55f7e6..0000000
--- a/watch-library/hal/include/hal_pwm.h
+++ /dev/null
@@ -1,153 +0,0 @@
-/**
- * \file
- *
- * \brief PWM functionality declaration.
- *
- * Copyright (c) 2014-2018 Microchip Technology Inc. and its subsidiaries.
- *
- * \asf_license_start
- *
- * \page License
- *
- * Subject to your compliance with these terms, you may use Microchip
- * software and any derivatives exclusively with Microchip products.
- * It is your responsibility to comply with third party license terms applicable
- * to your use of third party software (including open source software) that
- * may accompany Microchip software.
- *
- * THIS SOFTWARE IS SUPPLIED BY MICROCHIP "AS IS". NO WARRANTIES,
- * WHETHER EXPRESS, IMPLIED OR STATUTORY, APPLY TO THIS SOFTWARE,
- * INCLUDING ANY IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY,
- * AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT WILL MICROCHIP BE
- * LIABLE FOR ANY INDIRECT, SPECIAL, PUNITIVE, INCIDENTAL OR CONSEQUENTIAL
- * LOSS, DAMAGE, COST OR EXPENSE OF ANY KIND WHATSOEVER RELATED TO THE
- * SOFTWARE, HOWEVER CAUSED, EVEN IF MICROCHIP HAS BEEN ADVISED OF THE
- * POSSIBILITY OR THE DAMAGES ARE FORESEEABLE. TO THE FULLEST EXTENT
- * ALLOWED BY LAW, MICROCHIP'S TOTAL LIABILITY ON ALL CLAIMS IN ANY WAY
- * RELATED TO THIS SOFTWARE WILL NOT EXCEED THE AMOUNT OF FEES, IF ANY,
- * THAT YOU HAVE PAID DIRECTLY TO MICROCHIP FOR THIS SOFTWARE.
- *
- * \asf_license_stop
- *
- */
-
-#ifndef HAL_PWM_H_INCLUDED
-#define HAL_PWM_H_INCLUDED
-
-#include
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/**
- * \addtogroup doc_driver_hal_pwm_async
- *
- *@{
- */
-
-/**
- * \brief PWM descriptor
- *
- * The PWM descriptor forward declaration.
- */
-struct pwm_descriptor;
-
-/**
- * \brief PWM callback type
- */
-typedef void (*pwm_cb_t)(const struct pwm_descriptor *const descr);
-
-/**
- * \brief PWM callback types
- */
-enum pwm_callback_type { PWM_PERIOD_CB, PWM_ERROR_CB };
-
-/**
- * \brief PWM callbacks
- */
-struct pwm_callbacks {
- pwm_cb_t period;
- pwm_cb_t error;
-};
-
-/** \brief PWM descriptor
- */
-struct pwm_descriptor {
- /** PWM device */
- struct _pwm_device device;
- /** PWM callback structure */
- struct pwm_callbacks pwm_cb;
- /** PWM HPL interface pointer */
- struct _pwm_hpl_interface *func;
-};
-
-/** \brief Initialize the PWM HAL instance and hardware
- *
- * \param[in] descr Pointer to the HAL PWM descriptor
- * \param[in] hw The pointer to hardware instance
- * \param[in] func The pointer to a set of functions pointers
- *
- * \return Operation status.
- */
-int32_t pwm_init(struct pwm_descriptor *const descr, void *const hw, struct _pwm_hpl_interface *const func);
-
-/** \brief Deinitialize the PWM HAL instance and hardware
- *
- * \param[in] descr Pointer to the HAL PWM descriptor
- *
- * \return Operation status.
- */
-int32_t pwm_deinit(struct pwm_descriptor *const descr);
-
-/** \brief PWM output start
- *
- * \param[in] descr Pointer to the HAL PWM descriptor
- *
- * \return Operation status.
- */
-int32_t pwm_enable(struct pwm_descriptor *const descr);
-
-/** \brief PWM output stop
- *
- * \param[in] descr Pointer to the HAL PWM descriptor
- *
- * \return Operation status.
- */
-int32_t pwm_disable(struct pwm_descriptor *const descr);
-
-/** \brief Register PWM callback
- *
- * \param[in] descr Pointer to the HAL PWM descriptor
- * \param[in] type Callback type
- * \param[in] cb A callback function, passing NULL de-registers callback
- *
- * \return Operation status.
- * \retval 0 Success
- * \retval -1 Error
- */
-int32_t pwm_register_callback(struct pwm_descriptor *const descr, enum pwm_callback_type type, pwm_cb_t cb);
-
-/** \brief Change PWM parameter
- *
- * \param[in] descr Pointer to the HAL PWM descriptor
- * \param[in] period Total period of one PWM cycle
- * \param[in] duty_cycle Period of PWM first half during one cycle
- *
- * \return Operation status.
- */
-int32_t pwm_set_parameters(struct pwm_descriptor *const descr, const pwm_period_t period,
- const pwm_period_t duty_cycle);
-
-/** \brief Get PWM driver version
- *
- * \return Current driver version.
- */
-uint32_t pwm_get_version(void);
-/**@}*/
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* HAL_PWM;_H_INCLUDED */
diff --git a/watch-library/hal/include/hpl_adc_async.h b/watch-library/hal/include/hpl_adc_async.h
deleted file mode 100644
index 1aa4162..0000000
--- a/watch-library/hal/include/hpl_adc_async.h
+++ /dev/null
@@ -1,264 +0,0 @@
-/**
- * \file
- *
- * \brief ADC related functionality declaration.
- *
- * Copyright (c) 2015-2018 Microchip Technology Inc. and its subsidiaries.
- *
- * \asf_license_start
- *
- * \page License
- *
- * Subject to your compliance with these terms, you may use Microchip
- * software and any derivatives exclusively with Microchip products.
- * It is your responsibility to comply with third party license terms applicable
- * to your use of third party software (including open source software) that
- * may accompany Microchip software.
- *
- * THIS SOFTWARE IS SUPPLIED BY MICROCHIP "AS IS". NO WARRANTIES,
- * WHETHER EXPRESS, IMPLIED OR STATUTORY, APPLY TO THIS SOFTWARE,
- * INCLUDING ANY IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY,
- * AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT WILL MICROCHIP BE
- * LIABLE FOR ANY INDIRECT, SPECIAL, PUNITIVE, INCIDENTAL OR CONSEQUENTIAL
- * LOSS, DAMAGE, COST OR EXPENSE OF ANY KIND WHATSOEVER RELATED TO THE
- * SOFTWARE, HOWEVER CAUSED, EVEN IF MICROCHIP HAS BEEN ADVISED OF THE
- * POSSIBILITY OR THE DAMAGES ARE FORESEEABLE. TO THE FULLEST EXTENT
- * ALLOWED BY LAW, MICROCHIP'S TOTAL LIABILITY ON ALL CLAIMS IN ANY WAY
- * RELATED TO THIS SOFTWARE WILL NOT EXCEED THE AMOUNT OF FEES, IF ANY,
- * THAT YOU HAVE PAID DIRECTLY TO MICROCHIP FOR THIS SOFTWARE.
- *
- * \asf_license_stop
- *
- */
-
-#ifndef _HPL_ADC_ASYNC_H_INCLUDED
-#define _HPL_ADC_ASYNC_H_INCLUDED
-
-/**
- * \addtogroup HPL ADC
- *
- * \section hpl_async_adc_rev Revision History
- * - v1.0.0 Initial Release
- *
- *@{
- */
-
-#include "hpl_adc_sync.h"
-#include "hpl_irq.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/**
- * \brief ADC device structure
- *
- * The ADC device structure forward declaration.
- */
-struct _adc_async_device;
-
-/**
- * \brief ADC callback types
- */
-enum _adc_async_callback_type { ADC_ASYNC_DEVICE_CONVERT_CB, ADC_ASYNC_DEVICE_MONITOR_CB, ADC_ASYNC_DEVICE_ERROR_CB };
-
-/**
- * \brief ADC interrupt callbacks
- */
-struct _adc_async_callbacks {
- void (*window_cb)(struct _adc_async_device *device, const uint8_t channel);
- void (*error_cb)(struct _adc_async_device *device, const uint8_t channel);
-};
-
-/**
- * \brief ADC channel interrupt callbacks
- */
-struct _adc_async_ch_callbacks {
- void (*convert_done)(struct _adc_async_device *device, const uint8_t channel, const uint16_t data);
-};
-
-/**
- * \brief ADC descriptor device structure
- */
-struct _adc_async_device {
- struct _adc_async_callbacks adc_async_cb;
- struct _adc_async_ch_callbacks adc_async_ch_cb;
- struct _irq_descriptor irq;
- void * hw;
-};
-
-/**
- * \name HPL functions
- */
-//@{
-/**
- * \brief Initialize synchronous ADC
- *
- * This function does low level ADC configuration.
- *
- * param[in] device The pointer to ADC device instance
- * param[in] hw The pointer to hardware instance
- *
- * \return Initialization status
- */
-int32_t _adc_async_init(struct _adc_async_device *const device, void *const hw);
-
-/**
- * \brief Deinitialize ADC
- *
- * \param[in] device The pointer to ADC device instance
- */
-void _adc_async_deinit(struct _adc_async_device *const device);
-
-/**
- * \brief Enable ADC peripheral
- *
- * \param[in] device The pointer to ADC device instance
- * \param[in] channel Channel number
- */
-void _adc_async_enable_channel(struct _adc_async_device *const device, const uint8_t channel);
-
-/**
- * \brief Disable ADC peripheral
- *
- * \param[in] device The pointer to ADC device instance
- * \param[in] channel Channel number
- */
-void _adc_async_disable_channel(struct _adc_async_device *const device, const uint8_t channel);
-
-/**
- * \brief Retrieve ADC conversion data size
- *
- * \param[in] device The pointer to ADC device instance
- *
- * \return The data size in bytes
- */
-uint8_t _adc_async_get_data_size(const struct _adc_async_device *const device);
-
-/**
- * \brief Check if conversion is done
- *
- * \param[in] device The pointer to ADC device instance
- * \param[in] channel Channel number
- *
- * \return The status of conversion
- * \retval true The conversion is done
- * \retval false The conversion is not done
- */
-bool _adc_async_is_channel_conversion_done(const struct _adc_async_device *const device, const uint8_t channel);
-
-/**
- * \brief Make conversion
- *
- * \param[in] device The pointer to ADC device instance
- */
-void _adc_async_convert(struct _adc_async_device *const device);
-
-/**
- * \brief Retrieve the conversion result
- *
- * \param[in] device The pointer to ADC device instance
- * \param[in] channel Channel number
- *
- * The result value
- */
-uint16_t _adc_async_read_channel_data(const struct _adc_async_device *const device, const uint8_t channel);
-
-/**
- * \brief Set reference source
- *
- * \param[in] device The pointer to ADC device instance
- * \param[in] reference A reference source to set
- */
-void _adc_async_set_reference_source(struct _adc_async_device *const device, const adc_reference_t reference);
-
-/**
- * \brief Set resolution
- *
- * \param[in] device The pointer to ADC device instance
- * \param[in] resolution A resolution to set
- */
-void _adc_async_set_resolution(struct _adc_async_device *const device, const adc_resolution_t resolution);
-
-/**
- * \brief Set ADC input source of a channel
- *
- * \param[in] device The pointer to ADC device instance
- * \param[in] pos_input A positive input source to set
- * \param[in] neg_input A negative input source to set
- * \param[in] channel Channel number
- */
-void _adc_async_set_inputs(struct _adc_async_device *const device, const adc_pos_input_t pos_input,
- const adc_neg_input_t neg_input, const uint8_t channel);
-
-/**
- * \brief Set conversion mode
- *
- * \param[in] device The pointer to ADC device instance
- * \param[in] mode A conversion mode to set
- */
-void _adc_async_set_conversion_mode(struct _adc_async_device *const device, const enum adc_conversion_mode mode);
-
-/**
- * \brief Set differential mode
- *
- * \param[in] device The pointer to ADC device instance
- * \param[in] channel Channel number
- * \param[in] mode A differential mode to set
- */
-void _adc_async_set_channel_differential_mode(struct _adc_async_device *const device, const uint8_t channel,
- const enum adc_differential_mode mode);
-
-/**
- * \brief Set gain
- *
- * \param[in] device The pointer to ADC device instance
- * \param[in] channel Channel number
- * \param[in] gain A gain to set
- */
-void _adc_async_set_channel_gain(struct _adc_async_device *const device, const uint8_t channel, const adc_gain_t gain);
-
-/**
- * \brief Set window mode
- *
- * \param[in] device The pointer to ADC device instance
- * \param[in] mode A mode to set
- */
-void _adc_async_set_window_mode(struct _adc_async_device *const device, const adc_window_mode_t mode);
-
-/**
- * \brief Set lower threshold
- *
- * \param[in] device The pointer to ADC device instance
- * \param[in] low_threshold A lower threshold to set
- * \param[in] up_threshold An upper thresholds to set
- */
-void _adc_async_set_thresholds(struct _adc_async_device *const device, const adc_threshold_t low_threshold,
- const adc_threshold_t up_threshold);
-
-/**
- * \brief Retrieve threshold state
- *
- * \param[in] device The pointer to ADC device instance
- * \param[out] state The threshold state
- */
-void _adc_async_get_threshold_state(const struct _adc_async_device *const device, adc_threshold_status_t *const state);
-
-/**
- * \brief Enable/disable ADC channel interrupt
- *
- * \param[in] device The pointer to ADC device instance
- * \param[in] channel Channel number
- * \param[in] type The type of interrupt to disable/enable if applicable
- * \param[in] state Enable or disable
- */
-void _adc_async_set_irq_state(struct _adc_async_device *const device, const uint8_t channel,
- const enum _adc_async_callback_type type, const bool state);
-
-//@}
-
-#ifdef __cplusplus
-}
-#endif
-/**@}*/
-#endif /* _HPL_ADC_ASYNC_H_INCLUDED */
diff --git a/watch-library/hal/include/hpl_adc_dma.h b/watch-library/hal/include/hpl_adc_dma.h
deleted file mode 100644
index bb3a054..0000000
--- a/watch-library/hal/include/hpl_adc_dma.h
+++ /dev/null
@@ -1,243 +0,0 @@
-/**
- * \file
- *
- * \brief ADC related functionality declaration.
- *
- * Copyright (c) 2016-2018 Microchip Technology Inc. and its subsidiaries.
- *
- * \asf_license_start
- *
- * \page License
- *
- * Subject to your compliance with these terms, you may use Microchip
- * software and any derivatives exclusively with Microchip products.
- * It is your responsibility to comply with third party license terms applicable
- * to your use of third party software (including open source software) that
- * may accompany Microchip software.
- *
- * THIS SOFTWARE IS SUPPLIED BY MICROCHIP "AS IS". NO WARRANTIES,
- * WHETHER EXPRESS, IMPLIED OR STATUTORY, APPLY TO THIS SOFTWARE,
- * INCLUDING ANY IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY,
- * AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT WILL MICROCHIP BE
- * LIABLE FOR ANY INDIRECT, SPECIAL, PUNITIVE, INCIDENTAL OR CONSEQUENTIAL
- * LOSS, DAMAGE, COST OR EXPENSE OF ANY KIND WHATSOEVER RELATED TO THE
- * SOFTWARE, HOWEVER CAUSED, EVEN IF MICROCHIP HAS BEEN ADVISED OF THE
- * POSSIBILITY OR THE DAMAGES ARE FORESEEABLE. TO THE FULLEST EXTENT
- * ALLOWED BY LAW, MICROCHIP'S TOTAL LIABILITY ON ALL CLAIMS IN ANY WAY
- * RELATED TO THIS SOFTWARE WILL NOT EXCEED THE AMOUNT OF FEES, IF ANY,
- * THAT YOU HAVE PAID DIRECTLY TO MICROCHIP FOR THIS SOFTWARE.
- *
- * \asf_license_stop
- *
- */
-
-#ifndef _HPL_ADC_DMA_H_INCLUDED
-#define _HPL_ADC_DMA_H_INCLUDED
-
-/**
- * \addtogroup HPL ADC
- *
- * \section hpl_dma_adc_rev Revision History
- * - v1.0.0 Initial Release
- *
- *@{
- */
-
-#include
-#include
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/**
- * \brief ADC device structure
- *
- * The ADC device structure forward declaration.
- */
-struct _adc_dma_device;
-
-/**
- * \brief ADC callback types
- */
-enum _adc_dma_callback_type { ADC_DMA_DEVICE_COMPLETE_CB, ADC_DMA_DEVICE_ERROR_CB };
-
-/**
- * \brief ADC interrupt callbacks
- */
-struct _adc_dma_callbacks {
- void (*complete)(struct _adc_dma_device *device, const uint16_t data);
- void (*error)(struct _adc_dma_device *device);
-};
-
-/**
- * \brief ADC descriptor device structure
- */
-struct _adc_dma_device {
- struct _adc_dma_callbacks adc_dma_cb;
- struct _irq_descriptor irq;
- void * hw;
-};
-
-/**
- * \name HPL functions
- */
-//@{
-/**
- * \brief Initialize synchronous ADC
- *
- * This function does low level ADC configuration.
- *
- * param[in] device The pointer to ADC device instance
- * param[in] hw The pointer to hardware instance
- *
- * \return Initialization status
- */
-int32_t _adc_dma_init(struct _adc_dma_device *const device, void *const hw);
-
-/**
- * \brief Deinitialize ADC
- *
- * \param[in] device The pointer to ADC device instance
- */
-void _adc_dma_deinit(struct _adc_dma_device *const device);
-
-/**
- * \brief Enable ADC peripheral
- *
- * \param[in] device The pointer to ADC device instance
- * \param[in] channel Channel number
- */
-void _adc_dma_enable_channel(struct _adc_dma_device *const device, const uint8_t channel);
-
-/**
- * \brief Disable ADC peripheral
- *
- * \param[in] device The pointer to ADC device instance
- * \param[in] channel Channel number
- */
-void _adc_dma_disable_channel(struct _adc_dma_device *const device, const uint8_t channel);
-
-/**
- * \brief Return address of ADC DMA source
- *
- * \param[in] device The pointer to ADC device instance
- *
- * \return ADC DMA source address
- */
-uint32_t _adc_get_source_for_dma(struct _adc_dma_device *const device);
-
-/**
- * \brief Retrieve ADC conversion data size
- *
- * \param[in] device The pointer to ADC device instance
- *
- * \return The data size in bytes
- */
-uint8_t _adc_dma_get_data_size(const struct _adc_dma_device *const device);
-
-/**
- * \brief Check if conversion is done
- *
- * \param[in] device The pointer to ADC device instance
- *
- * \return The status of conversion
- * \retval true The conversion is done
- * \retval false The conversion is not done
- */
-bool _adc_dma_is_conversion_done(const struct _adc_dma_device *const device);
-
-/**
- * \brief Make conversion
- *
- * \param[in] device The pointer to ADC device instance
- */
-void _adc_dma_convert(struct _adc_dma_device *const device);
-
-/**
- * \brief Set reference source
- *
- * \param[in] device The pointer to ADC device instance
- * \param[in] reference A reference source to set
- */
-void _adc_dma_set_reference_source(struct _adc_dma_device *const device, const adc_reference_t reference);
-
-/**
- * \brief Set resolution
- *
- * \param[in] device The pointer to ADC device instance
- * \param[in] resolution A resolution to set
- */
-void _adc_dma_set_resolution(struct _adc_dma_device *const device, const adc_resolution_t resolution);
-
-/**
- * \brief Set ADC input source of a channel
- *
- * \param[in] device The pointer to ADC device instance
- * \param[in] pos_input A positive input source to set
- * \param[in] neg_input A negative input source to set
- * \param[in] channel Channel number
- */
-void _adc_dma_set_inputs(struct _adc_dma_device *const device, const adc_pos_input_t pos_input,
- const adc_neg_input_t neg_input, const uint8_t channel);
-
-/**
- * \brief Set conversion mode
- *
- * \param[in] device The pointer to ADC device instance
- * \param[in] mode A conversion mode to set
- */
-void _adc_dma_set_conversion_mode(struct _adc_dma_device *const device, const enum adc_conversion_mode mode);
-
-/**
- * \brief Set differential mode
- *
- * \param[in] device The pointer to ADC device instance
- * \param[in] channel Channel number
- * \param[in] mode A differential mode to set
- */
-void _adc_dma_set_channel_differential_mode(struct _adc_dma_device *const device, const uint8_t channel,
- const enum adc_differential_mode mode);
-
-/**
- * \brief Set gain
- *
- * \param[in] device The pointer to ADC device instance
- * \param[in] channel Channel number
- * \param[in] gain A gain to set
- */
-void _adc_dma_set_channel_gain(struct _adc_dma_device *const device, const uint8_t channel, const adc_gain_t gain);
-
-/**
- * \brief Set window mode
- *
- * \param[in] device The pointer to ADC device instance
- * \param[in] mode A mode to set
- */
-void _adc_dma_set_window_mode(struct _adc_dma_device *const device, const adc_window_mode_t mode);
-
-/**
- * \brief Set thresholds
- *
- * \param[in] device The pointer to ADC device instance
- * \param[in] low_threshold A lower thresholds to set
- * \param[in] up_threshold An upper thresholds to set
- */
-void _adc_dma_set_thresholds(struct _adc_dma_device *const device, const adc_threshold_t low_threshold,
- const adc_threshold_t up_threshold);
-
-/**
- * \brief Retrieve threshold state
- *
- * \param[in] device The pointer to ADC device instance
- * \param[out] state The threshold state
- */
-void _adc_dma_get_threshold_state(const struct _adc_dma_device *const device, adc_threshold_status_t *const state);
-
-//@}
-
-#ifdef __cplusplus
-}
-#endif
-/**@}*/
-#endif /* _HPL_ADC_DMA_H_INCLUDED */
diff --git a/watch-library/hal/include/hpl_adc_sync.h b/watch-library/hal/include/hpl_adc_sync.h
deleted file mode 100644
index 3bfbc61..0000000
--- a/watch-library/hal/include/hpl_adc_sync.h
+++ /dev/null
@@ -1,271 +0,0 @@
-/**
- * \file
- *
- * \brief ADC related functionality declaration.
- *
- * Copyright (c) 2014-2018 Microchip Technology Inc. and its subsidiaries.
- *
- * \asf_license_start
- *
- * \page License
- *
- * Subject to your compliance with these terms, you may use Microchip
- * software and any derivatives exclusively with Microchip products.
- * It is your responsibility to comply with third party license terms applicable
- * to your use of third party software (including open source software) that
- * may accompany Microchip software.
- *
- * THIS SOFTWARE IS SUPPLIED BY MICROCHIP "AS IS". NO WARRANTIES,
- * WHETHER EXPRESS, IMPLIED OR STATUTORY, APPLY TO THIS SOFTWARE,
- * INCLUDING ANY IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY,
- * AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT WILL MICROCHIP BE
- * LIABLE FOR ANY INDIRECT, SPECIAL, PUNITIVE, INCIDENTAL OR CONSEQUENTIAL
- * LOSS, DAMAGE, COST OR EXPENSE OF ANY KIND WHATSOEVER RELATED TO THE
- * SOFTWARE, HOWEVER CAUSED, EVEN IF MICROCHIP HAS BEEN ADVISED OF THE
- * POSSIBILITY OR THE DAMAGES ARE FORESEEABLE. TO THE FULLEST EXTENT
- * ALLOWED BY LAW, MICROCHIP'S TOTAL LIABILITY ON ALL CLAIMS IN ANY WAY
- * RELATED TO THIS SOFTWARE WILL NOT EXCEED THE AMOUNT OF FEES, IF ANY,
- * THAT YOU HAVE PAID DIRECTLY TO MICROCHIP FOR THIS SOFTWARE.
- *
- * \asf_license_stop
- *
- */
-
-#ifndef _HPL_ADC_SYNC_H_INCLUDED
-#define _HPL_ADC_SYNC_H_INCLUDED
-
-/**
- * \addtogroup HPL ADC
- *
- * \section hpl_adc_sync_rev Revision History
- * - v1.0.0 Initial Release
- *
- *@{
- */
-
-#include "compiler.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/**
- * \brief ADC reference source
- */
-typedef uint8_t adc_reference_t;
-
-/**
- * \brief ADC resolution
- */
-typedef uint8_t adc_resolution_t;
-
-/**
- * \brief ADC positive input for channel
- */
-typedef uint8_t adc_pos_input_t;
-
-/**
- * \brief ADC negative input for channel
- */
-typedef uint8_t adc_neg_input_t;
-
-/**
- * \brief ADC threshold
- */
-typedef uint16_t adc_threshold_t;
-
-/**
- * \brief ADC gain
- */
-typedef uint8_t adc_gain_t;
-
-/**
- * \brief ADC conversion mode
- */
-enum adc_conversion_mode { ADC_CONVERSION_MODE_SINGLE_CONVERSION = 0, ADC_CONVERSION_MODE_FREERUN };
-
-/**
- * \brief ADC differential mode
- */
-enum adc_differential_mode { ADC_DIFFERENTIAL_MODE_SINGLE_ENDED = 0, ADC_DIFFERENTIAL_MODE_DIFFERENTIAL };
-
-/**
- * \brief ADC window mode
- */
-typedef uint8_t adc_window_mode_t;
-
-/**
- * \brief ADC threshold status
- */
-typedef bool adc_threshold_status_t;
-
-/**
- * \brief ADC sync descriptor device structure
- */
-struct _adc_sync_device {
- void *hw;
-};
-
-/**
- * \name HPL functions
- */
-//@{
-/**
- * \brief Initialize synchronous ADC
- *
- * This function does low level ADC configuration.
- *
- * param[in] device The pointer to ADC device instance
- * param[in] hw The pointer to hardware instance
- *
- * \return Initialization status
- */
-int32_t _adc_sync_init(struct _adc_sync_device *const device, void *const hw);
-
-/**
- * \brief Deinitialize ADC
- *
- * \param[in] device The pointer to ADC device instance
- */
-void _adc_sync_deinit(struct _adc_sync_device *const device);
-
-/**
- * \brief Enable ADC
- *
- * \param[in] device The pointer to ADC device instance
- * \param[in] channel Channel number
- */
-void _adc_sync_enable_channel(struct _adc_sync_device *const device, const uint8_t channel);
-
-/**
- * \brief Disable ADC
- *
- * \param[in] device The pointer to ADC device instance
- * \param[in] channel Channel number
- */
-void _adc_sync_disable_channel(struct _adc_sync_device *const device, const uint8_t channel);
-
-/**
- * \brief Retrieve ADC conversion data size
- *
- * \param[in] device The pointer to ADC device instance
- *
- * \return The data size in bytes
- */
-uint8_t _adc_sync_get_data_size(const struct _adc_sync_device *const device);
-
-/**
- * \brief Check if conversion is done
- *
- * \param[in] device The pointer to ADC device instance
- * \param[in] channel Channel number
- *
- * \return The status of conversion
- * \retval true The conversion is done
- * \retval false The conversion is not done
- */
-bool _adc_sync_is_channel_conversion_done(const struct _adc_sync_device *const device, const uint8_t channel);
-
-/**
- * \brief Make conversion
- *
- * \param[in] device The pointer to ADC device instance
- */
-void _adc_sync_convert(struct _adc_sync_device *const device);
-
-/**
- * \brief Retrieve the conversion result
- *
- * \param[in] device The pointer to ADC device instance
- * \param[in] channel Channel number
- *
- * \return The result value of channel
- */
-uint16_t _adc_sync_read_channel_data(const struct _adc_sync_device *const device, const uint8_t channel);
-
-/**
- * \brief Set reference source
- *
- * \param[in] device The pointer to ADC device instance
- * \param[in] reference A reference source to set
- */
-void _adc_sync_set_reference_source(struct _adc_sync_device *const device, const adc_reference_t reference);
-
-/**
- * \brief Set resolution
- *
- * \param[in] device The pointer to ADC device instance
- * \param[in] resolution A resolution to set
- */
-void _adc_sync_set_resolution(struct _adc_sync_device *const device, const adc_resolution_t resolution);
-
-/**
- * \brief Set ADC input source of a channel
- *
- * \param[in] device The pointer to ADC device instance
- * \param[in] pos_input A positive input source to set
- * \param[in] neg_input A negative input source to set
- * \param[in] channel Channel number
- */
-void _adc_sync_set_inputs(struct _adc_sync_device *const device, const adc_pos_input_t pos_input,
- const adc_neg_input_t neg_input, const uint8_t channel);
-
-/**
- * \brief Set conversion mode
- *
- * \param[in] device The pointer to ADC device instance
- * \param[in] mode A conversion mode to set
- */
-void _adc_sync_set_conversion_mode(struct _adc_sync_device *const device, const enum adc_conversion_mode mode);
-
-/**
- * \brief Set differential mode
- *
- * \param[in] device The pointer to ADC device instance
- * \param[in] channel Channel number
- * \param[in] mode A differential mode to set
- */
-void _adc_sync_set_channel_differential_mode(struct _adc_sync_device *const device, const uint8_t channel,
- const enum adc_differential_mode mode);
-
-/**
- * \brief Set gain
- *
- * \param[in] device The pointer to ADC device instance
- * \param[in] channel Channel number
- * \param[in] gain A gain to set
- */
-void _adc_sync_set_channel_gain(struct _adc_sync_device *const device, const uint8_t channel, const adc_gain_t gain);
-
-/**
- * \brief Set window mode
- *
- * \param[in] device The pointer to ADC device instance
- * \param[in] mode A mode to set
- */
-void _adc_sync_set_window_mode(struct _adc_sync_device *const device, const adc_window_mode_t mode);
-
-/**
- * \brief Set threshold
- *
- * \param[in] device The pointer to ADC device instance
- * \param[in] low_threshold A lower threshold to set
- * \param[in] up_threshold An upper thresholds to set
- */
-void _adc_sync_set_thresholds(struct _adc_sync_device *const device, const adc_threshold_t low_threshold,
- const adc_threshold_t up_threshold);
-
-/**
- * \brief Retrieve threshold state
- *
- * \param[in] device The pointer to ADC device instance
- * \param[out] state The threshold state
- */
-void _adc_sync_get_threshold_state(const struct _adc_sync_device *const device, adc_threshold_status_t *const state);
-//@}
-
-#ifdef __cplusplus
-}
-#endif
-/**@}*/
-#endif /* _HPL_ADC_SYNC_H_INCLUDED */
diff --git a/watch-library/hal/include/hpl_pwm.h b/watch-library/hal/include/hpl_pwm.h
deleted file mode 100644
index ea056de..0000000
--- a/watch-library/hal/include/hpl_pwm.h
+++ /dev/null
@@ -1,105 +0,0 @@
-/**
- * \file
- *
- * \brief PWM related functionality declaration.
- *
- * Copyright (c) 2014-2018 Microchip Technology Inc. and its subsidiaries.
- *
- * \asf_license_start
- *
- * \page License
- *
- * Subject to your compliance with these terms, you may use Microchip
- * software and any derivatives exclusively with Microchip products.
- * It is your responsibility to comply with third party license terms applicable
- * to your use of third party software (including open source software) that
- * may accompany Microchip software.
- *
- * THIS SOFTWARE IS SUPPLIED BY MICROCHIP "AS IS". NO WARRANTIES,
- * WHETHER EXPRESS, IMPLIED OR STATUTORY, APPLY TO THIS SOFTWARE,
- * INCLUDING ANY IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY,
- * AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT WILL MICROCHIP BE
- * LIABLE FOR ANY INDIRECT, SPECIAL, PUNITIVE, INCIDENTAL OR CONSEQUENTIAL
- * LOSS, DAMAGE, COST OR EXPENSE OF ANY KIND WHATSOEVER RELATED TO THE
- * SOFTWARE, HOWEVER CAUSED, EVEN IF MICROCHIP HAS BEEN ADVISED OF THE
- * POSSIBILITY OR THE DAMAGES ARE FORESEEABLE. TO THE FULLEST EXTENT
- * ALLOWED BY LAW, MICROCHIP'S TOTAL LIABILITY ON ALL CLAIMS IN ANY WAY
- * RELATED TO THIS SOFTWARE WILL NOT EXCEED THE AMOUNT OF FEES, IF ANY,
- * THAT YOU HAVE PAID DIRECTLY TO MICROCHIP FOR THIS SOFTWARE.
- *
- * \asf_license_stop
- *
- */
-#ifndef _HPL_PWM_H_INCLUDED
-#define _HPL_PWM_H_INCLUDED
-
-/**
- * \addtogroup HPL PWM
- *
- * \section hpl_pwm_rev Revision History
- * - v1.0.0 Initial Release
- *
- *@{
- */
-
-#include
-#include "hpl_irq.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/**
- * \brief PWM callback types
- */
-enum _pwm_callback_type { PWM_DEVICE_PERIOD_CB, PWM_DEVICE_ERROR_CB };
-
-/**
- * \brief PWM pulse-width period
- */
-typedef uint32_t pwm_period_t;
-
-/**
- * \brief PWM device structure
- *
- * The PWM device structure forward declaration.
- */
-struct _pwm_device;
-
-/**
- * \brief PWM interrupt callbacks
- */
-struct _pwm_callback {
- void (*pwm_period_cb)(struct _pwm_device *device);
- void (*pwm_error_cb)(struct _pwm_device *device);
-};
-
-/**
- * \brief PWM descriptor device structure
- */
-struct _pwm_device {
- struct _pwm_callback callback;
- struct _irq_descriptor irq;
- void * hw;
-};
-
-/**
- * \brief PWM functions, pointers to low-level functions
- */
-struct _pwm_hpl_interface {
- int32_t (*init)(struct _pwm_device *const device, void *const hw);
- void (*deinit)(struct _pwm_device *const device);
- void (*start_pwm)(struct _pwm_device *const device);
- void (*stop_pwm)(struct _pwm_device *const device);
- void (*set_pwm_param)(struct _pwm_device *const device, const pwm_period_t period, const pwm_period_t duty_cycle);
- bool (*is_pwm_enabled)(const struct _pwm_device *const device);
- pwm_period_t (*pwm_get_period)(const struct _pwm_device *const device);
- uint32_t (*pwm_get_duty)(const struct _pwm_device *const device);
- void (*set_irq_state)(struct _pwm_device *const device, const enum _pwm_callback_type type, const bool disable);
-};
-
-#ifdef __cplusplus
-}
-#endif
-/**@}*/
-#endif /* _HPL_PWM_H_INCLUDED */
diff --git a/watch-library/hal/src/hal_adc_sync.c b/watch-library/hal/src/hal_adc_sync.c
deleted file mode 100644
index 8d2e872..0000000
--- a/watch-library/hal/src/hal_adc_sync.c
+++ /dev/null
@@ -1,245 +0,0 @@
-/**
- * \file
- *
- * \brief ADC functionality implementation.
- *
- * Copyright (c) 2014-2018 Microchip Technology Inc. and its subsidiaries.
- *
- * \asf_license_start
- *
- * \page License
- *
- * Subject to your compliance with these terms, you may use Microchip
- * software and any derivatives exclusively with Microchip products.
- * It is your responsibility to comply with third party license terms applicable
- * to your use of third party software (including open source software) that
- * may accompany Microchip software.
- *
- * THIS SOFTWARE IS SUPPLIED BY MICROCHIP "AS IS". NO WARRANTIES,
- * WHETHER EXPRESS, IMPLIED OR STATUTORY, APPLY TO THIS SOFTWARE,
- * INCLUDING ANY IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY,
- * AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT WILL MICROCHIP BE
- * LIABLE FOR ANY INDIRECT, SPECIAL, PUNITIVE, INCIDENTAL OR CONSEQUENTIAL
- * LOSS, DAMAGE, COST OR EXPENSE OF ANY KIND WHATSOEVER RELATED TO THE
- * SOFTWARE, HOWEVER CAUSED, EVEN IF MICROCHIP HAS BEEN ADVISED OF THE
- * POSSIBILITY OR THE DAMAGES ARE FORESEEABLE. TO THE FULLEST EXTENT
- * ALLOWED BY LAW, MICROCHIP'S TOTAL LIABILITY ON ALL CLAIMS IN ANY WAY
- * RELATED TO THIS SOFTWARE WILL NOT EXCEED THE AMOUNT OF FEES, IF ANY,
- * THAT YOU HAVE PAID DIRECTLY TO MICROCHIP FOR THIS SOFTWARE.
- *
- * \asf_license_stop
- *
- */
-
-/**
- * \brief Indicates HAL being compiled. Must be defined before including.
- */
-#define _COMPILING_HAL
-
-#include "hal_adc_sync.h"
-#include
-
-/**
- * \brief Driver version
- */
-#define DRIVER_VERSION 0x00000001u
-
-/**
- * \brief Maximum amount of ADC interface instances
- */
-#define MAX_ADC_AMOUNT ADC_INST_NUM
-
-/**
- * \brief Initialize ADC
- */
-int32_t adc_sync_init(struct adc_sync_descriptor *const descr, void *const hw, void *const func)
-{
- ASSERT(descr && hw);
- (void)func;
-
- return _adc_sync_init(&descr->device, hw);
-}
-
-/**
- * \brief Deinitialize ADC
- */
-int32_t adc_sync_deinit(struct adc_sync_descriptor *const descr)
-{
- ASSERT(descr);
- _adc_sync_deinit(&descr->device);
-
- return ERR_NONE;
-}
-
-/**
- * \brief Enable ADC
- */
-int32_t adc_sync_enable_channel(struct adc_sync_descriptor *const descr, const uint8_t channel)
-{
- ASSERT(descr);
- _adc_sync_enable_channel(&descr->device, channel);
-
- return ERR_NONE;
-}
-
-/**
- * \brief Disable ADC
- */
-int32_t adc_sync_disable_channel(struct adc_sync_descriptor *const descr, const uint8_t channel)
-{
- ASSERT(descr);
- _adc_sync_disable_channel(&descr->device, channel);
- return ERR_NONE;
-}
-
-/*
- * \brief Read data from ADC
- */
-int32_t adc_sync_read_channel(struct adc_sync_descriptor *const descr, const uint8_t channel, uint8_t *const buffer,
- const uint16_t length)
-{
- uint8_t data_size;
- uint16_t offset = 0;
-
- ASSERT(descr && buffer && length);
- data_size = _adc_sync_get_data_size(&descr->device);
- ASSERT(!(length % data_size));
-
- do {
- uint16_t result;
- _adc_sync_convert(&descr->device);
-
- while (!_adc_sync_is_channel_conversion_done(&descr->device, channel))
- ;
-
- result = _adc_sync_read_channel_data(&descr->device, channel);
- buffer[offset] = result;
- if (1 < data_size) {
- buffer[offset + 1] = result >> 8;
- }
- offset += data_size;
- } while (offset < length);
-
- return offset;
-}
-
-/**
- * \brief Set ADC reference source
- */
-int32_t adc_sync_set_reference(struct adc_sync_descriptor *const descr, const adc_reference_t reference)
-{
- ASSERT(descr);
- _adc_sync_set_reference_source(&descr->device, reference);
-
- return ERR_NONE;
-}
-
-/**
- * \brief Set ADC resolution
- */
-int32_t adc_sync_set_resolution(struct adc_sync_descriptor *const descr, const adc_resolution_t resolution)
-{
- ASSERT(descr);
- _adc_sync_set_resolution(&descr->device, resolution);
-
- return ERR_NONE;
-}
-
-/**
- * \brief Set ADC input source of a channel
- */
-int32_t adc_sync_set_inputs(struct adc_sync_descriptor *const descr, const adc_pos_input_t pos_input,
- const adc_neg_input_t neg_input, const uint8_t channel)
-{
- ASSERT(descr);
- _adc_sync_set_inputs(&descr->device, pos_input, neg_input, channel);
-
- return ERR_NONE;
-}
-
-/**
- * \brief Set ADC thresholds
- */
-int32_t adc_sync_set_thresholds(struct adc_sync_descriptor *const descr, const adc_threshold_t low_threshold,
- const adc_threshold_t up_threshold)
-{
- ASSERT(descr);
- _adc_sync_set_thresholds(&descr->device, low_threshold, up_threshold);
-
- return ERR_NONE;
-}
-
-/**
- * \brief Set ADC gain
- */
-int32_t adc_sync_set_channel_gain(struct adc_sync_descriptor *const descr, const uint8_t channel, const adc_gain_t gain)
-{
- ASSERT(descr);
- _adc_sync_set_channel_gain(&descr->device, channel, gain);
-
- return ERR_NONE;
-}
-
-/**
- * \brief Set ADC conversion mode
- */
-int32_t adc_sync_set_conversion_mode(struct adc_sync_descriptor *const descr, const enum adc_conversion_mode mode)
-{
- ASSERT(descr);
- _adc_sync_set_conversion_mode(&descr->device, mode);
-
- return ERR_NONE;
-}
-
-/**
- * \brief Set ADC differential mode
- */
-int32_t adc_sync_set_channel_differential_mode(struct adc_sync_descriptor *const descr, const uint8_t channel,
- const enum adc_differential_mode mode)
-{
- ASSERT(descr);
- _adc_sync_set_channel_differential_mode(&descr->device, channel, mode);
-
- return ERR_NONE;
-}
-
-/**
- * \brief Set ADC window mode
- */
-int32_t adc_sync_set_window_mode(struct adc_sync_descriptor *const descr, const adc_window_mode_t mode)
-{
- ASSERT(descr);
- _adc_sync_set_window_mode(&descr->device, mode);
-
- return ERR_NONE;
-}
-
-/**
- * \brief Retrieve threshold state
- */
-int32_t adc_sync_get_threshold_state(const struct adc_sync_descriptor *const descr, adc_threshold_status_t *const state)
-{
- ASSERT(descr && state);
- _adc_sync_get_threshold_state(&descr->device, state);
-
- return ERR_NONE;
-}
-
-/**
- * \brief Check if conversion is complete
- */
-int32_t adc_sync_is_channel_conversion_complete(const struct adc_sync_descriptor *const descr, const uint8_t channel)
-{
- ASSERT(descr);
- return _adc_sync_is_channel_conversion_done(&descr->device, channel);
-}
-
-/**
- * \brief Retrieve the current driver version
- */
-uint32_t adc_sync_get_version(void)
-{
- return DRIVER_VERSION;
-}
-
-//@}
diff --git a/watch-library/hal/src/hal_pwm.c b/watch-library/hal/src/hal_pwm.c
deleted file mode 100644
index bc0629f..0000000
--- a/watch-library/hal/src/hal_pwm.c
+++ /dev/null
@@ -1,160 +0,0 @@
-/**
- * \file
- *
- * \brief PWM functionality implementation.
- *
- * Copyright (c) 2015-2018 Microchip Technology Inc. and its subsidiaries.
- *
- * \asf_license_start
- *
- * \page License
- *
- * Subject to your compliance with these terms, you may use Microchip
- * software and any derivatives exclusively with Microchip products.
- * It is your responsibility to comply with third party license terms applicable
- * to your use of third party software (including open source software) that
- * may accompany Microchip software.
- *
- * THIS SOFTWARE IS SUPPLIED BY MICROCHIP "AS IS". NO WARRANTIES,
- * WHETHER EXPRESS, IMPLIED OR STATUTORY, APPLY TO THIS SOFTWARE,
- * INCLUDING ANY IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY,
- * AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT WILL MICROCHIP BE
- * LIABLE FOR ANY INDIRECT, SPECIAL, PUNITIVE, INCIDENTAL OR CONSEQUENTIAL
- * LOSS, DAMAGE, COST OR EXPENSE OF ANY KIND WHATSOEVER RELATED TO THE
- * SOFTWARE, HOWEVER CAUSED, EVEN IF MICROCHIP HAS BEEN ADVISED OF THE
- * POSSIBILITY OR THE DAMAGES ARE FORESEEABLE. TO THE FULLEST EXTENT
- * ALLOWED BY LAW, MICROCHIP'S TOTAL LIABILITY ON ALL CLAIMS IN ANY WAY
- * RELATED TO THIS SOFTWARE WILL NOT EXCEED THE AMOUNT OF FEES, IF ANY,
- * THAT YOU HAVE PAID DIRECTLY TO MICROCHIP FOR THIS SOFTWARE.
- *
- * \asf_license_stop
- *
- */
-
-#include "hal_pwm.h"
-#include
-#include
-
-/**
- * \brief Driver version
- */
-#define DRIVER_VERSION 0x00000001u
-
-static void pwm_period_expired(struct _pwm_device *device);
-static void pwm_detect_fault(struct _pwm_device *device);
-
-/**
- * \brief Initialize pwm
- */
-int32_t pwm_init(struct pwm_descriptor *const descr, void *const hw, struct _pwm_hpl_interface *const func)
-{
- ASSERT(descr && hw && func);
- descr->func = func;
- descr->func->init(&descr->device, hw);
- descr->device.callback.pwm_period_cb = pwm_period_expired;
- descr->device.callback.pwm_error_cb = pwm_detect_fault;
- return ERR_NONE;
-}
-
-/**
- * \brief Deinitialize pwm
- */
-int32_t pwm_deinit(struct pwm_descriptor *const descr)
-{
- ASSERT(descr && descr->func);
- descr->func->deinit(&descr->device);
-
- return ERR_NONE;
-}
-
-/**
- * \brief Start pwm
- */
-int32_t pwm_enable(struct pwm_descriptor *const descr)
-{
- ASSERT(descr && descr->func);
- if (descr->func->is_pwm_enabled(&descr->device)) {
- return ERR_DENIED;
- }
- descr->func->start_pwm(&descr->device);
-
- return ERR_NONE;
-}
-
-/**
- * \brief Stop pwm
- */
-int32_t pwm_disable(struct pwm_descriptor *const descr)
-{
- ASSERT(descr && descr->func);
- if (!descr->func->is_pwm_enabled(&descr->device)) {
- return ERR_DENIED;
- }
- descr->func->stop_pwm(&descr->device);
-
- return ERR_NONE;
-}
-
-/**
- * \brief Register PWM callback
- */
-int32_t pwm_register_callback(struct pwm_descriptor *const descr, enum pwm_callback_type type, pwm_cb_t cb)
-{
- switch (type) {
- case PWM_PERIOD_CB:
- descr->pwm_cb.period = cb;
- break;
-
- case PWM_ERROR_CB:
- descr->pwm_cb.error = cb;
- break;
-
- default:
- return ERR_INVALID_ARG;
- }
- ASSERT(descr && descr->func);
- descr->func->set_irq_state(&descr->device, (enum _pwm_callback_type)type, NULL != cb);
- return ERR_NONE;
-}
-
-/**
- * \brief Change PWM parameter
- */
-int32_t pwm_set_parameters(struct pwm_descriptor *const descr, const pwm_period_t period, const pwm_period_t duty_cycle)
-{
- ASSERT(descr && descr->func);
- descr->func->set_pwm_param(&descr->device, period, duty_cycle);
- return ERR_NONE;
-}
-
-/**
- * \brief Retrieve the current driver version
- */
-uint32_t pwm_get_version(void)
-{
- return DRIVER_VERSION;
-}
-
-/**
- * \internal Process interrupts caused by period experied
- */
-static void pwm_period_expired(struct _pwm_device *device)
-{
- struct pwm_descriptor *const descr = CONTAINER_OF(device, struct pwm_descriptor, device);
-
- if (descr->pwm_cb.period) {
- descr->pwm_cb.period(descr);
- }
-}
-
-/**
- * \internal Process interrupts caused by pwm fault
- */
-static void pwm_detect_fault(struct _pwm_device *device)
-{
- struct pwm_descriptor *const descr = CONTAINER_OF(device, struct pwm_descriptor, device);
-
- if (descr->pwm_cb.error) {
- descr->pwm_cb.error(descr);
- }
-}
diff --git a/watch-library/hpl/adc/hpl_adc.c b/watch-library/hpl/adc/hpl_adc.c
deleted file mode 100644
index c9db19b..0000000
--- a/watch-library/hpl/adc/hpl_adc.c
+++ /dev/null
@@ -1,771 +0,0 @@
-
-/**
- * \file
- *
- * \brief SAM Analog Digital Converter
- *
- * Copyright (c) 2015-2018 Microchip Technology Inc. and its subsidiaries.
- *
- * \asf_license_start
- *
- * \page License
- *
- * Subject to your compliance with these terms, you may use Microchip
- * software and any derivatives exclusively with Microchip products.
- * It is your responsibility to comply with third party license terms applicable
- * to your use of third party software (including open source software) that
- * may accompany Microchip software.
- *
- * THIS SOFTWARE IS SUPPLIED BY MICROCHIP "AS IS". NO WARRANTIES,
- * WHETHER EXPRESS, IMPLIED OR STATUTORY, APPLY TO THIS SOFTWARE,
- * INCLUDING ANY IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY,
- * AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT WILL MICROCHIP BE
- * LIABLE FOR ANY INDIRECT, SPECIAL, PUNITIVE, INCIDENTAL OR CONSEQUENTIAL
- * LOSS, DAMAGE, COST OR EXPENSE OF ANY KIND WHATSOEVER RELATED TO THE
- * SOFTWARE, HOWEVER CAUSED, EVEN IF MICROCHIP HAS BEEN ADVISED OF THE
- * POSSIBILITY OR THE DAMAGES ARE FORESEEABLE. TO THE FULLEST EXTENT
- * ALLOWED BY LAW, MICROCHIP'S TOTAL LIABILITY ON ALL CLAIMS IN ANY WAY
- * RELATED TO THIS SOFTWARE WILL NOT EXCEED THE AMOUNT OF FEES, IF ANY,
- * THAT YOU HAVE PAID DIRECTLY TO MICROCHIP FOR THIS SOFTWARE.
- *
- * \asf_license_stop
- *
- */
-
-#include
-#include
-#include
-#include
-#include
-#include
-
-#ifndef CONF_ADC_0_ENABLE
-#define CONF_ADC_0_ENABLE 0
-#endif
-#ifndef CONF_ADC_1_ENABLE
-#define CONF_ADC_1_ENABLE 0
-#endif
-
-/**
- * \brief Macro is used to fill ADC configuration structure based on its number
- *
- * \param[in] n The number of structures
- */
-#define ADC_CONFIGURATION(n) \
- { \
- (n), \
- (CONF_ADC_##n##_RUNSTDBY << ADC_CTRLA_RUNSTDBY_Pos) | (CONF_ADC_##n##_ONDEMAND << ADC_CTRLA_ONDEMAND_Pos), \
- ADC_CTRLB_PRESCALER(CONF_ADC_##n##_PRESCALER), \
- (CONF_ADC_##n##_REFCOMP << ADC_REFCTRL_REFCOMP_Pos) | ADC_REFCTRL_REFSEL(CONF_ADC_##n##_REFSEL), \
- (CONF_ADC_##n##_WINMONEO << ADC_EVCTRL_WINMONEO_Pos) \
- | (CONF_ADC_##n##_RESRDYEO << ADC_EVCTRL_RESRDYEO_Pos) \
- | (CONF_ADC_##n##_STARTINV << ADC_EVCTRL_STARTINV_Pos) \
- | (CONF_ADC_##n##_FLUSHINV << ADC_EVCTRL_FLUSHINV_Pos) \
- | (CONF_ADC_##n##_STARTEI << ADC_EVCTRL_STARTEI_Pos) \
- | (CONF_ADC_##n##_FLUSHEI << ADC_EVCTRL_FLUSHEI_Pos), \
- ADC_INPUTCTRL_MUXNEG(CONF_ADC_##n##_MUXNEG) | ADC_INPUTCTRL_MUXPOS(CONF_ADC_##n##_MUXPOS), \
- ADC_CTRLC_WINMODE(CONF_ADC_##n##_WINMODE) | ADC_CTRLC_RESSEL(CONF_ADC_##n##_RESSEL) \
- | (CONF_ADC_##n##_CORREN << ADC_CTRLC_CORREN_Pos) | (CONF_ADC_##n##_FREERUN << ADC_CTRLC_FREERUN_Pos) \
- | (CONF_ADC_##n##_LEFTADJ << ADC_CTRLC_LEFTADJ_Pos) \
- | (CONF_ADC_##n##_DIFFMODE << ADC_CTRLC_DIFFMODE_Pos), \
- ADC_AVGCTRL_ADJRES(CONF_ADC_##n##_ADJRES) | ADC_AVGCTRL_SAMPLENUM(CONF_ADC_##n##_SAMPLENUM), \
- (CONF_ADC_##n##_OFFCOMP << ADC_SAMPCTRL_OFFCOMP_Pos) | ADC_SAMPCTRL_SAMPLEN(CONF_ADC_##n##_SAMPLEN), \
- ADC_WINLT_WINLT(CONF_ADC_##n##_WINLT), ADC_WINUT_WINUT(CONF_ADC_##n##_WINUT), \
- ADC_GAINCORR_GAINCORR(CONF_ADC_##n##_GAINCORR), ADC_OFFSETCORR_OFFSETCORR(CONF_ADC_##n##_OFFSETCORR), \
- CONF_ADC_##n##_DBGRUN << ADC_DBGCTRL_DBGRUN_Pos, ADC_SEQCTRL_SEQEN(CONF_ADC_##n##_SEQEN), \
- }
-
-/**
- * \brief ADC configuration
- */
-struct adc_configuration {
- uint8_t number;
- hri_adc_ctrla_reg_t ctrl_a;
- hri_adc_ctrlb_reg_t ctrl_b;
- hri_adc_refctrl_reg_t ref_ctrl;
- hri_adc_evctrl_reg_t ev_ctrl;
- hri_adc_inputctrl_reg_t input_ctrl;
- hri_adc_ctrlc_reg_t ctrl_c;
- hri_adc_avgctrl_reg_t avg_ctrl;
- hri_adc_sampctrl_reg_t samp_ctrl;
- hri_adc_winlt_reg_t win_lt;
- hri_adc_winut_reg_t win_ut;
- hri_adc_gaincorr_reg_t gain_corr;
- hri_adc_offsetcorr_reg_t offset_corr;
- hri_adc_dbgctrl_reg_t dbg_ctrl;
- hri_adc_seqctrl_reg_t seq_ctrl;
-};
-
-#define ADC_AMOUNT (CONF_ADC_0_ENABLE + CONF_ADC_1_ENABLE)
-
-/**
- * \brief Array of ADC configurations
- */
-static const struct adc_configuration _adcs[] = {
-#if CONF_ADC_0_ENABLE == 1
- ADC_CONFIGURATION(0),
-#endif
-#if CONF_ADC_1_ENABLE == 1
- ADC_CONFIGURATION(1),
-#endif
-};
-
-static void _adc_set_reference_source(void *const hw, const adc_reference_t reference);
-
-/**
- * \brief Retrieve ordinal number of the given adc hardware instance
- */
-static uint8_t _adc_get_hardware_index(const void *const hw)
-{
-
- (void)hw;
- return 0;
-}
-
-/** \brief Return the pointer to register settings of specific ADC
- * \param[in] hw_addr The hardware register base address.
- * \return Pointer to register settings of specific ADC.
- */
-static uint8_t _adc_get_regs(const uint32_t hw_addr)
-{
- uint8_t n = _adc_get_hardware_index((const void *)hw_addr);
- uint8_t i;
-
- for (i = 0; i < sizeof(_adcs) / sizeof(struct adc_configuration); i++) {
- if (_adcs[i].number == n) {
- return i;
- }
- }
-
- ASSERT(false);
- return 0;
-}
-
-/**
- * \brief Retrieve IRQ number for the given hardware instance
- */
-static uint8_t _adc_get_irq_num(const struct _adc_async_device *const device)
-{
-
- (void)device;
- return ADC_IRQn;
-}
-
-/**
- * \brief Init irq param with the given afec hardware instance
- */
-static void _adc_init_irq_param(const void *const hw, struct _adc_async_device *dev)
-{
- (void)hw;
- (void)dev;
-}
-
-/**
- * \brief Initialize ADC
- *
- * \param[in] hw The pointer to hardware instance
- * \param[in] i The number of hardware instance
- */
-static int32_t _adc_init(void *const hw, const uint8_t i)
-{
- uint16_t calib_reg = 0;
- calib_reg = ADC_CALIB_BIASREFBUF((*(uint32_t *)ADC_FUSES_BIASREFBUF_ADDR >> ADC_FUSES_BIASREFBUF_Pos))
- | ADC_CALIB_BIASCOMP((*(uint32_t *)ADC_FUSES_BIASCOMP_ADDR >> ADC_FUSES_BIASCOMP_Pos));
-
- ASSERT(hw == ADC);
-
- if (!hri_adc_is_syncing(hw, ADC_SYNCBUSY_SWRST)) {
- if (hri_adc_get_CTRLA_reg(hw, ADC_CTRLA_ENABLE)) {
- hri_adc_clear_CTRLA_ENABLE_bit(hw);
- hri_adc_wait_for_sync(hw, ADC_SYNCBUSY_ENABLE);
- }
- hri_adc_write_CTRLA_reg(hw, ADC_CTRLA_SWRST);
- }
- hri_adc_wait_for_sync(hw, ADC_SYNCBUSY_SWRST);
-
- hri_adc_write_CALIB_reg(hw, calib_reg);
- hri_adc_write_CTRLB_reg(hw, _adcs[i].ctrl_b);
- hri_adc_write_REFCTRL_reg(hw, _adcs[i].ref_ctrl);
- hri_adc_write_EVCTRL_reg(hw, _adcs[i].ev_ctrl);
- hri_adc_write_INPUTCTRL_reg(hw, _adcs[i].input_ctrl);
- hri_adc_write_CTRLC_reg(hw, _adcs[i].ctrl_c);
- hri_adc_write_AVGCTRL_reg(hw, _adcs[i].avg_ctrl);
- hri_adc_write_SAMPCTRL_reg(hw, _adcs[i].samp_ctrl);
- hri_adc_write_WINLT_reg(hw, _adcs[i].win_lt);
- hri_adc_write_WINUT_reg(hw, _adcs[i].win_ut);
- hri_adc_write_GAINCORR_reg(hw, _adcs[i].gain_corr);
- hri_adc_write_OFFSETCORR_reg(hw, _adcs[i].offset_corr);
- hri_adc_write_DBGCTRL_reg(hw, _adcs[i].dbg_ctrl);
- hri_adc_write_SEQCTRL_reg(hw, _adcs[i].seq_ctrl);
- hri_adc_write_CTRLA_reg(hw, _adcs[i].ctrl_a);
-
- return ERR_NONE;
-}
-
-/**
- * \brief De-initialize ADC
- *
- * \param[in] hw The pointer to hardware instance
- */
-static inline void _adc_deinit(void *hw)
-{
- hri_adc_clear_CTRLA_ENABLE_bit(hw);
- hri_adc_set_CTRLA_SWRST_bit(hw);
-}
-
-/**
- * \brief Initialize ADC
- */
-int32_t _adc_sync_init(struct _adc_sync_device *const device, void *const hw)
-{
- ASSERT(device);
-
- device->hw = hw;
-
- return _adc_init(hw, _adc_get_regs((uint32_t)hw));
-}
-
-/**
- * \brief Initialize ADC
- */
-int32_t _adc_async_init(struct _adc_async_device *const device, void *const hw)
-{
- int32_t init_status;
-
- ASSERT(device);
-
- init_status = _adc_init(hw, _adc_get_regs((uint32_t)hw));
- if (init_status) {
- return init_status;
- }
- device->hw = hw;
- _adc_init_irq_param(hw, device);
- NVIC_DisableIRQ(_adc_get_irq_num(device));
- NVIC_ClearPendingIRQ(_adc_get_irq_num(device));
- NVIC_EnableIRQ(_adc_get_irq_num(device));
-
- return ERR_NONE;
-}
-
-/**
- * \brief Initialize ADC
- */
-int32_t _adc_dma_init(struct _adc_dma_device *const device, void *const hw)
-{
- ASSERT(device);
-
- device->hw = hw;
-
- return _adc_init(hw, _adc_get_regs((uint32_t)hw));
-}
-
-/**
- * \brief De-initialize ADC
- */
-void _adc_sync_deinit(struct _adc_sync_device *const device)
-{
- _adc_deinit(device->hw);
-}
-
-/**
- * \brief De-initialize ADC
- */
-void _adc_async_deinit(struct _adc_async_device *const device)
-{
- NVIC_DisableIRQ(_adc_get_irq_num(device));
- NVIC_ClearPendingIRQ(_adc_get_irq_num(device));
-
- _adc_deinit(device->hw);
-}
-
-/**
- * \brief De-initialize ADC
- */
-void _adc_dma_deinit(struct _adc_dma_device *const device)
-{
- _adc_deinit(device->hw);
-}
-
-/**
- * \brief Enable ADC
- */
-void _adc_sync_enable_channel(struct _adc_sync_device *const device, const uint8_t channel)
-{
- (void)channel;
-
- hri_adc_set_CTRLA_ENABLE_bit(device->hw);
-}
-
-/**
- * \brief Enable ADC
- */
-void _adc_async_enable_channel(struct _adc_async_device *const device, const uint8_t channel)
-{
- (void)channel;
-
- hri_adc_set_CTRLA_ENABLE_bit(device->hw);
-}
-
-/**
- * \brief Enable ADC
- */
-void _adc_dma_enable_channel(struct _adc_dma_device *const device, const uint8_t channel)
-{
- (void)channel;
-
- hri_adc_set_CTRLA_ENABLE_bit(device->hw);
-}
-
-/**
- * \brief Disable ADC
- */
-void _adc_sync_disable_channel(struct _adc_sync_device *const device, const uint8_t channel)
-{
- (void)channel;
-
- hri_adc_clear_CTRLA_ENABLE_bit(device->hw);
-}
-
-/**
- * \brief Disable ADC
- */
-void _adc_async_disable_channel(struct _adc_async_device *const device, const uint8_t channel)
-{
- (void)channel;
-
- hri_adc_clear_CTRLA_ENABLE_bit(device->hw);
-}
-
-/**
- * \brief Disable ADC
- */
-void _adc_dma_disable_channel(struct _adc_dma_device *const device, const uint8_t channel)
-{
- (void)channel;
-
- hri_adc_clear_CTRLA_ENABLE_bit(device->hw);
-}
-
-/**
- * \brief Return address of ADC DMA source
- */
-uint32_t _adc_get_source_for_dma(struct _adc_dma_device *const device)
-{
- return (uint32_t) & (((Adc *)(device->hw))->RESULT.reg);
-}
-
-/**
- * \brief Retrieve ADC conversion data size
- */
-uint8_t _adc_sync_get_data_size(const struct _adc_sync_device *const device)
-{
- return hri_adc_read_CTRLC_RESSEL_bf(device->hw) == ADC_CTRLC_RESSEL_8BIT_Val ? 1 : 2;
-}
-
-/**
- * \brief Retrieve ADC conversion data size
- */
-uint8_t _adc_async_get_data_size(const struct _adc_async_device *const device)
-{
- return hri_adc_read_CTRLC_RESSEL_bf(device->hw) == ADC_CTRLC_RESSEL_8BIT_Val ? 1 : 2;
-}
-
-/**
- * \brief Retrieve ADC conversion data size
- */
-uint8_t _adc_dma_get_data_size(const struct _adc_dma_device *const device)
-{
- return hri_adc_read_CTRLC_RESSEL_bf(device->hw) == ADC_CTRLC_RESSEL_8BIT_Val ? 1 : 2;
-}
-
-/**
- * \brief Check if conversion is done
- */
-bool _adc_sync_is_channel_conversion_done(const struct _adc_sync_device *const device, const uint8_t channel)
-{
- (void)channel;
-
- return hri_adc_get_interrupt_RESRDY_bit(device->hw);
-}
-
-/**
- * \brief Check if conversion is done
- */
-bool _adc_async_is_channel_conversion_done(const struct _adc_async_device *const device, const uint8_t channel)
-{
- (void)channel;
-
- return hri_adc_get_interrupt_RESRDY_bit(device->hw);
-}
-
-/**
- * \brief Check if conversion is done
- */
-bool _adc_dma_is_conversion_done(const struct _adc_dma_device *const device)
-{
- return hri_adc_get_interrupt_RESRDY_bit(device->hw);
-}
-
-/**
- * \brief Make conversion
- */
-void _adc_sync_convert(struct _adc_sync_device *const device)
-{
- hri_adc_set_SWTRIG_START_bit(device->hw);
-}
-
-/**
- * \brief Make conversion
- */
-void _adc_async_convert(struct _adc_async_device *const device)
-{
- hri_adc_set_SWTRIG_START_bit(device->hw);
-}
-
-/**
- * \brief Make conversion
- */
-void _adc_dma_convert(struct _adc_dma_device *const device)
-{
- hri_adc_set_SWTRIG_START_bit(device->hw);
-}
-
-/**
- * \brief Retrieve the conversion result
- */
-uint16_t _adc_sync_read_channel_data(const struct _adc_sync_device *const device, const uint8_t channel)
-{
- (void)channel;
-
- return hri_adc_read_RESULT_reg(device->hw);
-}
-
-/**
- * \brief Retrieve the conversion result
- */
-uint16_t _adc_async_read_channel_data(const struct _adc_async_device *const device, const uint8_t channel)
-{
- (void)channel;
-
- return hri_adc_read_RESULT_reg(device->hw);
-}
-
-/**
- * \brief Set reference source
- */
-void _adc_sync_set_reference_source(struct _adc_sync_device *const device, const adc_reference_t reference)
-{
- _adc_set_reference_source(device->hw, reference);
-}
-
-/**
- * \brief Set reference source
- */
-void _adc_async_set_reference_source(struct _adc_async_device *const device, const adc_reference_t reference)
-{
- _adc_set_reference_source(device->hw, reference);
-}
-
-/**
- * \brief Set reference source
- */
-void _adc_dma_set_reference_source(struct _adc_dma_device *const device, const adc_reference_t reference)
-{
- _adc_set_reference_source(device->hw, reference);
-}
-
-/**
- * \brief Set resolution
- */
-void _adc_sync_set_resolution(struct _adc_sync_device *const device, const adc_resolution_t resolution)
-{
- hri_adc_write_CTRLC_RESSEL_bf(device->hw, resolution);
-}
-
-/**
- * \brief Set resolution
- */
-void _adc_async_set_resolution(struct _adc_async_device *const device, const adc_resolution_t resolution)
-{
- hri_adc_write_CTRLC_RESSEL_bf(device->hw, resolution);
-}
-
-/**
- * \brief Set resolution
- */
-void _adc_dma_set_resolution(struct _adc_dma_device *const device, const adc_resolution_t resolution)
-{
- hri_adc_write_CTRLC_RESSEL_bf(device->hw, resolution);
-}
-
-/**
- * \brief Set channels input sources
- */
-void _adc_sync_set_inputs(struct _adc_sync_device *const device, const adc_pos_input_t pos_input,
- const adc_neg_input_t neg_input, const uint8_t channel)
-{
- (void)channel;
-
- hri_adc_write_INPUTCTRL_MUXPOS_bf(device->hw, pos_input);
- hri_adc_write_INPUTCTRL_MUXNEG_bf(device->hw, neg_input);
-}
-
-/**
- * \brief Set channels input sources
- */
-void _adc_async_set_inputs(struct _adc_async_device *const device, const adc_pos_input_t pos_input,
- const adc_neg_input_t neg_input, const uint8_t channel)
-{
- (void)channel;
-
- hri_adc_write_INPUTCTRL_MUXPOS_bf(device->hw, pos_input);
- hri_adc_write_INPUTCTRL_MUXNEG_bf(device->hw, neg_input);
-}
-
-/**
- * \brief Set channels input source
- */
-void _adc_dma_set_inputs(struct _adc_dma_device *const device, const adc_pos_input_t pos_input,
- const adc_neg_input_t neg_input, const uint8_t channel)
-{
- (void)channel;
-
- hri_adc_write_INPUTCTRL_MUXPOS_bf(device->hw, pos_input);
- hri_adc_write_INPUTCTRL_MUXNEG_bf(device->hw, neg_input);
-}
-
-/**
- * \brief Set thresholds
- */
-void _adc_sync_set_thresholds(struct _adc_sync_device *const device, const adc_threshold_t low_threshold,
- const adc_threshold_t up_threshold)
-{
- hri_adc_write_WINLT_reg(device->hw, low_threshold);
- hri_adc_write_WINUT_reg(device->hw, up_threshold);
-}
-
-/**
- * \brief Set thresholds
- */
-void _adc_async_set_thresholds(struct _adc_async_device *const device, const adc_threshold_t low_threshold,
- const adc_threshold_t up_threshold)
-{
- hri_adc_write_WINLT_reg(device->hw, low_threshold);
- hri_adc_write_WINUT_reg(device->hw, up_threshold);
-}
-
-/**
- * \brief Set thresholds
- */
-void _adc_dma_set_thresholds(struct _adc_dma_device *const device, const adc_threshold_t low_threshold,
- const adc_threshold_t up_threshold)
-{
- hri_adc_write_WINLT_reg(device->hw, low_threshold);
- hri_adc_write_WINUT_reg(device->hw, up_threshold);
-}
-
-/**
- * \brief Set gain
- */
-void _adc_sync_set_channel_gain(struct _adc_sync_device *const device, const uint8_t channel, const adc_gain_t gain)
-{
- (void)device, (void)channel, (void)gain;
-}
-
-/**
- * \brief Set gain
- */
-void _adc_async_set_channel_gain(struct _adc_async_device *const device, const uint8_t channel, const adc_gain_t gain)
-{
- (void)device, (void)channel, (void)gain;
-}
-
-/**
- * \brief Set gain
- */
-void _adc_dma_set_channel_gain(struct _adc_dma_device *const device, const uint8_t channel, const adc_gain_t gain)
-{
- (void)device, (void)channel, (void)gain;
-}
-
-/**
- * \brief Set conversion mode
- */
-void _adc_sync_set_conversion_mode(struct _adc_sync_device *const device, const enum adc_conversion_mode mode)
-{
- if (ADC_CONVERSION_MODE_FREERUN == mode) {
- hri_adc_set_CTRLC_FREERUN_bit(device->hw);
- } else {
- hri_adc_clear_CTRLC_FREERUN_bit(device->hw);
- }
-}
-
-/**
- * \brief Set conversion mode
- */
-void _adc_async_set_conversion_mode(struct _adc_async_device *const device, const enum adc_conversion_mode mode)
-{
- if (ADC_CONVERSION_MODE_FREERUN == mode) {
- hri_adc_set_CTRLC_FREERUN_bit(device->hw);
- } else {
- hri_adc_clear_CTRLC_FREERUN_bit(device->hw);
- }
-}
-
-/**
- * \brief Set conversion mode
- */
-void _adc_dma_set_conversion_mode(struct _adc_dma_device *const device, const enum adc_conversion_mode mode)
-{
- if (ADC_CONVERSION_MODE_FREERUN == mode) {
- hri_adc_set_CTRLC_FREERUN_bit(device->hw);
- } else {
- hri_adc_clear_CTRLC_FREERUN_bit(device->hw);
- }
-}
-
-/**
- * \brief Set differential mode
- */
-void _adc_sync_set_channel_differential_mode(struct _adc_sync_device *const device, const uint8_t channel,
- const enum adc_differential_mode mode)
-{
- (void)channel;
-
- if (ADC_DIFFERENTIAL_MODE_DIFFERENTIAL == mode) {
- hri_adc_set_CTRLC_DIFFMODE_bit(device->hw);
- } else {
- hri_adc_clear_CTRLC_DIFFMODE_bit(device->hw);
- }
-}
-
-/**
- * \brief Set differential mode
- */
-void _adc_async_set_channel_differential_mode(struct _adc_async_device *const device, const uint8_t channel,
- const enum adc_differential_mode mode)
-{
- (void)channel;
-
- if (ADC_DIFFERENTIAL_MODE_DIFFERENTIAL == mode) {
- hri_adc_set_CTRLC_DIFFMODE_bit(device->hw);
- } else {
- hri_adc_clear_CTRLC_DIFFMODE_bit(device->hw);
- }
-}
-
-/**
- * \brief Set differential mode
- */
-void _adc_dma_set_channel_differential_mode(struct _adc_dma_device *const device, const uint8_t channel,
- const enum adc_differential_mode mode)
-{
- (void)channel;
-
- if (ADC_DIFFERENTIAL_MODE_DIFFERENTIAL == mode) {
- hri_adc_set_CTRLC_DIFFMODE_bit(device->hw);
- } else {
- hri_adc_clear_CTRLC_DIFFMODE_bit(device->hw);
- }
-}
-
-/**
- * \brief Set window mode
- */
-void _adc_sync_set_window_mode(struct _adc_sync_device *const device, const adc_window_mode_t mode)
-{
- hri_adc_write_CTRLC_WINMODE_bf(device->hw, mode);
-}
-
-/**
- * \brief Set window mode
- */
-void _adc_async_set_window_mode(struct _adc_async_device *const device, const adc_window_mode_t mode)
-{
- hri_adc_write_CTRLC_WINMODE_bf(device->hw, mode);
-}
-
-/**
- * \brief Set window mode
- */
-void _adc_dma_set_window_mode(struct _adc_dma_device *const device, const adc_window_mode_t mode)
-{
- hri_adc_write_CTRLC_WINMODE_bf(device->hw, mode);
-}
-
-/**
- * \brief Retrieve threshold state
- */
-void _adc_sync_get_threshold_state(const struct _adc_sync_device *const device, adc_threshold_status_t *const state)
-{
- *state = hri_adc_get_interrupt_WINMON_bit(device->hw);
-}
-
-/**
- * \brief Retrieve threshold state
- */
-void _adc_async_get_threshold_state(const struct _adc_async_device *const device, adc_threshold_status_t *const state)
-{
- *state = hri_adc_get_interrupt_WINMON_bit(device->hw);
-}
-
-/**
- * \brief Retrieve threshold state
- */
-void _adc_dma_get_threshold_state(const struct _adc_dma_device *const device, adc_threshold_status_t *const state)
-{
- *state = hri_adc_get_interrupt_WINMON_bit(device->hw);
-}
-
-/**
- * \brief Enable/disable ADC channel interrupt
- */
-void _adc_async_set_irq_state(struct _adc_async_device *const device, const uint8_t channel,
- const enum _adc_async_callback_type type, const bool state)
-{
- (void)channel;
-
- void *const hw = device->hw;
-
- if (ADC_ASYNC_DEVICE_MONITOR_CB == type) {
- hri_adc_write_INTEN_WINMON_bit(hw, state);
- } else if (ADC_ASYNC_DEVICE_ERROR_CB == type) {
- hri_adc_write_INTEN_OVERRUN_bit(hw, state);
- } else if (ADC_ASYNC_DEVICE_CONVERT_CB == type) {
- hri_adc_write_INTEN_RESRDY_bit(hw, state);
- }
-}
-
-/**
- * \brief Retrieve ADC sync helper functions
- */
-void *_adc_get_adc_sync(void)
-{
- return (void *)NULL;
-}
-
-/**
- * \brief Retrieve ADC async helper functions
- */
-void *_adc_get_adc_async(void)
-{
- return (void *)NULL;
-}
-
-/**
- * \brief Set ADC reference source
- *
- * \param[in] hw The pointer to hardware instance
- * \param[in] reference The reference to set
- */
-static void _adc_set_reference_source(void *const hw, const adc_reference_t reference)
-{
- bool enabled = hri_adc_get_CTRLA_ENABLE_bit(hw);
-
- hri_adc_clear_CTRLA_ENABLE_bit(hw);
- hri_adc_write_REFCTRL_REFSEL_bf(hw, reference);
-
- if (enabled) {
- hri_adc_set_CTRLA_ENABLE_bit(hw);
- }
-}
diff --git a/watch-library/hpl/adc/hpl_adc_base.h b/watch-library/hpl/adc/hpl_adc_base.h
deleted file mode 100644
index e9b9528..0000000
--- a/watch-library/hpl/adc/hpl_adc_base.h
+++ /dev/null
@@ -1,72 +0,0 @@
-/**
- * \file
- *
- * \brief ADC related functionality declaration.
- *
- * Copyright (c) 2016-2018 Microchip Technology Inc. and its subsidiaries.
- *
- * \asf_license_start
- *
- * \page License
- *
- * Subject to your compliance with these terms, you may use Microchip
- * software and any derivatives exclusively with Microchip products.
- * It is your responsibility to comply with third party license terms applicable
- * to your use of third party software (including open source software) that
- * may accompany Microchip software.
- *
- * THIS SOFTWARE IS SUPPLIED BY MICROCHIP "AS IS". NO WARRANTIES,
- * WHETHER EXPRESS, IMPLIED OR STATUTORY, APPLY TO THIS SOFTWARE,
- * INCLUDING ANY IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY,
- * AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT WILL MICROCHIP BE
- * LIABLE FOR ANY INDIRECT, SPECIAL, PUNITIVE, INCIDENTAL OR CONSEQUENTIAL
- * LOSS, DAMAGE, COST OR EXPENSE OF ANY KIND WHATSOEVER RELATED TO THE
- * SOFTWARE, HOWEVER CAUSED, EVEN IF MICROCHIP HAS BEEN ADVISED OF THE
- * POSSIBILITY OR THE DAMAGES ARE FORESEEABLE. TO THE FULLEST EXTENT
- * ALLOWED BY LAW, MICROCHIP'S TOTAL LIABILITY ON ALL CLAIMS IN ANY WAY
- * RELATED TO THIS SOFTWARE WILL NOT EXCEED THE AMOUNT OF FEES, IF ANY,
- * THAT YOU HAVE PAID DIRECTLY TO MICROCHIP FOR THIS SOFTWARE.
- *
- * \asf_license_stop
- *
- */
-
-#ifndef _HPL_ADC_ADC_H_INCLUDED
-#define _HPL_ADC_ADC_H_INCLUDED
-
-#include
-#include
-
-/**
- * \addtogroup HPL ADC
- *
- * \section hpl_adc_rev Revision History
- * - v1.0.0 Initial Release
- *
- *@{
- */
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/**
- * \name HPL functions
- */
-//@{
-
-/**
- * \brief Retrieve ADC helper functions
- *
- * \return A pointer to set of ADC helper functions
- */
-void *_adc_get_adc_sync(void);
-void *_adc_get_adc_async(void);
-
-//@}
-
-#ifdef __cplusplus
-}
-#endif
-/**@}*/
-#endif /* _HPL_USART_UART_H_INCLUDED */
diff --git a/watch-library/hpl/tc/hpl_tc.c b/watch-library/hpl/tc/hpl_tc.c
deleted file mode 100644
index e69de29..0000000
diff --git a/watch-library/hpl/tc/hpl_tc_base.h b/watch-library/hpl/tc/hpl_tc_base.h
deleted file mode 100644
index e69de29..0000000
diff --git a/watch-library/hpl/tcc/hpl_tcc.c b/watch-library/hpl/tcc/hpl_tcc.c
deleted file mode 100644
index e69de29..0000000
diff --git a/watch-library/hpl/tcc/hpl_tcc.h b/watch-library/hpl/tcc/hpl_tcc.h
deleted file mode 100644
index e69de29..0000000
diff --git a/watch-library/hw/driver_init.c b/watch-library/hw/driver_init.c
index 564ec7a..273852c 100644
--- a/watch-library/hw/driver_init.c
+++ b/watch-library/hw/driver_init.c
@@ -11,18 +11,12 @@
#include
#include
-#include
-
struct slcd_sync_descriptor SEGMENT_LCD_0;
struct calendar_descriptor CALENDAR_0;
struct i2c_m_sync_desc I2C_0;
-struct pwm_descriptor PWM_0;
-
-struct pwm_descriptor PWM_1;
-
void CALENDAR_0_CLOCK_init(void) {
hri_mclk_set_APBAMASK_RTC_bit(MCLK);
}
diff --git a/watch-library/hw/driver_init.h b/watch-library/hw/driver_init.h
index 1e53f9a..a6a3b56 100644
--- a/watch-library/hw/driver_init.h
+++ b/watch-library/hw/driver_init.h
@@ -20,22 +20,10 @@ extern "C" {
#include
#include
#include
-
-#include
-
#include
-
#include
-
#include
-
#include
-#include
-#include
-#include
-
-#include
-#include
#include
extern struct adc_sync_descriptor ADC_0;