Zephyr API Documentation 4.3.99
A Scalable Open Source RTOS
Loading...
Searching...
No Matches
rv3032.h File Reference
#include <stddef.h>
#include <stdint.h>
#include <zephyr/device.h>

Go to the source code of this file.

Macros

#define RV3032_REG_100TH_SECONDS   0x00
#define RV3032_REG_SECONDS   0x01
#define RV3032_REG_MINUTES   0x02
#define RV3032_REG_HOURS   0x03
#define RV3032_REG_WEEKDAY   0x04
#define RV3032_REG_DATE   0x05
#define RV3032_REG_MONTH   0x06
#define RV3032_REG_YEAR   0x07
#define RV3032_REG_ALARM_MINUTES   0x08
#define RV3032_REG_ALARM_HOURS   0x09
#define RV3032_REG_ALARM_DATE   0x0A
#define RV3032_REG_TIMER_VALUE_0   0x0B
#define RV3032_REG_TIMER_VALUE_1   0x0C
#define RV3032_REG_STATUS   0x0D
#define RV3032_REG_TEMPERATURE_LSB   0x0E
#define RV3032_REG_TEMPERATURE_MSB   0x0F
#define RV3032_REG_CONTROL1   0x10
#define RV3032_REG_CONTROL2   0x11
#define RV3032_REG_CONTROL3   0x12
#define RV3032_TS_CTRL   0x13
#define RV3032_CLK_INT_MASK   0x14
#define RV3032_EVI_CONTROL   0x15
#define RV3032_REG_TEMP_LOW_THLD   0x16
#define RV3032_REG_TEMP_HIGH_THLD   0x17
#define RV3032_REG_EEPROM_ADDRESS   0x3D
#define RV3032_REG_EEPROM_DATA   0x3E
#define RV3032_REG_EEPROM_COMMAND   0x3F
#define RV3032_REG_EEPROM_PMU   0xC0
#define RV3032_REG_EEPROM_RAM1   0x40
#define RV3032_REG_EEPROM_OFFSET   0xC1
#define RV3032_REG_EEPROM_CLKOUT1   0xC2
#define RV3032_REG_EEPROM_CLKOUT2   0xC3
#define RV3032_REG_EEPROM_TREF0   0xC4
#define RV3032_REG_EEPROM_TREF1   0xC5
#define RV3032_CONTROL1_TD   GENMASK(1, 0)
#define RV3032_CONTROL1_EERD   BIT(2)
#define RV3032_CONTROL1_TE   BIT(3)
#define RV3032_CONTROL1_USEL   BIT(4)
#define RV3032_CONTROL1_GP0   BIT(5)
#define RV3032_CONTROL2_STOP   BIT(0)
#define RV3032_CONTROL2_GP1   BIT(1)
#define RV3032_CONTROL2_EIE   BIT(2)
#define RV3032_CONTROL2_AIE   BIT(3)
#define RV3032_CONTROL2_TIE   BIT(4)
#define RV3032_CONTROL2_UIE   BIT(5)
#define RV3032_CONTROL2_CLKIE   BIT(6)
#define RV3032_CONTROL3_TLIE   BIT(0)
#define RV3032_CONTROL3_THIE   BIT(1)
#define RV3032_CONTROL3_TLE   BIT(2)
#define RV3032_CONTROL3_THE   BIT(3)
#define RV3032_CONTROL3_BSIE   BIT(4)
#define RV3032_100TH_SECONDS_MASK   GENMASK(7, 0)
#define RV3032_SECONDS_MASK   GENMASK(6, 0)
#define RV3032_MINUTES_MASK   GENMASK(6, 0)
#define RV3032_HOURS_AMPM   BIT(5)
#define RV3032_HOURS_12H_MASK   GENMASK(4, 0)
#define RV3032_HOURS_24H_MASK   GENMASK(5, 0)
#define RV3032_DATE_MASK   GENMASK(5, 0)
#define RV3032_WEEKDAY_MASK   GENMASK(2, 0)
#define RV3032_MONTH_MASK   GENMASK(4, 0)
#define RV3032_YEAR_MASK   GENMASK(7, 0)
#define RV3032_ALARM_MINUTES_AE_M   BIT(7)
#define RV3032_ALARM_MINUTES_MASK   GENMASK(6, 0)
#define RV3032_ALARM_HOURS_AE_H   BIT(7)
#define RV3032_ALARM_HOURS_AMPM   BIT(5)
#define RV3032_ALARM_HOURS_12H_MASK   GENMASK(4, 0)
#define RV3032_ALARM_HOURS_24H_MASK   GENMASK(5, 0)
#define RV3032_ALARM_DATE_AE_D   BIT(7)
#define RV3032_ALARM_DATE_MASK   GENMASK(5, 0)
#define RV3032_STATUS_VLF   BIT(0)
#define RV3032_STATUS_PORF   BIT(1)
#define RV3032_STATUS_EVF   BIT(2)
#define RV3032_STATUS_AF   BIT(3)
#define RV3032_STATUS_TF   BIT(4)
#define RV3032_STATUS_UF   BIT(5)
#define RV3032_STATUS_TLF   BIT(6)
#define RV3032_STATUS_THF   BIT(7)
#define RV3032_EEPROM_CLKOUT1_HFD_LOW   GENMASK(7, 0)
#define RV3032_TEMPERATURE_BSF   BIT(0)
#define RV3032_TEMPERATURE_CLKF   BIT(1)
#define RV3032_TEMPERATURE_EEBUSY   BIT(2)
#define RV3032_TEMPERATURE_EEF   BIT(3)
#define RV3032_TEMPERATURE_TEMP_LSB   GENMASK(7, 4)
#define RV3032_EEPROM_PMU_NCLKE   BIT(6)
#define RV3032_EEPROM_PMU_BSM   GENMASK(5, 4)
#define RV3032_EEPROM_PMU_TCR   GENMASK(3, 2)
#define RV3032_EEPROM_PMU_TCM   GENMASK(1, 0)
#define RV3032_EEPROM_CLKOUT2_OS   BIT(7)
#define RV3032_EEPROM_CLKOUT2_FD   GENMASK(6, 5)
#define RV3032_EEPROM_CLKOUT2_HFD_HIGH   GENMASK(4, 0)
#define RV3032_YEAR_OFFSET   (2000 - 1900)
#define RV3032_MONTH_OFFSET   1
#define mfd_rv3032_set_status(dev, mask)
#define mfd_rv3032_clear_status(dev, mask)

Typedefs

typedef void(* child_isr_t) (const struct device *dev)

Enumerations

enum  child_dev {
  RV3032_DEV_REG = 0 , RV3032_DEV_RTC_ALARM , RV3032_DEV_RTC_UPDATE , RV3032_DEV_COUNTER ,
  RV3032_DEV_SENSOR , RV3032_DEV_MAX
}
 Child device of rv3032. More...

Functions

int mfd_rv3032_read_regs (const struct device *dev, uint8_t addr, void *buf, size_t len)
int mfd_rv3032_read_reg8 (const struct device *dev, uint8_t addr, uint8_t *val)
int mfd_rv3032_write_regs (const struct device *dev, uint8_t addr, void *buf, size_t len)
int mfd_rv3032_write_reg8 (const struct device *dev, uint8_t addr, uint8_t val)
int mfd_rv3032_update_reg8 (const struct device *dev, uint8_t addr, uint8_t mask, uint8_t val)
void mfd_rv3032_set_irq_handler (const struct device *dev, const struct device *child_dev, enum child_dev child_idx, child_isr_t handler)
int mfd_rv3032_update_status (const struct device *dev, uint8_t mask, uint8_t val)

Macro Definition Documentation

◆ mfd_rv3032_clear_status

#define mfd_rv3032_clear_status ( dev,
mask )
Value:
mfd_rv3032_update_status(dev, mask, 0x00)
int mfd_rv3032_update_status(const struct device *dev, uint8_t mask, uint8_t val)

◆ mfd_rv3032_set_status

#define mfd_rv3032_set_status ( dev,
mask )
Value:
mfd_rv3032_update_status(dev, mask, 0xff)

◆ RV3032_100TH_SECONDS_MASK

#define RV3032_100TH_SECONDS_MASK   GENMASK(7, 0)

◆ RV3032_ALARM_DATE_AE_D

#define RV3032_ALARM_DATE_AE_D   BIT(7)

◆ RV3032_ALARM_DATE_MASK

#define RV3032_ALARM_DATE_MASK   GENMASK(5, 0)

◆ RV3032_ALARM_HOURS_12H_MASK

#define RV3032_ALARM_HOURS_12H_MASK   GENMASK(4, 0)

◆ RV3032_ALARM_HOURS_24H_MASK

#define RV3032_ALARM_HOURS_24H_MASK   GENMASK(5, 0)

◆ RV3032_ALARM_HOURS_AE_H

#define RV3032_ALARM_HOURS_AE_H   BIT(7)

◆ RV3032_ALARM_HOURS_AMPM

#define RV3032_ALARM_HOURS_AMPM   BIT(5)

◆ RV3032_ALARM_MINUTES_AE_M

#define RV3032_ALARM_MINUTES_AE_M   BIT(7)

◆ RV3032_ALARM_MINUTES_MASK

#define RV3032_ALARM_MINUTES_MASK   GENMASK(6, 0)

◆ RV3032_CLK_INT_MASK

#define RV3032_CLK_INT_MASK   0x14

◆ RV3032_CONTROL1_EERD

#define RV3032_CONTROL1_EERD   BIT(2)

◆ RV3032_CONTROL1_GP0

#define RV3032_CONTROL1_GP0   BIT(5)

◆ RV3032_CONTROL1_TD

#define RV3032_CONTROL1_TD   GENMASK(1, 0)

◆ RV3032_CONTROL1_TE

#define RV3032_CONTROL1_TE   BIT(3)

◆ RV3032_CONTROL1_USEL

#define RV3032_CONTROL1_USEL   BIT(4)

◆ RV3032_CONTROL2_AIE

#define RV3032_CONTROL2_AIE   BIT(3)

◆ RV3032_CONTROL2_CLKIE

#define RV3032_CONTROL2_CLKIE   BIT(6)

◆ RV3032_CONTROL2_EIE

#define RV3032_CONTROL2_EIE   BIT(2)

◆ RV3032_CONTROL2_GP1

#define RV3032_CONTROL2_GP1   BIT(1)

◆ RV3032_CONTROL2_STOP

#define RV3032_CONTROL2_STOP   BIT(0)

◆ RV3032_CONTROL2_TIE

#define RV3032_CONTROL2_TIE   BIT(4)

◆ RV3032_CONTROL2_UIE

#define RV3032_CONTROL2_UIE   BIT(5)

◆ RV3032_CONTROL3_BSIE

#define RV3032_CONTROL3_BSIE   BIT(4)

◆ RV3032_CONTROL3_THE

#define RV3032_CONTROL3_THE   BIT(3)

◆ RV3032_CONTROL3_THIE

#define RV3032_CONTROL3_THIE   BIT(1)

◆ RV3032_CONTROL3_TLE

#define RV3032_CONTROL3_TLE   BIT(2)

◆ RV3032_CONTROL3_TLIE

#define RV3032_CONTROL3_TLIE   BIT(0)

◆ RV3032_DATE_MASK

#define RV3032_DATE_MASK   GENMASK(5, 0)

◆ RV3032_EEPROM_CLKOUT1_HFD_LOW

#define RV3032_EEPROM_CLKOUT1_HFD_LOW   GENMASK(7, 0)

◆ RV3032_EEPROM_CLKOUT2_FD

#define RV3032_EEPROM_CLKOUT2_FD   GENMASK(6, 5)

◆ RV3032_EEPROM_CLKOUT2_HFD_HIGH

#define RV3032_EEPROM_CLKOUT2_HFD_HIGH   GENMASK(4, 0)

◆ RV3032_EEPROM_CLKOUT2_OS

#define RV3032_EEPROM_CLKOUT2_OS   BIT(7)

◆ RV3032_EEPROM_PMU_BSM

#define RV3032_EEPROM_PMU_BSM   GENMASK(5, 4)

◆ RV3032_EEPROM_PMU_NCLKE

#define RV3032_EEPROM_PMU_NCLKE   BIT(6)

◆ RV3032_EEPROM_PMU_TCM

#define RV3032_EEPROM_PMU_TCM   GENMASK(1, 0)

◆ RV3032_EEPROM_PMU_TCR

#define RV3032_EEPROM_PMU_TCR   GENMASK(3, 2)

◆ RV3032_EVI_CONTROL

#define RV3032_EVI_CONTROL   0x15

◆ RV3032_HOURS_12H_MASK

#define RV3032_HOURS_12H_MASK   GENMASK(4, 0)

◆ RV3032_HOURS_24H_MASK

#define RV3032_HOURS_24H_MASK   GENMASK(5, 0)

◆ RV3032_HOURS_AMPM

#define RV3032_HOURS_AMPM   BIT(5)

◆ RV3032_MINUTES_MASK

#define RV3032_MINUTES_MASK   GENMASK(6, 0)

◆ RV3032_MONTH_MASK

#define RV3032_MONTH_MASK   GENMASK(4, 0)

◆ RV3032_MONTH_OFFSET

#define RV3032_MONTH_OFFSET   1

◆ RV3032_REG_100TH_SECONDS

#define RV3032_REG_100TH_SECONDS   0x00

◆ RV3032_REG_ALARM_DATE

#define RV3032_REG_ALARM_DATE   0x0A

◆ RV3032_REG_ALARM_HOURS

#define RV3032_REG_ALARM_HOURS   0x09

◆ RV3032_REG_ALARM_MINUTES

#define RV3032_REG_ALARM_MINUTES   0x08

◆ RV3032_REG_CONTROL1

#define RV3032_REG_CONTROL1   0x10

◆ RV3032_REG_CONTROL2

#define RV3032_REG_CONTROL2   0x11

◆ RV3032_REG_CONTROL3

#define RV3032_REG_CONTROL3   0x12

◆ RV3032_REG_DATE

#define RV3032_REG_DATE   0x05

◆ RV3032_REG_EEPROM_ADDRESS

#define RV3032_REG_EEPROM_ADDRESS   0x3D

◆ RV3032_REG_EEPROM_CLKOUT1

#define RV3032_REG_EEPROM_CLKOUT1   0xC2

◆ RV3032_REG_EEPROM_CLKOUT2

#define RV3032_REG_EEPROM_CLKOUT2   0xC3

◆ RV3032_REG_EEPROM_COMMAND

#define RV3032_REG_EEPROM_COMMAND   0x3F

◆ RV3032_REG_EEPROM_DATA

#define RV3032_REG_EEPROM_DATA   0x3E

◆ RV3032_REG_EEPROM_OFFSET

#define RV3032_REG_EEPROM_OFFSET   0xC1

◆ RV3032_REG_EEPROM_PMU

#define RV3032_REG_EEPROM_PMU   0xC0

◆ RV3032_REG_EEPROM_RAM1

#define RV3032_REG_EEPROM_RAM1   0x40

◆ RV3032_REG_EEPROM_TREF0

#define RV3032_REG_EEPROM_TREF0   0xC4

◆ RV3032_REG_EEPROM_TREF1

#define RV3032_REG_EEPROM_TREF1   0xC5

◆ RV3032_REG_HOURS

#define RV3032_REG_HOURS   0x03

◆ RV3032_REG_MINUTES

#define RV3032_REG_MINUTES   0x02

◆ RV3032_REG_MONTH

#define RV3032_REG_MONTH   0x06

◆ RV3032_REG_SECONDS

#define RV3032_REG_SECONDS   0x01

◆ RV3032_REG_STATUS

#define RV3032_REG_STATUS   0x0D

◆ RV3032_REG_TEMP_HIGH_THLD

#define RV3032_REG_TEMP_HIGH_THLD   0x17

◆ RV3032_REG_TEMP_LOW_THLD

#define RV3032_REG_TEMP_LOW_THLD   0x16

◆ RV3032_REG_TEMPERATURE_LSB

#define RV3032_REG_TEMPERATURE_LSB   0x0E

◆ RV3032_REG_TEMPERATURE_MSB

#define RV3032_REG_TEMPERATURE_MSB   0x0F

◆ RV3032_REG_TIMER_VALUE_0

#define RV3032_REG_TIMER_VALUE_0   0x0B

◆ RV3032_REG_TIMER_VALUE_1

#define RV3032_REG_TIMER_VALUE_1   0x0C

◆ RV3032_REG_WEEKDAY

#define RV3032_REG_WEEKDAY   0x04

◆ RV3032_REG_YEAR

#define RV3032_REG_YEAR   0x07

◆ RV3032_SECONDS_MASK

#define RV3032_SECONDS_MASK   GENMASK(6, 0)

◆ RV3032_STATUS_AF

#define RV3032_STATUS_AF   BIT(3)

◆ RV3032_STATUS_EVF

#define RV3032_STATUS_EVF   BIT(2)

◆ RV3032_STATUS_PORF

#define RV3032_STATUS_PORF   BIT(1)

◆ RV3032_STATUS_TF

#define RV3032_STATUS_TF   BIT(4)

◆ RV3032_STATUS_THF

#define RV3032_STATUS_THF   BIT(7)

◆ RV3032_STATUS_TLF

#define RV3032_STATUS_TLF   BIT(6)

◆ RV3032_STATUS_UF

#define RV3032_STATUS_UF   BIT(5)

◆ RV3032_STATUS_VLF

#define RV3032_STATUS_VLF   BIT(0)

◆ RV3032_TEMPERATURE_BSF

#define RV3032_TEMPERATURE_BSF   BIT(0)

◆ RV3032_TEMPERATURE_CLKF

#define RV3032_TEMPERATURE_CLKF   BIT(1)

◆ RV3032_TEMPERATURE_EEBUSY

#define RV3032_TEMPERATURE_EEBUSY   BIT(2)

◆ RV3032_TEMPERATURE_EEF

#define RV3032_TEMPERATURE_EEF   BIT(3)

◆ RV3032_TEMPERATURE_TEMP_LSB

#define RV3032_TEMPERATURE_TEMP_LSB   GENMASK(7, 4)

◆ RV3032_TS_CTRL

#define RV3032_TS_CTRL   0x13

◆ RV3032_WEEKDAY_MASK

#define RV3032_WEEKDAY_MASK   GENMASK(2, 0)

◆ RV3032_YEAR_MASK

#define RV3032_YEAR_MASK   GENMASK(7, 0)

◆ RV3032_YEAR_OFFSET

#define RV3032_YEAR_OFFSET   (2000 - 1900)

Typedef Documentation

◆ child_isr_t

typedef void(* child_isr_t) (const struct device *dev)

Enumeration Type Documentation

◆ child_dev

enum child_dev

Child device of rv3032.

Enumerator
RV3032_DEV_REG 
RV3032_DEV_RTC_ALARM 
RV3032_DEV_RTC_UPDATE 
RV3032_DEV_COUNTER 
RV3032_DEV_SENSOR 
RV3032_DEV_MAX 

Function Documentation

◆ mfd_rv3032_read_reg8()

int mfd_rv3032_read_reg8 ( const struct device * dev,
uint8_t addr,
uint8_t * val )

◆ mfd_rv3032_read_regs()

int mfd_rv3032_read_regs ( const struct device * dev,
uint8_t addr,
void * buf,
size_t len )

◆ mfd_rv3032_set_irq_handler()

void mfd_rv3032_set_irq_handler ( const struct device * dev,
const struct device * child_dev,
enum child_dev child_idx,
child_isr_t handler )

◆ mfd_rv3032_update_reg8()

int mfd_rv3032_update_reg8 ( const struct device * dev,
uint8_t addr,
uint8_t mask,
uint8_t val )

◆ mfd_rv3032_update_status()

int mfd_rv3032_update_status ( const struct device * dev,
uint8_t mask,
uint8_t val )

◆ mfd_rv3032_write_reg8()

int mfd_rv3032_write_reg8 ( const struct device * dev,
uint8_t addr,
uint8_t val )

◆ mfd_rv3032_write_regs()

int mfd_rv3032_write_regs ( const struct device * dev,
uint8_t addr,
void * buf,
size_t len )