1// SPDX-License-Identifier: GPL-2.0
2/*
3 * Helpers for ChromeOS Vivaldi keyboard function row mapping
4 *
5 * Copyright (C) 2022 Google, Inc
6 */
7
8#include <linux/export.h>
9#include <linux/input/vivaldi-fmap.h>
10#include <linux/kernel.h>
11#include <linux/module.h>
12#include <linux/types.h>
13
14/**
15 * vivaldi_function_row_physmap_show - Print vivaldi function row physmap attribute
16 * @data: The vivaldi function row map
17 * @buf: Buffer to print the function row phsymap to
18 */
19ssize_t vivaldi_function_row_physmap_show(const struct vivaldi_data *data,
20 char *buf)
21{
22 ssize_t size = 0;
23 int i;
24 const u32 *physmap = data->function_row_physmap;
25
26 if (!data->num_function_row_keys)
27 return 0;
28
29 for (i = 0; i < data->num_function_row_keys; i++)
30 size += sysfs_emit_at(buf, at: size,
31 fmt: "%s%02X", size ? " " : "", physmap[i]);
32 if (size)
33 size += sysfs_emit_at(buf, at: size, fmt: "\n");
34
35 return size;
36}
37EXPORT_SYMBOL_GPL(vivaldi_function_row_physmap_show);
38
39MODULE_LICENSE("GPL");
40

source code of linux/drivers/input/vivaldi-fmap.c