---
name: "ds3231"
section: "4freebsd"
platform: "linux"
package: "freebsd-manpages"
version: "12.2-2"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/ds3231/4freebsd"
---

# ds3231(4freebsd)

Extremely Accurate i2c-integrated RTC/TCXO/Crystal

## NAME

**ds3231** – Extremely Accurate i2c-integrated RTC/TCXO/Crystal

## SYNOPSIS

**device iic** **device iicbus** **device ds3231**

## DESCRIPTION

The **ds3231** is a low-cost, extremely accurate I2C realtime clock (RTC) with an integrated temperature-compensated crystal oscillator (TCXO) and crystal.

The device incorporates a battery input and maintains accurate timekeeping when main power to the device is interrupted.

Access to **ds3231** data is made with the [sysctl(8)](/sysctl/8.md) interface:

```
dev.ds3231.0.%desc: Maxim DS3231 RTC
dev.ds3231.0.%driver: ds3231
dev.ds3231.0.%location: addr=0xd0
dev.ds3231.0.%pnpinfo: name=rtc compat=maxim,ds3231
dev.ds3231.0.%parent: iicbus1
dev.ds3231.0.temperature: 23.2C
dev.ds3231.0.temp_conv: 0
dev.ds3231.0.bbsqw: 0
dev.ds3231.0.sqw_freq: 8192
dev.ds3231.0.sqw_mode: interrupt
dev.ds3231.0.32khz_enable: 1
```

- *dev.ds3231.%d.temperature*

  The read-only value of the current temperature read by the RTC.

- *dev.ds3231.%d.temp\_conv*

  Start a new temperature conversion. When read as 1, a temperature conversion is in progress. When read as 0 and then set to 1, a temperature conversion is started. The temperature conversion runs automatically on power up and once every 64 seconds afterward.

- *dev.ds3231.%d.bbsqw*

  If set to 1 and *dev.ds3231.%d.sqw\_mode* is set to square-wave, battery-backed square-wave output is enabled. If set to 0, the SQW pin will be set to high impendance when the RTC is being powered by battery.

- *dev.ds3231.%d.sqw\_freq*

  Select the frequency of the SQW pin when the square-wave output is enabled on *dev.ds3231.%d.sqw\_mode*. It can be set to 1, 1024, 4096, and 8192.

- *dev.ds3231.%d.sqw\_mode*

  Set the operation mode for the SQW pin. It can be set to 'interrupt' (default) or 'square-wave'. In interrupt mode, the SQW pin is used to generate interrupts for the RTC alarms. In square-wave mode, the SQW pin drives a square-wave of *dev.ds3231.%d.sqw\_freq* frequency.

- *dev.ds3231.%d.32khz\_enable*

  Enable the 32kHz output.

Please check the **ds3231** datasheet for more details.

On a [device.hints(5)](/device.hints/5.md) based system, such as MIPS, these values are configurable for **ds3231**:

- *hint.ds3231.%d.at*

  The [iicbus(4)](/iicbus/4.md) that the **ds3231** is connected to.

- *hint.ds3231.%d.addr*

  The 8-bit i2c address of **ds3231**. The default 8-bit address for **ds3231** is 0xd0.

On a [FDT(4)](/FDT/4.md) based system the following properties must be set:

- *compatible*

  Must always be set to "maxim,ds3231".

- *reg*

  The 7-bit i2c address of **ds3231**. The default 7-bit address for **ds3231** is 0x68.

## SEE ALSO

[fdt(4)](/fdt/4.md), [iic(4)](/iic/4.md), [iicbus(4)](/iicbus/4.md), [sysctl(8)](/sysctl/8.md)

## HISTORY

The **ds3231** driver first appeared in FreeBSD 11.0.

## AUTHORS

The **ds3231** driver and this manual page were written by Luiz Otavio O Souza ⟨*loos@FreeBSD.org*⟩.
