1*45ceaf14SStephen Boyd /* SPDX-License-Identifier: GPL-2.0 */ 2*45ceaf14SStephen Boyd #ifndef _VIVALDI_FMAP_H 3*45ceaf14SStephen Boyd #define _VIVALDI_FMAP_H 4*45ceaf14SStephen Boyd 5*45ceaf14SStephen Boyd #include <linux/types.h> 6*45ceaf14SStephen Boyd 7*45ceaf14SStephen Boyd #define VIVALDI_MAX_FUNCTION_ROW_KEYS 24 8*45ceaf14SStephen Boyd 9*45ceaf14SStephen Boyd /** 10*45ceaf14SStephen Boyd * struct vivaldi_data - Function row map data for ChromeOS Vivaldi keyboards 11*45ceaf14SStephen Boyd * @function_row_physmap: An array of scancodes or their equivalent (HID usage 12*45ceaf14SStephen Boyd * codes, encoded rows/columns, etc) for the top 13*45ceaf14SStephen Boyd * row function keys, in an order from left to right 14*45ceaf14SStephen Boyd * @num_function_row_keys: The number of top row keys in a custom keyboard 15*45ceaf14SStephen Boyd * 16*45ceaf14SStephen Boyd * This structure is supposed to be used by ChromeOS keyboards using 17*45ceaf14SStephen Boyd * the Vivaldi keyboard function row design. 18*45ceaf14SStephen Boyd */ 19*45ceaf14SStephen Boyd struct vivaldi_data { 20*45ceaf14SStephen Boyd u32 function_row_physmap[VIVALDI_MAX_FUNCTION_ROW_KEYS]; 21*45ceaf14SStephen Boyd unsigned int num_function_row_keys; 22*45ceaf14SStephen Boyd }; 23*45ceaf14SStephen Boyd 24*45ceaf14SStephen Boyd ssize_t vivaldi_function_row_physmap_show(const struct vivaldi_data *data, 25*45ceaf14SStephen Boyd char *buf); 26*45ceaf14SStephen Boyd 27*45ceaf14SStephen Boyd #endif /* _VIVALDI_FMAP_H */ 28