xref: /kernel/linux/linux-6.6/include/linux/usb/audio.h (revision 62306a36)
162306a36Sopenharmony_ci// SPDX-License-Identifier: GPL-2.0
262306a36Sopenharmony_ci/*
362306a36Sopenharmony_ci * <linux/usb/audio.h> -- USB Audio definitions.
462306a36Sopenharmony_ci *
562306a36Sopenharmony_ci * Copyright (C) 2006 Thumtronics Pty Ltd.
662306a36Sopenharmony_ci * Developed for Thumtronics by Grey Innovation
762306a36Sopenharmony_ci * Ben Williamson <ben.williamson@greyinnovation.com>
862306a36Sopenharmony_ci *
962306a36Sopenharmony_ci * This file holds USB constants and structures defined
1062306a36Sopenharmony_ci * by the USB Device Class Definition for Audio Devices.
1162306a36Sopenharmony_ci * Comments below reference relevant sections of that document:
1262306a36Sopenharmony_ci *
1362306a36Sopenharmony_ci * http://www.usb.org/developers/devclass_docs/audio10.pdf
1462306a36Sopenharmony_ci *
1562306a36Sopenharmony_ci * Types and defines in this file are either specific to version 1.0 of
1662306a36Sopenharmony_ci * this standard or common for newer versions.
1762306a36Sopenharmony_ci */
1862306a36Sopenharmony_ci#ifndef __LINUX_USB_AUDIO_H
1962306a36Sopenharmony_ci#define __LINUX_USB_AUDIO_H
2062306a36Sopenharmony_ci
2162306a36Sopenharmony_ci#include <uapi/linux/usb/audio.h>
2262306a36Sopenharmony_ci
2362306a36Sopenharmony_ci
2462306a36Sopenharmony_cistruct usb_audio_control {
2562306a36Sopenharmony_ci	struct list_head list;
2662306a36Sopenharmony_ci	const char *name;
2762306a36Sopenharmony_ci	u8 type;
2862306a36Sopenharmony_ci	int data[5];
2962306a36Sopenharmony_ci	int (*set)(struct usb_audio_control *con, u8 cmd, int value);
3062306a36Sopenharmony_ci	int (*get)(struct usb_audio_control *con, u8 cmd);
3162306a36Sopenharmony_ci};
3262306a36Sopenharmony_ci
3362306a36Sopenharmony_cistruct usb_audio_control_selector {
3462306a36Sopenharmony_ci	struct list_head list;
3562306a36Sopenharmony_ci	struct list_head control;
3662306a36Sopenharmony_ci	u8 id;
3762306a36Sopenharmony_ci	const char *name;
3862306a36Sopenharmony_ci	u8 type;
3962306a36Sopenharmony_ci	struct usb_descriptor_header *desc;
4062306a36Sopenharmony_ci};
4162306a36Sopenharmony_ci
4262306a36Sopenharmony_ci#endif /* __LINUX_USB_AUDIO_H */
43