Hello everyone,
We recently designed a custom x86 carrier board based on the LEC-AL and LEC-Base 2 design guides. While the board is functional, we’re facing two key issues related to GPIO and I2C configuration, and we’re hoping to get some guidance from the community.
We used GPIO9, GPIO10, and GPIO11 (which were marked as free in the LEC-Base 2 design guide) to connect to LEDs. However, we’re unable to export or control these GPIOs in Linux. Here’s what we’ve tried so far:
Checked GPIO Availability:
Used gpiodetect to list available GPIO chips.
Used gpioinfo to check if the GPIOs are reserved or available.
Attempted to Export GPIOs:
Tried exporting the GPIOs using sysfs:
echo 9 > /sys/class/gpio/export
Received a "Permission denied" or "Invalid argument" error.
Verified ACPI Tables:
Disassembled the DSDT and checked for GPIO controller definitions.
Found that the GPIOs are not explicitly defined in the ACPI tables.
Questions:
How can we properly define and enable GPIO9, GPIO10, and GPIO11 in the ACPI tables?
Are there any known issues with these GPIOs on LEC-Base 2 designs?
Is there a way to verify if these GPIOs are reserved by the BIOS or firmware?
We want to use a DS1307 RTC on our board, but we’re unsure which I2C bus to use. The LEC-Base 2 design guide only mentions I2C-GP (General Purpose I2C) without specifying the exact bus. Here’s what we’ve done so far:
Checked I2C Buses:
Used i2cdetect to scan all available I2C buses:
i2cdetect -l i2cdetect -y <bus_number>
No devices were detected on any bus.
Reviewed ACPI Tables:
Disassembled the DSDT and found multiple I2C controllers (e.g., I2C1, I2C2, etc.).
However, our hardware designer couldn’t confirm which I2C bus corresponds to the physical pins used for the DS1307.
Hardware Design:
The DS1307 is connected to what we believe is the I2C-GP bus, but we’re not sure how to map this to the ACPI I2C controllers.
Questions:
How can we determine which I2C bus in the ACPI tables corresponds to the I2C-GP pins on the LEC-Base 2 design?
How can we add the DS1307 RTC to the correct I2C bus in the DSDT?
Are there any known examples of adding an RTC to a custom x86 board based on LEC-AL/LEC-Base 2?
Board Design: Custom carrier board based on LEC-AL and LEC-Base 2.
SoC: Intel Atom E3900
Operating System: Linux (latest kernel).
Tools Used:
acpidump and iasl for ACPI table extraction and disassembly.
gpiodetect, gpioinfo, and i2cdetect for GPIO and I2C debugging.
GPIO:
Verified GPIO pins in the schematic and PCB layout.
Checked ACPI tables for GPIO controller definitions.
I2C:
Scanned all I2C buses for devices.
Reviewed ACPI tables for I2C controller definitions.
We’re looking for guidance on:
How to properly define and enable GPIO9, GPIO10, and GPIO11 in the ACPI tables.
How to identify the correct I2C bus for the DS1307 RTC and add it to the DSDT.
Any known issues or best practices for GPIO and I2C configuration on LEC-AL/LEC-Base 2 designs.
If anyone has experience with these issues or can point us to relevant documentation or examples, we’d greatly appreciate it!
Thank you in advance for your help!
Best regards,
Ali Ghorbanpanah
MTA Company