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