Added PCF8574A overlay for RaspberryPi 4B, added libconfig.

This commit is contained in:
imi415 2021-06-20 20:56:11 +08:00
parent 7c5b4ee908
commit 1f92c5d4bc
Signed by: imi415
GPG Key ID: 17F01E106F9F5E0A
5 changed files with 66 additions and 2 deletions

View File

@ -0,0 +1,48 @@
// Device tree overlay for I2C connected Goodix gt9271 multiple touch controller
/dts-v1/;
/plugin/;
/ {
compatible = "brcm,bcm2835";
fragment@0 {
target = <&gpio>;
__overlay__ {
pcf8574a_pins: pcf8574a_pins {
brcm,pins = <4>; // interrupt and reset
brcm,function = <0>; // in
brcm,pull = <2>; // pull-up
};
};
};
fragment@1 {
target = <&i2c1>;
__overlay__ {
#address-cells = <1>;
#size-cells = <0>;
status = "okay";
pcf8574a: pcf8574a@3f {
compatible = "nxp,pcf8574a";
reg = <0x3f>;
#gpio-cells = <2>;
gpio-controller;
pinctrl-names = "default";
pinctrl-0 = <&pcf8574a_pins>;
interrupt-parent = <&gpio>;
interrupt-controller;
#interrupt-cells = <2>;
interrupts = <4>; // high-to-low edge triggered
irq-gpios = <&gpio 4>; // Pin7 on GPIO header
};
};
};
__overrides__ {
addr = <&pcf8574a>,"reg:0";
interrupt = <&pcf8574a_pins>,"brcm,pins:0",
<&pcf8574a>,"interrupts:0",
<&pcf8574a>,"irq-gpios:4";
};
};

View File

@ -28,6 +28,16 @@ __EOF__
# enable 64bits support
arm_64bit=1
__EOF__
fi
;;
--add-pcf8574a-overlay)
if ! grep -qE '^dtoverlay=pcf8574a' "${BINARIES_DIR}/rpi-firmware/config.txt"; then
echo "Adding 'dtoverlay=pcf8574a' to config.txt."
cat << __EOF__ >> "${BINARIES_DIR}/rpi-firmware/config.txt"
# Add PCF8574A GPIO expander
dtoverlay=pcf8574a,addr=0x3f,interrupt=0x22
__EOF__
fi
;;
@ -50,6 +60,8 @@ ROOTPATH_TMP="$(mktemp -d)"
rm -rf "${GENIMAGE_TMP}"
mv "${BINARIES_DIR}/pcf8574a.dtb" "${BINARIES_DIR}/rpi-firmware/overlays/pcf8574a.dtbo"
genimage \
--rootpath "${ROOTPATH_TMP}" \
--tmppath "${GENIMAGE_TMP}" \

View File

@ -50,6 +50,7 @@ BR2_PACKAGE_UBOOT_TOOLS_MKENVIMAGE=y
BR2_PACKAGE_UBOOT_TOOLS_DUMPIMAGE=y
BR2_PACKAGE_LIBOPENSSL_BIN=y
BR2_PACKAGE_LIBOPENSSL_ENGINES=y
BR2_PACKAGE_LIBCONFIG=y
BR2_PACKAGE_LIBGPIOD=y
BR2_PACKAGE_LIBGPIOD_TOOLS=y
BR2_PACKAGE_LIBIIO=y

View File

@ -50,6 +50,7 @@ BR2_PACKAGE_UBOOT_TOOLS_MKENVIMAGE=y
BR2_PACKAGE_UBOOT_TOOLS_DUMPIMAGE=y
BR2_PACKAGE_LIBOPENSSL_BIN=y
BR2_PACKAGE_LIBOPENSSL_ENGINES=y
BR2_PACKAGE_LIBCONFIG=y
BR2_PACKAGE_LIBGPIOD=y
BR2_PACKAGE_LIBGPIOD_TOOLS=y
BR2_PACKAGE_LIBIIO=y

View File

@ -23,7 +23,7 @@ BR2_ROOTFS_USERS_TABLES="$(BR2_EXTERNAL_system_agent_PATH)/customizations/users.
BR2_ROOTFS_OVERLAY="$(BR2_EXTERNAL_system_agent_PATH)/customizations/overlay"
BR2_ROOTFS_POST_BUILD_SCRIPT="$(BR2_EXTERNAL_system_agent_PATH)/board/iminc/raspberrypi-4b-system-agent/post-build.sh"
BR2_ROOTFS_POST_IMAGE_SCRIPT="$(BR2_EXTERNAL_system_agent_PATH)/board/iminc/raspberrypi-4b-system-agent/post-image.sh"
BR2_ROOTFS_POST_SCRIPT_ARGS="--add-miniuart-bt-overlay --aarch64"
BR2_ROOTFS_POST_SCRIPT_ARGS="--add-miniuart-bt-overlay --aarch64 --add-pcf8574a-overlay"
BR2_LINUX_KERNEL=y
BR2_LINUX_KERNEL_CUSTOM_TARBALL=y
BR2_LINUX_KERNEL_CUSTOM_TARBALL_LOCATION="$(call github,raspberrypi,linux,081f560bde7188ca6f40cf297bd55c680e0179c0)/linux-081f560bde7188ca6f40cf297bd55c680e0179c0.tar.gz"
@ -31,6 +31,7 @@ BR2_LINUX_KERNEL_DEFCONFIG="bcm2711"
BR2_LINUX_KERNEL_CONFIG_FRAGMENT_FILES="$(BR2_EXTERNAL_system_agent_PATH)/board/iminc/raspberrypi-4b-system-agent/linux.fragment"
BR2_LINUX_KERNEL_DTS_SUPPORT=y
BR2_LINUX_KERNEL_INTREE_DTS_NAME="broadcom/bcm2711-rpi-4-b"
BR2_LINUX_KERNEL_CUSTOM_DTS_PATH="$(BR2_EXTERNAL_system_agent_PATH)/board/iminc/raspberrypi-4b-system-agent/overlays/pcf8574a.dts"
BR2_LINUX_KERNEL_NEEDS_HOST_OPENSSL=y
BR2_PACKAGE_LINUX_TOOLS_CPUPOWER=y
BR2_PACKAGE_LINUX_TOOLS_GPIO=y
@ -52,6 +53,7 @@ BR2_PACKAGE_UBOOT_TOOLS_MKENVIMAGE=y
BR2_PACKAGE_UBOOT_TOOLS_DUMPIMAGE=y
BR2_PACKAGE_LIBOPENSSL_BIN=y
BR2_PACKAGE_LIBOPENSSL_ENGINES=y
BR2_PACKAGE_LIBCONFIG=y
BR2_PACKAGE_LIBGPIOD=y
BR2_PACKAGE_LIBGPIOD_TOOLS=y
BR2_PACKAGE_LIBIIO=y
@ -72,7 +74,7 @@ BR2_PACKAGE_UTIL_LINUX_HWCLOCK=y
BR2_PACKAGE_VIM=y
BR2_TARGET_ROOTFS_EXT2=y
BR2_TARGET_ROOTFS_EXT2_4=y
BR2_TARGET_ROOTFS_EXT2_SIZE="128M"
BR2_TARGET_ROOTFS_EXT2_SIZE="256M"
# BR2_TARGET_ROOTFS_TAR is not set
BR2_PACKAGE_HOST_DOSFSTOOLS=y
BR2_PACKAGE_HOST_GENIMAGE=y