From 3e6e742569b53d7814b4a09b070eb7d6f7151799 Mon Sep 17 00:00:00 2001 From: Aditya Prayoga Date: Tue, 15 Oct 2019 06:59:47 +0700 Subject: [PATCH] Added device tree overlay on gpio page Added wiring diagram for button --- .../dt-overlay/compile-dtb-lk-4.14.patch | 14 + .../dt-overlay/compile-dtb-lk-4.19.patch | 14 + docs/files/dt-overlay/dtc | Bin 0 -> 86904 bytes docs/gpio.md | 241 ++++++++++++++++++ docs/img/gpio/power_button_sch.png | Bin 0 -> 5647 bytes 5 files changed, 269 insertions(+) create mode 100644 docs/files/dt-overlay/compile-dtb-lk-4.14.patch create mode 100644 docs/files/dt-overlay/compile-dtb-lk-4.19.patch create mode 100755 docs/files/dt-overlay/dtc create mode 100644 docs/img/gpio/power_button_sch.png diff --git a/docs/files/dt-overlay/compile-dtb-lk-4.14.patch b/docs/files/dt-overlay/compile-dtb-lk-4.14.patch new file mode 100644 index 0000000..13e97d5 --- /dev/null +++ b/docs/files/dt-overlay/compile-dtb-lk-4.14.patch @@ -0,0 +1,14 @@ +diff --git a/scripts/Makefile.lib b/scripts/Makefile.lib +index aac94d96..d22bb79d 100644 +--- a/scripts/Makefile.lib ++++ b/scripts/Makefile.lib +@@ -270,6 +270,9 @@ cmd_gzip = (cat $(filter-out FORCE,$^) | gzip -n -f -9 > $@) || \ + # --------------------------------------------------------------------------- + DTC ?= $(objtree)/scripts/dtc/dtc + ++# Enable overlay support ++DTC_FLAGS += -@ ++ + # Disable noisy checks by default + ifeq ($(KBUILD_ENABLE_EXTRA_GCC_CHECKS),) + DTC_FLAGS += -Wno-unit_address_vs_reg \ diff --git a/docs/files/dt-overlay/compile-dtb-lk-4.19.patch b/docs/files/dt-overlay/compile-dtb-lk-4.19.patch new file mode 100644 index 0000000..1eb431e --- /dev/null +++ b/docs/files/dt-overlay/compile-dtb-lk-4.19.patch @@ -0,0 +1,14 @@ +diff --git a/scripts/Makefile.lib b/scripts/Makefile.lib +index 61e596650..fdb066e51 100644 +--- a/scripts/Makefile.lib ++++ b/scripts/Makefile.lib +@@ -244,6 +244,9 @@ cmd_gzip = (cat $(filter-out FORCE,$^) | gzip -n -f -9 > $@) || \ + # --------------------------------------------------------------------------- + DTC ?= $(objtree)/scripts/dtc/dtc + ++# Enable overlay support ++DTC_FLAGS += -@ ++ + # Disable noisy checks by default + ifeq ($(findstring 1,$(KBUILD_ENABLE_EXTRA_GCC_CHECKS)),) + DTC_FLAGS += -Wno-unit_address_vs_reg \ diff --git a/docs/files/dt-overlay/dtc b/docs/files/dt-overlay/dtc new file mode 100755 index 0000000000000000000000000000000000000000..f8e6435691b7a9618424d2b0d2a8e9cba9bb93a8 GIT binary patch literal 86904 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 + gpios = <&expander0 2 1>; + }; + }; + }; +}; + +``` +Download dtc and compile device tree with this command + +``` +wget https://wiki.kobol.io/files/dt-overlay/dtc +chmod 755 dtc +./dtc -I dts -O dtb -o power-button.dtbo power-button.dts +``` + +***Button Wiring*** + +![button wiring](/img/gpio/power_button_sch.png) + +The GPIO has internal pull up resistor, when the button is not pressed the input read as High and when the button is pressed the input read as Low, therefore we use active low flag. + +---- + +In the above example you will find the 2 following lines + +``` +linux,code = <116>; +gpios = <&expander0 2 1>; +``` + +For **linux,code** property, you can use one of the following values. For complete even code list refer to [input-event-codes.h](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/plain/include/uapi/linux/input-event-codes.h). + +| Event Code Name | Event Code | Description | +|-------------|-------|---------------| +| KEY_POWER | 116 | Power Button | +| KEY_SLEEP | 142 | Sleep Button | +| KEY_WAKEUP | 116 | Power Button | +| BTN_0 | 0x100 | User Button 0 | +| BTN_1 | 0x101 | User Button 1 | +| BTN_2 | 0x102 | User Button 2 | +| BTN_3 | 0x103 | User Button 3 | +| BTN_4 | 0x104 | User Button 4 | +| BTN_5 | 0x105 | User Button 5 | +| BTN_6 | 0x106 | User Button 6 | +| BTN_7 | 0x107 | User Button 7 | +| BTN_8 | 0x108 | User Button 8 | +| BTN_9 | 0x109 | User Button 9 | + +For **gpios** properties, the syntax is as follow + +`<&expander0 index flag>` + +Where *index* is one of the following values + +| Port Number | Index | +|-------|----| +| IO0_2 | 2 | +| IO0_3 | 3 | +| IO0_4 | 4 | +| IO0_7 | 7 | +| IO1_0 | 8 | +| IO1_1 | 9 | +| IO1_2 | 10 | +| IO1_3 | 11 | +| IO1_4 | 12 | +| IO1_5 | 13 | +| IO1_6 | 14 | +| IO1_7 | 15 | + +And *flag* is one of the following values + +| Flag | Property | +|------|-----------| +| 0 | GPIO line is active high | +| 1 | GPIO line is active low | + +For more info please refer to +[gpio-keys binding](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/plain/Documentation/devicetree/bindings/input/gpio-keys.txt). + +### Device Tree Overlay under Armbian + +Create */boot/overlay-user/* to store the overlay and copy the overlay to the folder + +``` +sudo mkdir -p /boot/overlay-user +sudo cp power-button.dtbo /boot/overlay-user/ +``` + +Then edit */boot/armbianEnv.txt* and append the overlay filename (without dtbo extension) to *user_overlays* + +`user_overlays=power-button` + +Reboot the system to load the overlay. + + +!!! notes + If there is more than one overlay file, separate it by space. For example + + `user_overlays=power-button sleep-button` + +---- + +***Additional Steps for U-Boot 2018.11 (Armbian Default)*** + +Bootscript (**boot.scr**) used in Armbian Default does not have routine to automatically load overlay from */boot/overlay-user* therefore **/boot/boot.cmd** need to be modified. + +Append the following block + +``` +fdt addr ${fdt_addr} +fdt resize 65536 + +for overlay_file in ${user_overlays}; do + if load ${boot_interface} 0:1 ${loadaddr} ${prefix}overlay-user/${overlay_file}.dtbo; then + echo "Applying user provided DT overlay ${overlay_file}.dtbo" + fdt apply ${loadaddr} || setenv overlay_error "true" + fi +done + +if test "${overlay_error}" = "true"; then + echo "Error applying DT overlays, restoring original DT" + load ${boot_interface} 0:1 ${fdt_addr} ${prefix}dtb/${fdtfile} +fi +``` + +before + +`bootz ${kernel_addr_r} ${ramdisk_addr_r} ${fdt_addr}` + +so it become + +``` +fdt addr ${fdt_addr} +fdt resize 65536 + +for overlay_file in ${user_overlays}; do + if load ${boot_interface} 0:1 ${loadaddr} ${prefix}overlay-user/${overlay_file}.dtbo; then + echo "Applying user provided DT overlay ${overlay_file}.dtbo" + fdt apply ${loadaddr} || setenv overlay_error "true" + fi +done + +if test "${overlay_error}" = "true"; then + echo "Error applying DT overlays, restoring original DT" + load ${boot_interface} 0:1 ${fdt_addr} ${prefix}dtb/${fdtfile} +fi + +bootz ${kernel_addr_r} ${ramdisk_addr_r} ${fdt_addr} +``` + +Recompile with + +`mkimage -C none -A arm -T script -d /boot/boot.cmd /boot/boot.scr` + +---- + +### Device Tree Overlay under Other Distro + +#### Compile Helios4 DTB with Symbol Support + +Download Linux Kernel source code and extract it to *~/src/linux*. Change directory to *~/src/linux* + +Download and apply kernel patch for + +- Linux Kernel 4.14 + +``` +wget https://wiki.kobol.io/files/dt-overlay/compile-dtb-lk-4.14.patch +git apply --apply compile-dtb-lk-4.14.patch +``` + +- Linux Kernel 4.19 + +``` +wget https://wiki.kobol.io/files/dt-overlay/compile-dtb-lk-4.19.patch +git apply --apply compile-dtb-lk-4.19.patch +``` + +Compile Helios4 device tree + +`make armada-388-helios4.dtb` + +Copy the dtb to boot folder (eg. /boot/dtb/) + +`sudo cp arch/arm/boot/dts/armada-388-helios4.dtb /boot/dtb/` + +Copy the overlay also to the same folder. + +#### Apply overlay on U-Boot + +To apply overlay to base dtb, the procedure is + +1. Load Helios4 dtb to memory +2. Set fdt address to dtb address +3. Resize the fdt +4. Load overlay to memory +5. Apply from overlay address +6. Boot the kernel + +Example command + +``` +load mmc 0:1 ${ramdisk_addr_r} /boot/uInitrd +load mmc 0:1 ${kernel_addr_r} /boot/zImage + +load mmc 0:1 ${fdt_addr_r} /boot/dtb/${fdtfile} +fdt addr ${fdt_addr_r} +fdt resize 65536 +load mmc 0:1 0x300000 /boot/dtb/power-button.dtbo +fdt apply 0x300000 + +bootz ${kernel_addr_r} ${ramdisk_addr_r} ${fdt_addr_r} + +``` diff --git a/docs/img/gpio/power_button_sch.png b/docs/img/gpio/power_button_sch.png new file mode 100644 index 0000000000000000000000000000000000000000..257f7681e69ea0fdd23227e30e183bd188701c94 GIT binary patch literal 5647 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 Xl)TB2g3=^qc*%6NAev}(+o=BlsY%JC literal 0 HcmV?d00001