X-Git-Url: https://codewiz.org/gitweb?a=blobdiff_plain;f=bertos%2Fdrv%2Ftas5706a.h;h=3df9be43ecfa2674fd58b5afffc127abde92868f;hb=00a56e3c9af3422795c598fda5e9e6ff74ca6b48;hp=2f602356d1899400dd5a2c91e8da0812800939ec;hpb=e23c0ef94dcdb5392f27d338d4ba20b1227b2c17;p=bertos.git diff --git a/bertos/drv/tas5706a.h b/bertos/drv/tas5706a.h index 2f602356..3df9be43 100644 --- a/bertos/drv/tas5706a.h +++ b/bertos/drv/tas5706a.h @@ -33,15 +33,33 @@ * \brief TAS5706A Power DAC i2c driver. * * - * \version $Id$ * \author Francesco Sacchi + * + * $WIZ$ module_name = "tas5706a" + * $WIZ$ module_depends = "timer", "i2c" + * $WIZ$ module_configuration = "bertos/cfg/cfg_tas5706a.h" + * $WIZ$ module_hw = "bertos/hw/hw_tas5706a.h" */ #ifndef DRV_TAS5706A_H #define DRV_TAS5706A_H +#include "cfg/cfg_i2c.h" + #include +#include + +#if COMPILER_C99 + #define tas5706a_init(...) PP_CAT(tas5706a_init ## _, COUNT_PARMS(__VA_ARGS__)) (__VA_ARGS__) + #define tas5706a_setLowPower(...) PP_CAT(tas5706a_setLowPower ## _, COUNT_PARMS(__VA_ARGS__)) (__VA_ARGS__) + #define tas5706a_setVolume(...) PP_CAT(tas5706a_setVolume ## _, COUNT_PARMS(__VA_ARGS__)) (__VA_ARGS__) +#else + #define tas5706a_init(args...) PP_CAT(tas5706a_init ## _, COUNT_PARMS(args)) (args) + #define tas5706a_setLowPower(args...) PP_CAT(tas5706a_setLowPower ## _, COUNT_PARMS(args)) (args) + #define tas5706a_setVolume(args...) PP_CAT(tas5706a_setVolume ## _, COUNT_PARMS(args)) (args) +#endif + typedef enum Tas5706aCh { TAS_CH1, @@ -66,15 +84,11 @@ typedef uint8_t tas5706a_vol_t; * * The volume must be expressed in % and will be at maximum CONFIG_TAS_MAX_VOL. * + * \param i2c The i2c context. * \param ch The channel to be controlled. * \param vol The volume you want to set. */ -void tas5706a_setVolume(Tas5706aCh ch, tas5706a_vol_t vol); - -/** - * Initialize the TAS chip. - */ -void tas5706a_init(void); +void tas5706a_setVolume_3(I2c *i2c, Tas5706aCh ch, tas5706a_vol_t vol); /** * Set TAS chip to low power mode. @@ -82,8 +96,33 @@ void tas5706a_init(void); * When in low power mode, the TAS will not play any sound. You should put the TAS chip in low * power whenever possible to prevent overheating and to save power. * + * \param i2c The i2c context. * \param val True if you want to enable low power mode, false otherwise. */ -void tas5706a_setLowPower(bool val); +void tas5706a_setLowPower_2(I2c *i2c, bool val); + +/** + * Initialize the TAS chip. + * + * \param i2c The i2c context. + */ +void tas5706a_init_1(I2c *i2c); + +#if !CONFIG_I2C_DISABLE_OLD_API + +DEPRECATED INLINE void tas5706a_setVolume_2(Tas5706aCh ch, tas5706a_vol_t vol) +{ + tas5706a_setVolume_3(&local_i2c_old_api, ch, vol); +} +DEPRECATED INLINE void tas5706a_setLowPower_1(bool val) +{ + tas5706a_setLowPower_2(&local_i2c_old_api, val); +} +DEPRECATED INLINE void tas5706a_init_0(void) +{ + tas5706a_init_1(&local_i2c_old_api); +} + +#endif /* !CONFIG_I2C_DISABLE_OLD_API */ #endif /* DRV_TAS5706A_H */