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