To make the ds1wm driver work on a powerpc architecture (big endian, 32bit) with a register offset multiplier of 4 i had to make some changes to drivers/w1/masters/ds1wm.c and include/linux/mfd/ds1wm.h. I grouped theses into 4 patches of falling priority. [PATCH 1/4] fix and simplify register access [PATCH 2/4] Add level interrupt modes (maybe no longer needed in newer kernels) [PATCH 3/4] Silence interrupts on HW before claiming the interrupt [PATCH 4/4] optional: add messages to make incorporation in mfd drivers easier The patches applied cleanly against commit 32c1431eea4881a6b17bd7c639315010aeefa452 Author: Linus Torvalds Date: Sun Jun 11 16:48:20 2017 -0700 Linux 4.12-rc5 I could build the patched kernel (as above) with ds1wm configured in with no errors or warnings. I could test and verify the correct working of the patch against kernel 3.12.15, but not against the current kernel.