-define display_ws5inch_boot =
+ifndef display_rotate
+ display_rotate := 0
+endif
-# Waveshare 5 Inch Display
+ifeq "${display_rotate}" "0"
+ display_touch_calibration := 200 3950 250 4000
+else ifeq "${display_rotate}" "2"
+ display_touch_calibration := 3950 200 4000 250
+endif
+
+define RPICONFIG +=
+
+### Waveshare 5 Inch Display ###
hdmi_group=2
hdmi_mode=87
hdmi_cvt=800 480 60 6 0 0 0
dtparam=spi=on
enable_uart=1
dtoverlay=ads7846,cs=1,penirq=25,penirq_pull=2,speed=50000,keep_vref_on=0,swapxy=0,pmax=255,xohms=150,xmin=200,xmax=3900,ymin=200,ymax=3900
+# Display is better readable from top direction
+display_rotate=${display_rotate}
endef
-define display_ws5inch_cfg =
+define display_ws5inch_cfg :=
Section "InputClass"
Identifier "evdev touchscreen catchall"
MatchIsTouchscreen "on"
- Option "Calibration" "200 3950 250 4000"
+ Option "Calibration" "${display_touch_calibration}"
MatchDevicePath "/dev/input/event*"
Driver "evdev"
EndSection
endef
-export display_ws5inch_boot display_ws5inch_cfg
+export display_ws5inch_cfg
-PACKAGES := ${PACKAGES} xserver-xorg-input-evdev xinput xinput-calibrator
+PACKAGES += xserver-xorg-input-evdev xinput xinput-calibrator
.PHONY: _display_ws5inch
_config: _display_ws5inch
_display_ws5inch: ${CFGROOT} _copy _mount
- printf %s "$${display_ws5inch_boot}" >>"$${CFGROOT}/boot/config.txt"
mkdir -p "$${CFGROOT}/usr/share/X11/xorg.conf.d/"
- printf %s "$${display_ws5inch_cfg}" >"$${CFGROOT}/usr/share/X11/xorg.conf.d/45-evdev.conf"
- #-chroot "$${CFGROOT}" adduser local input
+ printf '%s\n' "$${display_ws5inch_cfg}" >"$${CFGROOT}/usr/share/X11/xorg.conf.d/45-evdev.conf"
+ mkdir -p "$${CFGROOT}/etc/X11/Xsession.d/"
+ printf 'xrandr --size 800x480\n' >"$${CFGROOT}/etc/X11/Xsession.d/10display_resolution"