UPDATE: Actually... this doesn't fully resolve the issue. These messages are now in the log:
i2c-bcm2835 3f805000.i2c: i2c transfer timed out
Deeper debugging is necessary to figure out what is hooked up to this particular I2C controller on the board.
Here is what worked for me to resolve this issue. First, I noticed this earlier in the kernel log:
i2c-bcm2835 3f805000.i2c: Could not read clock-frequency property
To fix it, edit the Device Tree Blob to add 'clock-frequency' property to that particular I2C module (the property is already set for the other I2C modules, so not sure why it wasn't for this one). Here is a patch and commands to decompile, patch, and recompile the DTB:
--- /boot/dtbs/broadcom/bcm2837-rpi-3-b.dts 2017-06-10 00:48:48.000000000 -0400
+++ /boot/dtbs/broadcom/bcm2837-rpi-3-b-i2c.dts 2017-06-10 00:30:36.000000000 -0400
@@ -465,20 +465,21 @@
i2c@7e805000 {
compatible = "brcm,bcm2835-i2c";
reg = <0x7e805000 0x1000>;
interrupts = <0x2 0x15>;
clocks = <0x4 0x14>;
#address-cells = <0x1>;
#size-cells = <0x0>;
status = "okay";
linux,phandle = <0xd>;
phandle = <0xd>;
+ clock-frequency = <0x186a0>;
};
vec@7e806000 {
compatible = "brcm,bcm2835-vec";
reg = <0x7e806000 0x1000>;
clocks = <0x4 0x18>;
interrupts = <0x2 0x1b>;
status = "okay";
power-domains = <0xc 0x7>;
};
Save the above as /boot/dtbs/broadcom/bcm2837-rpi-3-b-i2c.patch
and:
pacman -S dtc
cd /boot/dtbs/broadcom
cp bcm2837-rpi-3-b{,.stock}.dtb
dtc -I dtb -O dts > bcm2837-rpi-3-b.dts
patch -p0 bcm2837-rpi-3-b.dts < bcm2837-rpi-3-b-i2c.patch
dtc -I dts -O dtb > bcm2837-rpi-3-b.dtb
sync
Reboot, and there should be no more error nor the log message flood.
PS. This kind of troubleshooting question might be better for the Arch Linux ARM forum.