---
name: "bcm283x_pwm"
section: "4"
platform: "freebsd"
package: "base"
version: "16.0-CURRENT-20261027-61c70dc16a79"
release: "FreeBSD 16.0-CURRENT (2026-10-27)"
platforms: ["freebsd"]
url: "https://new.carta.tech/bcm283x_pwm"
---

# bcm283x\_pwm(4)

bcm283x\_pwm - driver for Raspberry Pi 2/3 PWM

Part of [bcm283x\_pwm(4)](/bcm283x_pwm/4.md).

## NAME

**bcm283x\_pwm** – bcm283x\_pwm - driver for Raspberry Pi 2/3 PWM

## SYNOPSIS

**kldload bcm283x\_clkman** **kldload bcm283x\_pwm**

## DESCRIPTION

The **bcm283x\_pwm** driver provides access to the PWM engine on GPIO12 of Raspberry Pi 2 and 3 hardware.

The PWM hardware is controlled via the [sysctl(8)](/sysctl/8.md) interface:

```
dev.pwm.0.mode: 1
dev.pwm.0.mode2: 1
dev.pwm.0.freq: 125000000
dev.pwm.0.ratio: 2500
dev.pwm.0.ratio2: 2500
dev.pwm.0.period: 10000
dev.pwm.0.period2: 10000
dev.pwm.0.pwm_freq: 12500
dev.pwm.0.pwm_freq2: 12500
```

- *dev.pwm.0.mode*, *dev.pwm.0.mode2*

  PWM Mode for channels 1 and 2. Three modes exist, 0=off, 1=PWM, 2=N/M. The N/M mode is a first order delta-sigma mode, which makes a quite handy DAC output with a trivial RC lowpass filter.

- *dev.pwm.0.freq*

  The input frequency to the PWM hardware in Hz. Applies to both channels 1 and 2. Minimum frequency is 123 kHz, maximum frequency is 125 MHz.

- *dev.pwm.0.period*, *dev.pwm.0.period2*

  The period length in cycles. In PWM mode, the output frequencies will be ( *dev.pwm.0.freq* / *dev.pwm.period* ) and ( *dev.pwm.0.freq2* / *dev.pwm.0.period2* ). In N/M mode this is the 'M'.

- *dev.pwm.0.ratio*, *dev.pwm.0.ratio2*

  The "on" period in cycles for PWM channels 1 and 2. In PWM mode, to get a 25% dutycycle, set this to 25% of *dev.pwm.0.period* or *dev.pwm.0.period2*, as appropriate. In N/M mode this is the 'N'.

- *dev.pwm.0.pwm\_freq*, *dev.pwm.0.pwm\_freq2*

  The calculated PWM output frequencies in PWM mode, for channels 1 and 2.

## NOTES

Currently the **bcm283x\_pwm** driver ignores the 'status="disabled"' flag in the DTB, assuming that if you load the driver, you want it to work.

## SEE ALSO

[sysctl(8)](/sysctl/8.md)

## HISTORY

The **bcm283x\_pwm** driver first appeared in FreeBSD 12.0.

## AUTHORS

The **bcm283x\_pwm** driver and this manual page were written by Poul-Henning Kamp ⟨*phk@FreeBSD.org*⟩.
