I have not found the answer to this by searching.
I did read that the original Xbox had analog face buttons but Xbox 360 did not.
Arqade is a question and answer site for passionate videogamers on all platforms. It only takes a minute to sign up.Sign up to join this community
According to Wikipedia, the Xbox One only has digital face buttons:
11× Digital buttons
(Y, B, A, X, LB, RB, left stick click, right stick click, Menu, View, Xbox)
The right face of the controller features four digital action buttons: a green A button, red B button, blue X button, and yellow Y button.
Interestingly, the original Xbox controller does have analog buttons, however:
6× Pressure-sensitive buttons
(A, B, X, Y, Black, White)
As for why Microsoft removed pressure-sensitive face buttons from its controllers, it's probably for the same reason why Sony removed them from the PS4 controller: hardly any game ever made use of the pressure-sensitivity, and hardly anyone even knew they existed.
The xpad module in the Linux kernel supports Xbox (original), Xbox 360, and Xbox One controllers. You can inspect the code to see that only the original Xbox controller uses more than one bit per button.
xpad_process_packet processes Xbox controller inputs, note that the entire byte is passed to
input_report_key (although the module still treats it as a boolean value):
xpad360_process_packet processes Xbox 360 controller inputs, bit masks are used so that only the single bit corresponding to each button is passed to
xpadone_process_packet processes Xbox One controller inputs, again using bit masks: