18c2ecf20Sopenharmony_ci======================================= 28c2ecf20Sopenharmony_ciSoftware Interface ALSA-DSP MADI Driver 38c2ecf20Sopenharmony_ci======================================= 48c2ecf20Sopenharmony_ci 58c2ecf20Sopenharmony_ci(translated from German, so no good English ;-), 68c2ecf20Sopenharmony_ci 78c2ecf20Sopenharmony_ci2004 - winfried ritsch 88c2ecf20Sopenharmony_ci 98c2ecf20Sopenharmony_ci 108c2ecf20Sopenharmony_ciFull functionality has been added to the driver. Since some of 118c2ecf20Sopenharmony_cithe Controls and startup-options are ALSA-Standard and only the 128c2ecf20Sopenharmony_cispecial Controls are described and discussed below. 138c2ecf20Sopenharmony_ci 148c2ecf20Sopenharmony_ci 158c2ecf20Sopenharmony_ciHardware functionality 168c2ecf20Sopenharmony_ci====================== 178c2ecf20Sopenharmony_ci 188c2ecf20Sopenharmony_ciAudio transmission 198c2ecf20Sopenharmony_ci------------------ 208c2ecf20Sopenharmony_ci 218c2ecf20Sopenharmony_ci* number of channels -- depends on transmission mode 228c2ecf20Sopenharmony_ci 238c2ecf20Sopenharmony_ci The number of channels chosen is from 1..Nmax. The reason to 248c2ecf20Sopenharmony_ci use for a lower number of channels is only resource allocation, 258c2ecf20Sopenharmony_ci since unused DMA channels are disabled and less memory is 268c2ecf20Sopenharmony_ci allocated. So also the throughput of the PCI system can be 278c2ecf20Sopenharmony_ci scaled. (Only important for low performance boards). 288c2ecf20Sopenharmony_ci 298c2ecf20Sopenharmony_ci* Single Speed -- 1..64 channels 308c2ecf20Sopenharmony_ci 318c2ecf20Sopenharmony_ci.. note:: 328c2ecf20Sopenharmony_ci (Note: Choosing the 56channel mode for transmission or as 338c2ecf20Sopenharmony_ci receiver, only 56 are transmitted/received over the MADI, but 348c2ecf20Sopenharmony_ci all 64 channels are available for the mixer, so channel count 358c2ecf20Sopenharmony_ci for the driver) 368c2ecf20Sopenharmony_ci 378c2ecf20Sopenharmony_ci* Double Speed -- 1..32 channels 388c2ecf20Sopenharmony_ci 398c2ecf20Sopenharmony_ci.. note:: 408c2ecf20Sopenharmony_ci Note: Choosing the 56-channel mode for 418c2ecf20Sopenharmony_ci transmission/receive-mode , only 28 are transmitted/received 428c2ecf20Sopenharmony_ci over the MADI, but all 32 channels are available for the mixer, 438c2ecf20Sopenharmony_ci so channel count for the driver 448c2ecf20Sopenharmony_ci 458c2ecf20Sopenharmony_ci 468c2ecf20Sopenharmony_ci* Quad Speed -- 1..16 channels 478c2ecf20Sopenharmony_ci 488c2ecf20Sopenharmony_ci.. note:: 498c2ecf20Sopenharmony_ci Choosing the 56-channel mode for 508c2ecf20Sopenharmony_ci transmission/receive-mode , only 14 are transmitted/received 518c2ecf20Sopenharmony_ci over the MADI, but all 16 channels are available for the mixer, 528c2ecf20Sopenharmony_ci so channel count for the driver 538c2ecf20Sopenharmony_ci 548c2ecf20Sopenharmony_ci* Format -- signed 32 Bit Little Endian (SNDRV_PCM_FMTBIT_S32_LE) 558c2ecf20Sopenharmony_ci 568c2ecf20Sopenharmony_ci* Sample Rates -- 578c2ecf20Sopenharmony_ci 588c2ecf20Sopenharmony_ci Single Speed -- 32000, 44100, 48000 598c2ecf20Sopenharmony_ci 608c2ecf20Sopenharmony_ci Double Speed -- 64000, 88200, 96000 (untested) 618c2ecf20Sopenharmony_ci 628c2ecf20Sopenharmony_ci Quad Speed -- 128000, 176400, 192000 (untested) 638c2ecf20Sopenharmony_ci 648c2ecf20Sopenharmony_ci* access-mode -- MMAP (memory mapped), Not interleaved (PCM_NON-INTERLEAVED) 658c2ecf20Sopenharmony_ci 668c2ecf20Sopenharmony_ci* buffer-sizes -- 64,128,256,512,1024,2048,8192 Samples 678c2ecf20Sopenharmony_ci 688c2ecf20Sopenharmony_ci* fragments -- 2 698c2ecf20Sopenharmony_ci 708c2ecf20Sopenharmony_ci* Hardware-pointer -- 2 Modi 718c2ecf20Sopenharmony_ci 728c2ecf20Sopenharmony_ci 738c2ecf20Sopenharmony_ci The Card supports the readout of the actual Buffer-pointer, 748c2ecf20Sopenharmony_ci where DMA reads/writes. Since of the bulk mode of PCI it is only 758c2ecf20Sopenharmony_ci 64 Byte accurate. SO it is not really usable for the 768c2ecf20Sopenharmony_ci ALSA-mid-level functions (here the buffer-ID gives a better 778c2ecf20Sopenharmony_ci result), but if MMAP is used by the application. Therefore it 788c2ecf20Sopenharmony_ci can be configured at load-time with the parameter 798c2ecf20Sopenharmony_ci precise-pointer. 808c2ecf20Sopenharmony_ci 818c2ecf20Sopenharmony_ci 828c2ecf20Sopenharmony_ci.. hint:: 838c2ecf20Sopenharmony_ci (Hint: Experimenting I found that the pointer is maximum 64 to 848c2ecf20Sopenharmony_ci large never to small. So if you subtract 64 you always have a 858c2ecf20Sopenharmony_ci safe pointer for writing, which is used on this mode inside 868c2ecf20Sopenharmony_ci ALSA. In theory now you can get now a latency as low as 16 878c2ecf20Sopenharmony_ci Samples, which is a quarter of the interrupt possibilities.) 888c2ecf20Sopenharmony_ci 898c2ecf20Sopenharmony_ci * Precise Pointer -- off 908c2ecf20Sopenharmony_ci interrupt used for pointer-calculation 918c2ecf20Sopenharmony_ci 928c2ecf20Sopenharmony_ci * Precise Pointer -- on 938c2ecf20Sopenharmony_ci hardware pointer used. 948c2ecf20Sopenharmony_ci 958c2ecf20Sopenharmony_ciController 968c2ecf20Sopenharmony_ci---------- 978c2ecf20Sopenharmony_ci 988c2ecf20Sopenharmony_ciSince DSP-MADI-Mixer has 8152 Fader, it does not make sense to 998c2ecf20Sopenharmony_ciuse the standard mixer-controls, since this would break most of 1008c2ecf20Sopenharmony_ci(especially graphic) ALSA-Mixer GUIs. So Mixer control has be 1018c2ecf20Sopenharmony_ciprovided by a 2-dimensional controller using the 1028c2ecf20Sopenharmony_cihwdep-interface. 1038c2ecf20Sopenharmony_ci 1048c2ecf20Sopenharmony_ciAlso all 128+256 Peak and RMS-Meter can be accessed via the 1058c2ecf20Sopenharmony_cihwdep-interface. Since it could be a performance problem always 1068c2ecf20Sopenharmony_cicopying and converting Peak and RMS-Levels even if you just need 1078c2ecf20Sopenharmony_cione, I decided to export the hardware structure, so that of 1088c2ecf20Sopenharmony_cineeded some driver-guru can implement a memory-mapping of mixer 1098c2ecf20Sopenharmony_cior peak-meters over ioctl, or also to do only copying and no 1108c2ecf20Sopenharmony_ciconversion. A test-application shows the usage of the controller. 1118c2ecf20Sopenharmony_ci 1128c2ecf20Sopenharmony_ci* Latency Controls --- not implemented !!! 1138c2ecf20Sopenharmony_ci 1148c2ecf20Sopenharmony_ci.. note:: 1158c2ecf20Sopenharmony_ci Note: Within the windows-driver the latency is accessible of a 1168c2ecf20Sopenharmony_ci control-panel, but buffer-sizes are controlled with ALSA from 1178c2ecf20Sopenharmony_ci hwparams-calls and should not be changed in run-state, I did not 1188c2ecf20Sopenharmony_ci implement it here. 1198c2ecf20Sopenharmony_ci 1208c2ecf20Sopenharmony_ci 1218c2ecf20Sopenharmony_ci* System Clock -- suspended !!!! 1228c2ecf20Sopenharmony_ci 1238c2ecf20Sopenharmony_ci * Name -- "System Clock Mode" 1248c2ecf20Sopenharmony_ci 1258c2ecf20Sopenharmony_ci * Access -- Read Write 1268c2ecf20Sopenharmony_ci 1278c2ecf20Sopenharmony_ci * Values -- "Master" "Slave" 1288c2ecf20Sopenharmony_ci 1298c2ecf20Sopenharmony_ci.. note:: 1308c2ecf20Sopenharmony_ci !!!! This is a hardware-function but is in conflict with the 1318c2ecf20Sopenharmony_ci Clock-source controller, which is a kind of ALSA-standard. I 1328c2ecf20Sopenharmony_ci makes sense to set the card to a special mode (master at some 1338c2ecf20Sopenharmony_ci frequency or slave), since even not using an Audio-application 1348c2ecf20Sopenharmony_ci a studio should have working synchronisations setup. So use 1358c2ecf20Sopenharmony_ci Clock-source-controller instead !!!! 1368c2ecf20Sopenharmony_ci 1378c2ecf20Sopenharmony_ci* Clock Source 1388c2ecf20Sopenharmony_ci 1398c2ecf20Sopenharmony_ci * Name -- "Sample Clock Source" 1408c2ecf20Sopenharmony_ci 1418c2ecf20Sopenharmony_ci * Access -- Read Write 1428c2ecf20Sopenharmony_ci 1438c2ecf20Sopenharmony_ci * Values -- "AutoSync", "Internal 32.0 kHz", "Internal 44.1 kHz", 1448c2ecf20Sopenharmony_ci "Internal 48.0 kHz", "Internal 64.0 kHz", "Internal 88.2 kHz", 1458c2ecf20Sopenharmony_ci "Internal 96.0 kHz" 1468c2ecf20Sopenharmony_ci 1478c2ecf20Sopenharmony_ci Choose between Master at a specific Frequency and so also the 1488c2ecf20Sopenharmony_ci Speed-mode or Slave (Autosync). Also see "Preferred Sync Ref" 1498c2ecf20Sopenharmony_ci 1508c2ecf20Sopenharmony_ci.. warning:: 1518c2ecf20Sopenharmony_ci !!!! This is no pure hardware function but was implemented by 1528c2ecf20Sopenharmony_ci ALSA by some ALSA-drivers before, so I use it also. !!! 1538c2ecf20Sopenharmony_ci 1548c2ecf20Sopenharmony_ci 1558c2ecf20Sopenharmony_ci* Preferred Sync Ref 1568c2ecf20Sopenharmony_ci 1578c2ecf20Sopenharmony_ci * Name -- "Preferred Sync Reference" 1588c2ecf20Sopenharmony_ci 1598c2ecf20Sopenharmony_ci * Access -- Read Write 1608c2ecf20Sopenharmony_ci 1618c2ecf20Sopenharmony_ci * Values -- "Word" "MADI" 1628c2ecf20Sopenharmony_ci 1638c2ecf20Sopenharmony_ci 1648c2ecf20Sopenharmony_ci Within the Auto-sync-Mode the preferred Sync Source can be 1658c2ecf20Sopenharmony_ci chosen. If it is not available another is used if possible. 1668c2ecf20Sopenharmony_ci 1678c2ecf20Sopenharmony_ci.. note:: 1688c2ecf20Sopenharmony_ci Note: Since MADI has a much higher bit-rate than word-clock, the 1698c2ecf20Sopenharmony_ci card should synchronise better in MADI Mode. But since the 1708c2ecf20Sopenharmony_ci RME-PLL is very good, there are almost no problems with 1718c2ecf20Sopenharmony_ci word-clock too. I never found a difference. 1728c2ecf20Sopenharmony_ci 1738c2ecf20Sopenharmony_ci 1748c2ecf20Sopenharmony_ci* TX 64 channel 1758c2ecf20Sopenharmony_ci 1768c2ecf20Sopenharmony_ci * Name -- "TX 64 channels mode" 1778c2ecf20Sopenharmony_ci 1788c2ecf20Sopenharmony_ci * Access -- Read Write 1798c2ecf20Sopenharmony_ci 1808c2ecf20Sopenharmony_ci * Values -- 0 1 1818c2ecf20Sopenharmony_ci 1828c2ecf20Sopenharmony_ci Using 64-channel-modus (1) or 56-channel-modus for 1838c2ecf20Sopenharmony_ci MADI-transmission (0). 1848c2ecf20Sopenharmony_ci 1858c2ecf20Sopenharmony_ci 1868c2ecf20Sopenharmony_ci.. note:: 1878c2ecf20Sopenharmony_ci Note: This control is for output only. Input-mode is detected 1888c2ecf20Sopenharmony_ci automatically from hardware sending MADI. 1898c2ecf20Sopenharmony_ci 1908c2ecf20Sopenharmony_ci 1918c2ecf20Sopenharmony_ci* Clear TMS 1928c2ecf20Sopenharmony_ci 1938c2ecf20Sopenharmony_ci * Name -- "Clear Track Marker" 1948c2ecf20Sopenharmony_ci 1958c2ecf20Sopenharmony_ci * Access -- Read Write 1968c2ecf20Sopenharmony_ci 1978c2ecf20Sopenharmony_ci * Values -- 0 1 1988c2ecf20Sopenharmony_ci 1998c2ecf20Sopenharmony_ci 2008c2ecf20Sopenharmony_ci Don't use to lower 5 Audio-bits on AES as additional Bits. 2018c2ecf20Sopenharmony_ci 2028c2ecf20Sopenharmony_ci 2038c2ecf20Sopenharmony_ci* Safe Mode oder Auto Input 2048c2ecf20Sopenharmony_ci 2058c2ecf20Sopenharmony_ci * Name -- "Safe Mode" 2068c2ecf20Sopenharmony_ci 2078c2ecf20Sopenharmony_ci * Access -- Read Write 2088c2ecf20Sopenharmony_ci 2098c2ecf20Sopenharmony_ci * Values -- 0 1 (default on) 2108c2ecf20Sopenharmony_ci 2118c2ecf20Sopenharmony_ci If on (1), then if either the optical or coaxial connection 2128c2ecf20Sopenharmony_ci has a failure, there is a takeover to the working one, with no 2138c2ecf20Sopenharmony_ci sample failure. Its only useful if you use the second as a 2148c2ecf20Sopenharmony_ci backup connection. 2158c2ecf20Sopenharmony_ci 2168c2ecf20Sopenharmony_ci* Input 2178c2ecf20Sopenharmony_ci 2188c2ecf20Sopenharmony_ci * Name -- "Input Select" 2198c2ecf20Sopenharmony_ci 2208c2ecf20Sopenharmony_ci * Access -- Read Write 2218c2ecf20Sopenharmony_ci 2228c2ecf20Sopenharmony_ci * Values -- optical coaxial 2238c2ecf20Sopenharmony_ci 2248c2ecf20Sopenharmony_ci 2258c2ecf20Sopenharmony_ci Choosing the Input, optical or coaxial. If Safe-mode is active, 2268c2ecf20Sopenharmony_ci this is the preferred Input. 2278c2ecf20Sopenharmony_ci 2288c2ecf20Sopenharmony_ciMixer 2298c2ecf20Sopenharmony_ci----- 2308c2ecf20Sopenharmony_ci 2318c2ecf20Sopenharmony_ci* Mixer 2328c2ecf20Sopenharmony_ci 2338c2ecf20Sopenharmony_ci * Name -- "Mixer" 2348c2ecf20Sopenharmony_ci 2358c2ecf20Sopenharmony_ci * Access -- Read Write 2368c2ecf20Sopenharmony_ci 2378c2ecf20Sopenharmony_ci * Values - <channel-number 0-127> <Value 0-65535> 2388c2ecf20Sopenharmony_ci 2398c2ecf20Sopenharmony_ci 2408c2ecf20Sopenharmony_ci Here as a first value the channel-index is taken to get/set the 2418c2ecf20Sopenharmony_ci corresponding mixer channel, where 0-63 are the input to output 2428c2ecf20Sopenharmony_ci fader and 64-127 the playback to outputs fader. Value 0 2438c2ecf20Sopenharmony_ci is channel muted 0 and 32768 an amplification of 1. 2448c2ecf20Sopenharmony_ci 2458c2ecf20Sopenharmony_ci* Chn 1-64 2468c2ecf20Sopenharmony_ci 2478c2ecf20Sopenharmony_ci fast mixer for the ALSA-mixer utils. The diagonal of the 2488c2ecf20Sopenharmony_ci mixer-matrix is implemented from playback to output. 2498c2ecf20Sopenharmony_ci 2508c2ecf20Sopenharmony_ci 2518c2ecf20Sopenharmony_ci* Line Out 2528c2ecf20Sopenharmony_ci 2538c2ecf20Sopenharmony_ci * Name -- "Line Out" 2548c2ecf20Sopenharmony_ci 2558c2ecf20Sopenharmony_ci * Access -- Read Write 2568c2ecf20Sopenharmony_ci 2578c2ecf20Sopenharmony_ci * Values -- 0 1 2588c2ecf20Sopenharmony_ci 2598c2ecf20Sopenharmony_ci Switching on and off the analog out, which has nothing to do 2608c2ecf20Sopenharmony_ci with mixing or routing. the analog outs reflects channel 63,64. 2618c2ecf20Sopenharmony_ci 2628c2ecf20Sopenharmony_ci 2638c2ecf20Sopenharmony_ciInformation (only read access) 2648c2ecf20Sopenharmony_ci------------------------------ 2658c2ecf20Sopenharmony_ci 2668c2ecf20Sopenharmony_ci* Sample Rate 2678c2ecf20Sopenharmony_ci 2688c2ecf20Sopenharmony_ci * Name -- "System Sample Rate" 2698c2ecf20Sopenharmony_ci 2708c2ecf20Sopenharmony_ci * Access -- Read-only 2718c2ecf20Sopenharmony_ci 2728c2ecf20Sopenharmony_ci getting the sample rate. 2738c2ecf20Sopenharmony_ci 2748c2ecf20Sopenharmony_ci 2758c2ecf20Sopenharmony_ci* External Rate measured 2768c2ecf20Sopenharmony_ci 2778c2ecf20Sopenharmony_ci * Name -- "External Rate" 2788c2ecf20Sopenharmony_ci 2798c2ecf20Sopenharmony_ci * Access -- Read only 2808c2ecf20Sopenharmony_ci 2818c2ecf20Sopenharmony_ci 2828c2ecf20Sopenharmony_ci Should be "Autosync Rate", but Name used is 2838c2ecf20Sopenharmony_ci ALSA-Scheme. External Sample frequency liked used on Autosync is 2848c2ecf20Sopenharmony_ci reported. 2858c2ecf20Sopenharmony_ci 2868c2ecf20Sopenharmony_ci 2878c2ecf20Sopenharmony_ci* MADI Sync Status 2888c2ecf20Sopenharmony_ci 2898c2ecf20Sopenharmony_ci * Name -- "MADI Sync Lock Status" 2908c2ecf20Sopenharmony_ci 2918c2ecf20Sopenharmony_ci * Access -- Read 2928c2ecf20Sopenharmony_ci 2938c2ecf20Sopenharmony_ci * Values -- 0,1,2 2948c2ecf20Sopenharmony_ci 2958c2ecf20Sopenharmony_ci MADI-Input is 0=Unlocked, 1=Locked, or 2=Synced. 2968c2ecf20Sopenharmony_ci 2978c2ecf20Sopenharmony_ci 2988c2ecf20Sopenharmony_ci* Word Clock Sync Status 2998c2ecf20Sopenharmony_ci 3008c2ecf20Sopenharmony_ci * Name -- "Word Clock Lock Status" 3018c2ecf20Sopenharmony_ci 3028c2ecf20Sopenharmony_ci * Access -- Read 3038c2ecf20Sopenharmony_ci 3048c2ecf20Sopenharmony_ci * Values -- 0,1,2 3058c2ecf20Sopenharmony_ci 3068c2ecf20Sopenharmony_ci Word Clock Input is 0=Unlocked, 1=Locked, or 2=Synced. 3078c2ecf20Sopenharmony_ci 3088c2ecf20Sopenharmony_ci* AutoSync 3098c2ecf20Sopenharmony_ci 3108c2ecf20Sopenharmony_ci * Name -- "AutoSync Reference" 3118c2ecf20Sopenharmony_ci 3128c2ecf20Sopenharmony_ci * Access -- Read 3138c2ecf20Sopenharmony_ci 3148c2ecf20Sopenharmony_ci * Values -- "WordClock", "MADI", "None" 3158c2ecf20Sopenharmony_ci 3168c2ecf20Sopenharmony_ci Sync-Reference is either "WordClock", "MADI" or none. 3178c2ecf20Sopenharmony_ci 3188c2ecf20Sopenharmony_ci* RX 64ch --- noch nicht implementiert 3198c2ecf20Sopenharmony_ci 3208c2ecf20Sopenharmony_ci MADI-Receiver is in 64 channel mode oder 56 channel mode. 3218c2ecf20Sopenharmony_ci 3228c2ecf20Sopenharmony_ci 3238c2ecf20Sopenharmony_ci* AB_inp --- not tested 3248c2ecf20Sopenharmony_ci 3258c2ecf20Sopenharmony_ci Used input for Auto-Input. 3268c2ecf20Sopenharmony_ci 3278c2ecf20Sopenharmony_ci 3288c2ecf20Sopenharmony_ci* actual Buffer Position --- not implemented 3298c2ecf20Sopenharmony_ci 3308c2ecf20Sopenharmony_ci !!! this is a ALSA internal function, so no control is used !!! 3318c2ecf20Sopenharmony_ci 3328c2ecf20Sopenharmony_ci 3338c2ecf20Sopenharmony_ci 3348c2ecf20Sopenharmony_ciCalling Parameter 3358c2ecf20Sopenharmony_ci================= 3368c2ecf20Sopenharmony_ci 3378c2ecf20Sopenharmony_ci* index int array (min = 1, max = 8) 3388c2ecf20Sopenharmony_ci 3398c2ecf20Sopenharmony_ci Index value for RME HDSPM interface. card-index within ALSA 3408c2ecf20Sopenharmony_ci 3418c2ecf20Sopenharmony_ci note: ALSA-standard 3428c2ecf20Sopenharmony_ci 3438c2ecf20Sopenharmony_ci* id string array (min = 1, max = 8) 3448c2ecf20Sopenharmony_ci 3458c2ecf20Sopenharmony_ci ID string for RME HDSPM interface. 3468c2ecf20Sopenharmony_ci 3478c2ecf20Sopenharmony_ci note: ALSA-standard 3488c2ecf20Sopenharmony_ci 3498c2ecf20Sopenharmony_ci* enable int array (min = 1, max = 8) 3508c2ecf20Sopenharmony_ci 3518c2ecf20Sopenharmony_ci Enable/disable specific HDSPM sound-cards. 3528c2ecf20Sopenharmony_ci 3538c2ecf20Sopenharmony_ci note: ALSA-standard 3548c2ecf20Sopenharmony_ci 3558c2ecf20Sopenharmony_ci* precise_ptr int array (min = 1, max = 8) 3568c2ecf20Sopenharmony_ci 3578c2ecf20Sopenharmony_ci Enable precise pointer, or disable. 3588c2ecf20Sopenharmony_ci 3598c2ecf20Sopenharmony_ci.. note:: 3608c2ecf20Sopenharmony_ci note: Use only when the application supports this (which is a special case). 3618c2ecf20Sopenharmony_ci 3628c2ecf20Sopenharmony_ci* line_outs_monitor int array (min = 1, max = 8) 3638c2ecf20Sopenharmony_ci 3648c2ecf20Sopenharmony_ci Send playback streams to analog outs by default. 3658c2ecf20Sopenharmony_ci 3668c2ecf20Sopenharmony_ci.. note:: 3678c2ecf20Sopenharmony_ci note: each playback channel is mixed to the same numbered output 3688c2ecf20Sopenharmony_ci channel (routed). This is against the ALSA-convention, where all 3698c2ecf20Sopenharmony_ci channels have to be muted on after loading the driver, but was 3708c2ecf20Sopenharmony_ci used before on other cards, so i historically use it again) 3718c2ecf20Sopenharmony_ci 3728c2ecf20Sopenharmony_ci 3738c2ecf20Sopenharmony_ci 3748c2ecf20Sopenharmony_ci* enable_monitor int array (min = 1, max = 8) 3758c2ecf20Sopenharmony_ci 3768c2ecf20Sopenharmony_ci Enable Analog Out on Channel 63/64 by default. 3778c2ecf20Sopenharmony_ci 3788c2ecf20Sopenharmony_ci.. note :: 3798c2ecf20Sopenharmony_ci note: here the analog output is enabled (but not routed). 380