HowTo: GPIO access, I2C, Kernel Building
- Alex

- Jan 8, 2020
- 2 min read
by p3dt
Hi, it’s Paul again
Intro
I found some time over the last days to play with the GPIOs and I2C. And got all of them to work, as well as I2C support:

WARNING! This program can confuse your I2C bus, cause data loss and worse!
I will probe file /dev/i2c-0.
I will probe address range 0x03-0x77.
Continue? [Y/n]
0 1 2 3 4 5 6 7 8 9 a b c d e f
00: -- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- 3c -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- 76 --
The GPIOs worked out of the box. I2C was a bit tricky (especially if you know nothing about linux kernel development, kind of like me)
GPIOs
This section describes how to use the pins via the sysfs interface.
Create the pin’s interface:
echo 32 > /sys/class/gpio/export # PB0, green cable
which creates the interface’s pin directory:
cd /sys/class/gpio/gpio32/
Which contains the following files
active_low device direction edge power subsystem uevent value
To use this pin as an output pint you can configure it
echo out > /sys/class/gpio/gpio32/direction
And enable it
echo 1 > /sys/class/gpio/gpio32/value
Or disable it
echo 0 > /sys/class/gpio/gpio32/value
Short version for I2C (Setup)
If you mount /dev/mmcblk0p1 /mnt/boot/ you will find a file sun8i-r16-clockworkpi-cpi3.dtbwhich is missing the entry (in it’s original source form)
&i2c1 {
status = "okay";
};
Which I rebuilt using the kernel sources version 5.2-rc4. I replaced the file (and the Kernel with my rebuilt kernel). And then got the device /dev/i2c-0 after a reboot.
Details for I2C
I wrote the long version down while figuring things out on my blog (it’s a bit much for a forum post):
Let me know if this helps or if you have any questions
Resulting Kernel/DeviceTree files for I2C
If you don’t want to build everything yourself you can download my kernel and the accompanying files here:
https://p3dt.net/assets/downloads/cpi-0.4-kernel-5.2-rc4-i2c.tar.gz Using these files is at your own risk, if you run into issues, I will do my best to answer your questions in this thread.
You need to replace these (make backups first!) on the boot partition. Note: It might be the case that replacing the .dtb file is sufficient if you have a different kernel, but I haven’t tested this. If you are up for some tests, try this first and let us know, thank you.
Have fun, Paul



Vitamin C is another popular skincare ingredient found in many serums and treatments. It is commonly used in routines designed to support a more even-looking complexion and protect against environmental oxidative stress. Different vitamin C formulations vary in stability and effectiveness. Because some formulas can https://www.luxskinlasers.com/ be irritating, especially on sensitive skin, gradual introduction may be sensible. Proper storage can also matter because certain vitamin C products may degrade when exposed to light, heat, or air.
Such a valuable and well-explained post! I really enjoyed the way you presented the information in a simple and engaging manner. The useful insights and practical takeaways make this content worth reading. Great work, and I’m excited to see more helpful posts from you! OpenFuture
This was a really helpful and insightful post! I appreciate how clearly you explained the topic and highlighted the key points in such an easy-to-understand way. The practical information makes it much easier to learn and apply. Thanks for sharing, and I’m looking forward to your next post! EasyGrader
Really valuable post! I enjoyed how clearly you explained everything and shared practical takeaways that are easy to understand. Your insights are genuinely helpful, and I’m looking forward to seeing more content like this. Keep up the great work! pinpoint
This was such an informative and well-presented post! I appreciate the simple explanation and useful points you’ve highlighted. It makes the topic much easier to understand and apply. Thanks for sharing looking forward to your next post! 1word4pic