xref: /aosp_15_r20/external/kernel-headers/original/uapi/sound/scarlett2.h (revision f80ad8b4341604f5951dab671d41019a6d7087ce)
1*f80ad8b4SAndroid Build Coastguard Worker /* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
2*f80ad8b4SAndroid Build Coastguard Worker /*
3*f80ad8b4SAndroid Build Coastguard Worker  *   Focusrite Scarlett 2 Protocol Driver for ALSA
4*f80ad8b4SAndroid Build Coastguard Worker  *   (including Scarlett 2nd Gen, 3rd Gen, 4th Gen, Clarett USB, and
5*f80ad8b4SAndroid Build Coastguard Worker  *   Clarett+ series products)
6*f80ad8b4SAndroid Build Coastguard Worker  *
7*f80ad8b4SAndroid Build Coastguard Worker  *   Copyright (c) 2023 by Geoffrey D. Bennett <g at b4.vu>
8*f80ad8b4SAndroid Build Coastguard Worker  */
9*f80ad8b4SAndroid Build Coastguard Worker #ifndef __UAPI_SOUND_SCARLETT2_H
10*f80ad8b4SAndroid Build Coastguard Worker #define __UAPI_SOUND_SCARLETT2_H
11*f80ad8b4SAndroid Build Coastguard Worker 
12*f80ad8b4SAndroid Build Coastguard Worker #include <linux/types.h>
13*f80ad8b4SAndroid Build Coastguard Worker #include <linux/ioctl.h>
14*f80ad8b4SAndroid Build Coastguard Worker 
15*f80ad8b4SAndroid Build Coastguard Worker #define SCARLETT2_HWDEP_MAJOR 1
16*f80ad8b4SAndroid Build Coastguard Worker #define SCARLETT2_HWDEP_MINOR 0
17*f80ad8b4SAndroid Build Coastguard Worker #define SCARLETT2_HWDEP_SUBMINOR 0
18*f80ad8b4SAndroid Build Coastguard Worker 
19*f80ad8b4SAndroid Build Coastguard Worker #define SCARLETT2_HWDEP_VERSION \
20*f80ad8b4SAndroid Build Coastguard Worker 	((SCARLETT2_HWDEP_MAJOR << 16) | \
21*f80ad8b4SAndroid Build Coastguard Worker 	 (SCARLETT2_HWDEP_MINOR << 8) | \
22*f80ad8b4SAndroid Build Coastguard Worker 	  SCARLETT2_HWDEP_SUBMINOR)
23*f80ad8b4SAndroid Build Coastguard Worker 
24*f80ad8b4SAndroid Build Coastguard Worker #define SCARLETT2_HWDEP_VERSION_MAJOR(v) (((v) >> 16) & 0xFF)
25*f80ad8b4SAndroid Build Coastguard Worker #define SCARLETT2_HWDEP_VERSION_MINOR(v) (((v) >> 8) & 0xFF)
26*f80ad8b4SAndroid Build Coastguard Worker #define SCARLETT2_HWDEP_VERSION_SUBMINOR(v) ((v) & 0xFF)
27*f80ad8b4SAndroid Build Coastguard Worker 
28*f80ad8b4SAndroid Build Coastguard Worker /* Get protocol version */
29*f80ad8b4SAndroid Build Coastguard Worker #define SCARLETT2_IOCTL_PVERSION _IOR('S', 0x60, int)
30*f80ad8b4SAndroid Build Coastguard Worker 
31*f80ad8b4SAndroid Build Coastguard Worker /* Reboot */
32*f80ad8b4SAndroid Build Coastguard Worker #define SCARLETT2_IOCTL_REBOOT _IO('S', 0x61)
33*f80ad8b4SAndroid Build Coastguard Worker 
34*f80ad8b4SAndroid Build Coastguard Worker /* Select flash segment */
35*f80ad8b4SAndroid Build Coastguard Worker #define SCARLETT2_SEGMENT_ID_SETTINGS 0
36*f80ad8b4SAndroid Build Coastguard Worker #define SCARLETT2_SEGMENT_ID_FIRMWARE 1
37*f80ad8b4SAndroid Build Coastguard Worker #define SCARLETT2_SEGMENT_ID_COUNT 2
38*f80ad8b4SAndroid Build Coastguard Worker 
39*f80ad8b4SAndroid Build Coastguard Worker #define SCARLETT2_IOCTL_SELECT_FLASH_SEGMENT _IOW('S', 0x62, int)
40*f80ad8b4SAndroid Build Coastguard Worker 
41*f80ad8b4SAndroid Build Coastguard Worker /* Erase selected flash segment */
42*f80ad8b4SAndroid Build Coastguard Worker #define SCARLETT2_IOCTL_ERASE_FLASH_SEGMENT _IO('S', 0x63)
43*f80ad8b4SAndroid Build Coastguard Worker 
44*f80ad8b4SAndroid Build Coastguard Worker /* Get selected flash segment erase progress
45*f80ad8b4SAndroid Build Coastguard Worker  * 1 through to num_blocks, or 255 for complete
46*f80ad8b4SAndroid Build Coastguard Worker  */
47*f80ad8b4SAndroid Build Coastguard Worker struct scarlett2_flash_segment_erase_progress {
48*f80ad8b4SAndroid Build Coastguard Worker 	unsigned char progress;
49*f80ad8b4SAndroid Build Coastguard Worker 	unsigned char num_blocks;
50*f80ad8b4SAndroid Build Coastguard Worker };
51*f80ad8b4SAndroid Build Coastguard Worker #define SCARLETT2_IOCTL_GET_ERASE_PROGRESS \
52*f80ad8b4SAndroid Build Coastguard Worker 	_IOR('S', 0x64, struct scarlett2_flash_segment_erase_progress)
53*f80ad8b4SAndroid Build Coastguard Worker 
54*f80ad8b4SAndroid Build Coastguard Worker #endif /* __UAPI_SOUND_SCARLETT2_H */
55