Skip to content

No atomic I2C transfer handler when using ssd1306 #7012

@fyc09

Description

@fyc09

Describe the bug

I use ssd1306 driver provided by kernel using "dtoverlay=ssd1306". After shutting down and message "Reaching target Power-Off", it repeatedly warns "No atomic I2C transfer handler for i2c-0" and power does not really shutdown.

Steps to reproduce the behaviour

  • Connect a SSD1306 OLED with i2c interface
  • Add "dtoverlay=ssd1306" at the end of /boots/firmware/config.txt
  • Add fbcon=map:1 into cmdline.txt to enable fbcon on the oled
  • Reboot to apply changes, here the screen works well
  • Shutdown

Device (s)

Raspberry Pi Zero

System

OS:
Raspberry Pi reference 2025-05-13
Generated using pi-gen, https://github.com/RPi-Distro/pi-gen, f548f25325e28bea61904f5038a9b9fd0c92b07b, stage2

Firmware:
Apr 30 2025 13:35:18
Copyright (c) 2012 Broadcom
version 5560078dcc8591a00f57b9068d13e5544aeef3aa (clean) (release) (start)

Kernel:
Linux raspberrypi 6.12.25+rpt-rpi-v6 #1 Raspbian 1:6.12.25-1+rpt1 (2025-04-30) armv6l GNU/Linux

Logs

I don't know how to copy the shutdown log, but i found a similar problem on banana pi

Additional context

Using SPI interface does not have such problem. The reason is Bcm2835 does not support atomic transfers yet. Can anyone implement that, or its just impossible

Forum

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions