From 2f83c5dab57b7a069e6518047eba0df95506f8fb Mon Sep 17 00:00:00 2001 From: hackerman-kl Date: Sat, 6 Dec 2025 17:26:42 +0100 Subject: [PATCH] module-avb: descriptors: adding control specific defines --- src/modules/module-avb/aecp-aem-controls.h | 171 +++++++++++++++++++++ 1 file changed, 171 insertions(+) create mode 100644 src/modules/module-avb/aecp-aem-controls.h diff --git a/src/modules/module-avb/aecp-aem-controls.h b/src/modules/module-avb/aecp-aem-controls.h new file mode 100644 index 000000000..954229b27 --- /dev/null +++ b/src/modules/module-avb/aecp-aem-controls.h @@ -0,0 +1,171 @@ +/* AVB support */ +/* SPDX-FileCopyrightText: Copyright © 2025 Kebag-Logic */ +/* SPDX-FileCopyrightText: Copyright © 2025 Alexandre Malki */ +/* SPDX-FileCopyrightText: Copyright © 2025 Simon Gapp */ +/* SPDX-License-Identifier: MIT */ + +#ifndef __AECP_AEM_CONTROLS_H__ +#define __AECP_AEM_CONTROLS_H__ + +// TODO, When all the AVB needs to be supported then addition needs to be don here +/* IEEE 1722.1-2021, Table 7-121 - Value Types*/ +#define AECP_AEM_CTRL_LINEAR_INT8 0x0000 +#define AECP_AEM_CTRL_LINEAR_UINT8 0x0001 +#define AECP_AEM_CTRL_LINEAR_INT16 0x0002 +#define AECP_AEM_CTRL_LINEAR_UINT16 0x0003 +#define AECP_AEM_CTRL_LINEAR_INT32 0x0004 +#define AECP_AEM_CTRL_LINEAR_UINT32 0x0005 +#define AECP_AEM_CTRL_LINEAR_INT64 0x0006 +#define AECP_AEM_CTRL_LINEAR_UINT64 0x0007 +#define AECP_AEM_CTRL_LINEAR_FLOAT 0x0008 +#define AECP_AEM_CTRL_LINEAR_DOUBLE 0x0009 + +#define AECP_AEM_CTRL_SELECTOR_INT8 0x000a +#define AECP_AEM_CTRL_SELECTOR_UINT8 0x000b +#define AECP_AEM_CTRL_SELECTOR_INT16 0x000c +#define AECP_AEM_CTRL_SELECTOR_UINT16 0x000d +#define AECP_AEM_CTRL_SELECTOR_INT32 0x000e +#define AECP_AEM_CTRL_SELECTOR_UINT32 0x000f +#define AECP_AEM_CTRL_SELECTOR_INT64 0x0010 +#define AECP_AEM_CTRL_SELECTOR_UINT64 0x0011 +#define AECP_AEM_CTRL_SELECTOR_FLOAT 0x0012 +#define AECP_AEM_CTRL_SELECTOR_DOUBLE 0x0013 +#define AECP_AEM_CTRL_SELECTOR_STRING 0x0014 + +#define AEPC_AEM_CTRL_ARRAY_INT8 0x0015 +#define AEPC_AEM_CTRL_ARRAY_UINT8 0x0016 +#define AEPC_AEM_CTRL_ARRAY_INT16 0x0017 +#define AEPC_AEM_CTRL_ARRAY_UINT16 0x0018 +#define AEPC_AEM_CTRL_ARRAY_INT32 0x0019 +#define AEPC_AEM_CTRL_ARRAY_UINT32 0x001a +#define AEPC_AEM_CTRL_ARRAY_INT64 0x001b +#define AEPC_AEM_CTRL_ARRAY_UINT64 0x001c +#define AEPC_AEM_CTRL_ARRAY_FLOAT 0x001d +#define AEPC_AEM_CTRL_ARRAY_DOUBLE 0x001e + +#define AECP_AEM_CTRL_UTF8 0x001f +#define AECP_AEM_CTRL_BODE_PLOT 0x0020 +#define AECP_AEM_CTRL_SMPTE_TIME 0x0021 +#define AECP_AEM_CTRL_SAMPLE_RATE 0x0022 +#define AECP_AEM_CTRL_GPTP_TIME 0x0023 + +#define AECP_AEM_CTRL_CTRL_VENDOR 0x3ffe + +/* Definition of the UNIT codes */ +/* IEEE 1722.1-2021, Table 7-75 - Codes for Unitless quantities*/ +#define AECP_AEM_CTRL_UNIT_CODE_UNITLESS (0) +#define AECP_AEM_CTRL_UNIT_CODE_COUNT (1) +#define AECP_AEM_CTRL_UNIT_CODE_PERCENT (2) +#define AECP_AEM_CTRL_UNIT_CODE_FSTOP (3) + + + +#define AECP_AEM_CTRL_FORMAT_VENDOR (0) +#define AECP_AEM_CTRL_FORMAT_AVDECC (1) + +/* IEEE 1722.1-2021, Sec. 7.3.5 Control Types */ +#define AEM_CTRL_TYPE_ENABLE 0x90E0F00000000000ULL +#define AEM_CTRL_TYPE_IDENTIFY 0x90E0F00000000001ULL +#define AEM_CTRL_TYPE_MUTE 0x90E0F00000000002ULL +#define AEM_CTRL_TYPE_INVERT 0x90E0F00000000003ULL +#define AEM_CTRL_TYPE_GAIN 0x90E0F00000000004ULL +#define AEM_CTRL_TYPE_ATTENUATE 0x90E0F00000000005ULL +#define AEM_CTRL_TYPE_DELAY 0x90E0F00000000006ULL +#define AEM_CTRL_TYPE_SRC_MODE 0x90E0F00000000007ULL +#define AEM_CTRL_TYPE_SNAPSHOT 0x90E0F00000000008ULL +#define AEM_CTRL_TYPE_POW_LINE_FREQ 0x90E0F00000000009ULL +#define AEM_CTRL_TYPE_POWER_STATUS 0x90E0F0000000000AULL +#define AEM_CTRL_TYPE_FAN_STATUS 0x90E0F0000000000BULL +#define AEM_CTRL_TYPE_TEMPERATURE 0x90E0F0000000000CULL +#define AEM_CTRL_TYPE_ALTITUDE 0x90E0F0000000000DULL +#define AEM_CTRL_TYPE_ABSOLUTE_HUMIDITY 0x90E0F0000000000EULL +#define AEM_CTRL_TYPE_RELATIVE_HUMIDITY 0x90E0F0000000000FULL +#define AEM_CTRL_TYPE_ORIENTATION 0x90E0F00000000010ULL +#define AEM_CTRL_TYPE_VELOCITY 0x90E0F00000000011ULL +#define AEM_CTRL_TYPE_ACCELERATION 0x90E0F00000000012ULL +#define AEM_CTRL_TYPE_FILTER_RESPONSE 0x90E0F00000000013ULL +#define AEM_CTRL_TYPE_BAROMETRIC_PRESSURE 0x90E0F00000000014ULL +#define AEM_CTRL_TYPE_MANUFACTURER_URL 0x90E0F00000000015ULL +#define AEM_CTRL_TYPE_ENTITY_URL 0x90E0F00000000016ULL +#define AEM_CTRL_TYPE_CONFIGURATION_URL 0x90E0F00000000017ULL +#define AEM_CTRL_TYPE_GENERIC_URL 0x90E0F00000000018ULL +#define AEM_CTRL_TYPE_FAULT 0x90E0F00000000019ULL +#define AEM_CTRL_TYPE_CONTROLLER_TARGET_ENTITY 0x90E0F0000000001AULL +#define AEM_CTRL_TYPE_CONTROLLER_TARGET_OBJECT 0x90E0F0000000001BULL +#define AEM_CTRL_TYPE_LATENCY_COMPENSATION 0x90E0F0000000001CULL + +#define AEM_CTRL_TYPE_PANPOT 0x90E0F00000010000ULL +#define AEM_CTRL_TYPE_PHANTOM 0x90E0F00000010001ULL +#define AEM_CTRL_TYPE_AUDIO_SCALE 0x90E0F00000010002ULL +#define AEM_CTRL_TYPE_AUDIO_METERS 0x90E0F00000010003ULL +#define AEM_CTRL_TYPE_AUDIO_SPECTRUM 0x90E0F00000010004ULL + +#define AEM_CTRL_TYPE_SCANNING_MODE 0x90E0F00000020000ULL +#define AEM_CTRL_TYPE_AUTO_EXP_MODE 0x90E0F00000020001ULL +#define AEM_CTRL_TYPE_AUTO_EXP_PRIO 0x90E0F00000020002ULL +#define AEM_CTRL_TYPE_EXP_TIME 0x90E0F00000020003ULL +#define AEM_CTRL_TYPE_FOCUS 0x90E0F00000020004ULL +#define AEM_CTRL_TYPE_FOCUS_AUTO 0x90E0F00000020005ULL +#define AEM_CTRL_TYPE_IRIS 0x90E0F00000020006ULL +#define AEM_CTRL_TYPE_ZOOM 0x90E0F00000020007ULL +#define AEM_CTRL_TYPE_PRIVACY 0x90E0F00000020008ULL +#define AEM_CTRL_TYPE_BACKLIGHT 0x90E0F00000020009ULL +#define AEM_CTRL_TYPE_BRIGHTNESS 0x90E0F0000002000AULL +#define AEM_CTRL_TYPE_CONTRAST 0x90E0F0000002000BULL +#define AEM_CTRL_TYPE_HUE 0x90E0F0000002000CULL +#define AEM_CTRL_TYPE_SATURATION 0x90E0F0000002000DULL +#define AEM_CTRL_TYPE_SHARPNESS 0x90E0F0000002000EULL +#define AEM_CTRL_TYPE_GAMMA 0x90E0F0000002000FULL +#define AEM_CTRL_TYPE_WHITE_BAL_TEMP 0x90E0F00000020010ULL +#define AEM_CTRL_TYPE_WHITE_BAL_TEMP_AUTO 0x90E0F00000020011ULL +#define AEM_CTRL_TYPE_WHITE_BAL_COMP 0x90E0F00000020012ULL +#define AEM_CTRL_TYPE_WHITE_BAL_COMP_AUTO 0x90E0F00000020013ULL +#define AEM_CTRL_TYPE_DIGITAL_ZOOM 0x90E0F00000020014ULL + +#define AEM_CTRL_TYPE_MEDIA_PLAYLIST 0x90E0F00000030000ULL +#define AEM_CTRL_TYPE_MEDIA_PLAYLIST_NAME 0x90E0F00000030001ULL +#define AEM_CTRL_TYPE_MEDIA_DISK 0x90E0F00000030002ULL +#define AEM_CTRL_TYPE_MEIDA_DISK_NAME 0x90E0F00000030003ULL +#define AEM_CTRL_TYPE_TRACK 0x90E0F00000030004ULL +#define AEM_CTRL_TYPE_TRACK_NAME 0x90E0F00000030005ULL +#define AEM_CTRL_TYPE_SPEED 0x90E0F00000030006ULL +#define AEM_CTRL_TYPE_MEDIA_SAMPLE_POSITION 0x90E0F00000030007ULL +#define AEM_CTRL_TYPE_MEDIA_PLAYBACK_TRANSPORT 0x90E0F00000030008ULL +#define AEM_CTRL_TYPE_MEDIA_RECORD_TRANSPORT 0x90E0F00000030009ULL + +#define AEM_CTRL_TYPE_FREQUENCY 0x90E0F00000040000ULL +#define AEM_CTRL_TYPE_MODULATION 0x90E0F00000040001ULL +#define AEM_CTRL_TYPE_POLARIZATION 0x90E0F00000040002ULL + +#define AEM_CTRL_TYPE_BAUD_RATE 0x90E0F00000050000ULL +#define AEM_CTRL_TYPE_BIT_WIDTH 0x90E0F00000050001ULL +#define AEM_CTRL_TYPE_PARITY 0x90E0F00000050002ULL +#define AEM_CTRL_TYPE_STOP_BITS 0x90E0F00000050003ULL + +#define AEM_CTRL_TYPE_INTERFACE_OPERATIONAL 0x90E0F00000060000ULL +#define AEM_CTRL_TYPE_INTERFACE_MEDIA_OPTIONS 0x90E0F00000060001ULL +#define AEM_CTRL_TYPE_INTERFACE_MEDIA_STATUS 0x90E0F00000060002ULL +#define AEM_CTRL_TYPE_INTERFACE_NETWORK_NAME 0x90E0F00000060003ULL +#define AEM_CTRL_TYPE_FQTSS_DELTA_BANDWIDTH 0x90E0F00000060004ULL +#define AEM_CTRL_TYPE_FQTSS_ADMIN_IDLE_SLOPE 0x90E0F00000060005ULL +#define AEM_CTRL_TYPE_FQTSS_OPER_IDLE_SLOPE 0x90E0F00000060006ULL +#define AEM_CTRL_TYPE_FQTSS_PORT_TRANSMIT_RATE 0x90E0F00000060007ULL +#define AEM_CTRL_TYPE_FQTSS_CLASS_MEASUREMENT_INTERVAL 0x90E0F00000060008ULL +#define AEM_CTRL_TYPE_FQTSS_LOCK_CLASS_BANDWIDTH 0x90E0F00000060009ULL + +/* Identify +* IEEE 1722.1, Sec. 7.3.5.2 - Identify Control (IDENTIFY) +* Milan v1.2, Sec. 5.4.5.4 - Identification notification +*/ +#define AECP_AEM_CTRL_IDENTIFY_UNIT_MULTIPLY 0 +#define AECP_AEM_CTRL_IDENTIFY_UNIT_CODE AECP_AEM_CTRL_UNIT_CODE_UNITLESS +#define AECP_AEM_CTRL_IDENTIFY_STEP (255) +#define AECP_AEM_CTRL_IDENTIFY_MINIMUM (0) +#define AECP_AEM_CTRL_IDENTIFY_MAXIMUM (255) + + +#define BASE_CTRL_TYPE_MAC { 0x90, 0xe0, 0xf0, 0x01, 0x00, 0x00 }; +// 1722.1-2021, Annex B Table B.1 +#define BASE_CTRL_IDENTIFY_MAC { 0x90, 0xe0, 0xf0, 0x00, 0x00, 0x01 }; + +#endif //__AECP_AEM_CONTROLS_H__