ReviewOS

home-lang/home-os

RP1 GPIO, PWM, I2S and an optional GPIO IR receiver (NEC/RC5/RC6 decoding) for legacy remotes and DAC HATs

#72
Open chris opened this 9 days ago ·
9 days ago

Epic: #113 · Milestone: MC3 — Pi 5 platform drivers

Why

GPIO is the cheapest hardware proof that MMIO works (blink an LED) and the path to two living-room extras: an IR receiver for old remotes, and I2S for audiophile DAC HATs. drivers/gpio.home (690), pwm.home (87) are generic; RP1's GPIO/PWM/I2S blocks have their own register maps.

Tasks

  • platform/rp1/gpio.home: pin function select, pull, output/input, edge interrupts through RP1's IRQ controller; gpio shell command; the on-board activity LED (also on the PM block on 2712 — verify from DTB) used as a heartbeat.
  • platform/rp1/pwm.home (fan control for the official active cooler is via the PM/fan controller — implement fan curve tied to the thermal readings from #64).
  • platform/rp1/i2s.home: clocking, DMA, 48 kHz/24-bit stereo out — consumed by #80.
  • IR: GPIO edge-timestamp capture → NEC/RC5/RC6 decoders → key events into the same remote grammar as CEC (#98); keymap learning in settings.

Acceptance

LED heartbeat visible on the rig camera/capture; IR remote key press logged with protocol + code; fan speed follows temperature.

Size: M · Depends on: #67, #60 · Blocks: #80

Sign in to comment on this issue.