It appears some have started landing upstream ae09a4783b9caf9307f303ef039f8297ce0371fe ("ASoC: Intel: Headset button support in kabylake machine driver") but it would be great if we had a way for userspace to configure these buttons similar to how we handle UCMs.
The question why you need to change this settings in the user space. I think that the device tree was designed exactly to describe this hw platform specific settings. Another possibility is to use the kernel module option to configure the settings from the user space. But it's just an idea. You are probably looking for an interface which can be used when the driver is running.
I am also unclear on the ask. We've cleaned-up all machine drivers so that the mapping is identical, except for the cases where the codec inverts the buttons. Are you saying you do an additional remapping of those buttons in userpace? If yes, why not fix the machine driver? The mapping is typically based on measured impedance, not really something userspace should really know about. Or is this a case where the ChromeOS kernel has not yet seen the upstream patches?