These are great references. Read them all briefly, without getting too bogged down in the technical details. As far as I understand it, the libevdev library basically provides one of the lowest levels of interaction with evdev files that comes after reading them yourself, and it is not recommended to read evdev files yourself, as there are many intricacies that can occur.
Maybe worth checking if one is not supported to use libinput instead of processing kernel events directly though. [2]
If someone is interested in the input topic, Peter Hutterer's blog is very nice to read. I also enjoyed his talk about libinput's bus factor [3].
[1] https://who-t.blogspot.com/2013/09/libevdev-handling-input-e...
[2] https://who-t.blogspot.com/2018/07/why-its-not-good-idea-to-...
[3] https://who-t.blogspot.com/2019/10/libinputs-bus-factor-is-1...