1*3a513da1SPierre-Louis Bossart /* SPDX-License-Identifier: (GPL-2.0-only OR BSD-3-Clause) */ 2*3a513da1SPierre-Louis Bossart /* 3*3a513da1SPierre-Louis Bossart * The MIPI SDCA specification is available for public downloads at 4*3a513da1SPierre-Louis Bossart * https://www.mipi.org/mipi-sdca-v1-0-download 5*3a513da1SPierre-Louis Bossart * 6*3a513da1SPierre-Louis Bossart * Copyright(c) 2024 Intel Corporation 7*3a513da1SPierre-Louis Bossart */ 8*3a513da1SPierre-Louis Bossart 9*3a513da1SPierre-Louis Bossart #ifndef __SDCA_FUNCTION_H__ 10*3a513da1SPierre-Louis Bossart #define __SDCA_FUNCTION_H__ 11*3a513da1SPierre-Louis Bossart 12*3a513da1SPierre-Louis Bossart /* 13*3a513da1SPierre-Louis Bossart * SDCA Function Types from SDCA specification v1.0a Section 5.1.2 14*3a513da1SPierre-Louis Bossart * all Function types not described are reserved 15*3a513da1SPierre-Louis Bossart * Note that SIMPLE_AMP, SIMPLE_MIC and SIMPLE_JACK Function Types 16*3a513da1SPierre-Louis Bossart * are NOT defined in SDCA 1.0a, but they were defined in earlier 17*3a513da1SPierre-Louis Bossart * drafts and are planned for 1.1. 18*3a513da1SPierre-Louis Bossart */ 19*3a513da1SPierre-Louis Bossart 20*3a513da1SPierre-Louis Bossart enum sdca_function_type { 21*3a513da1SPierre-Louis Bossart SDCA_FUNCTION_TYPE_SMART_AMP = 0x01, /* Amplifier with protection features */ 22*3a513da1SPierre-Louis Bossart SDCA_FUNCTION_TYPE_SIMPLE_AMP = 0x02, /* subset of SmartAmp */ 23*3a513da1SPierre-Louis Bossart SDCA_FUNCTION_TYPE_SMART_MIC = 0x03, /* Smart microphone with acoustic triggers */ 24*3a513da1SPierre-Louis Bossart SDCA_FUNCTION_TYPE_SIMPLE_MIC = 0x04, /* subset of SmartMic */ 25*3a513da1SPierre-Louis Bossart SDCA_FUNCTION_TYPE_SPEAKER_MIC = 0x05, /* Combination of SmartMic and SmartAmp */ 26*3a513da1SPierre-Louis Bossart SDCA_FUNCTION_TYPE_UAJ = 0x06, /* 3.5mm Universal Audio jack */ 27*3a513da1SPierre-Louis Bossart SDCA_FUNCTION_TYPE_RJ = 0x07, /* Retaskable jack */ 28*3a513da1SPierre-Louis Bossart SDCA_FUNCTION_TYPE_SIMPLE_JACK = 0x08, /* Subset of UAJ */ 29*3a513da1SPierre-Louis Bossart SDCA_FUNCTION_TYPE_HID = 0x0A, /* Human Interface Device, for e.g. buttons */ 30*3a513da1SPierre-Louis Bossart SDCA_FUNCTION_TYPE_IMP_DEF = 0x1F, /* Implementation-defined function */ 31*3a513da1SPierre-Louis Bossart }; 32*3a513da1SPierre-Louis Bossart 33*3a513da1SPierre-Louis Bossart /* Human-readable names used for kernel logs and Function device registration/bind */ 34*3a513da1SPierre-Louis Bossart #define SDCA_FUNCTION_TYPE_SMART_AMP_NAME "SmartAmp" 35*3a513da1SPierre-Louis Bossart #define SDCA_FUNCTION_TYPE_SIMPLE_AMP_NAME "SimpleAmp" 36*3a513da1SPierre-Louis Bossart #define SDCA_FUNCTION_TYPE_SMART_MIC_NAME "SmartMic" 37*3a513da1SPierre-Louis Bossart #define SDCA_FUNCTION_TYPE_SIMPLE_MIC_NAME "SimpleMic" 38*3a513da1SPierre-Louis Bossart #define SDCA_FUNCTION_TYPE_SPEAKER_MIC_NAME "SpeakerMic" 39*3a513da1SPierre-Louis Bossart #define SDCA_FUNCTION_TYPE_UAJ_NAME "UAJ" 40*3a513da1SPierre-Louis Bossart #define SDCA_FUNCTION_TYPE_RJ_NAME "RJ" 41*3a513da1SPierre-Louis Bossart #define SDCA_FUNCTION_TYPE_SIMPLE_NAME "SimpleJack" 42*3a513da1SPierre-Louis Bossart #define SDCA_FUNCTION_TYPE_HID_NAME "HID" 43*3a513da1SPierre-Louis Bossart 44*3a513da1SPierre-Louis Bossart enum sdca_entity0_controls { 45*3a513da1SPierre-Louis Bossart SDCA_CONTROL_ENTITY_0_COMMIT_GROUP_MASK = 0x01, 46*3a513da1SPierre-Louis Bossart SDCA_CONTROL_ENTITY_0_INTSTAT_CLEAR = 0x02, 47*3a513da1SPierre-Louis Bossart SDCA_CONTROL_ENTITY_0_INT_ENABLE = 0x03, 48*3a513da1SPierre-Louis Bossart SDCA_CONTROL_ENTITY_0_FUNCTION_SDCA_VERSION = 0x04, 49*3a513da1SPierre-Louis Bossart SDCA_CONTROL_ENTITY_0_FUNCTION_TOPOLOGY = 0x05, 50*3a513da1SPierre-Louis Bossart SDCA_CONTROL_ENTITY_0_FUNCTION_MANUFACTURER_ID = 0x06, 51*3a513da1SPierre-Louis Bossart SDCA_CONTROL_ENTITY_0_FUNCTION_ID = 0x07, 52*3a513da1SPierre-Louis Bossart SDCA_CONTROL_ENTITY_0_FUNCTION_VERSION = 0x08 53*3a513da1SPierre-Louis Bossart }; 54*3a513da1SPierre-Louis Bossart 55*3a513da1SPierre-Louis Bossart #endif 56