/** @file Touch Host Controller policy. Copyright (c) 2021, Intel Corporation. All rights reserved.
SPDX-License-Identifier: BSD-2-Clause-Patent **/ #ifndef _THC_CONFIG_H_ #define _THC_CONFIG_H_ #define THC_CONFIG_REVISION 1 extern EFI_GUID gThcConfigGuid; #pragma pack (push,1) /** Available Port Assignments **/ typedef enum { ThcAssignmentNone, ///< None of the avaialbe controllers assigned ThcAssignmentThc0, ///< Port assigned to THC0 ThcAssignmentThc1 ///< Port assigned to THC1 } THC_PORT_ASSIGNMENT; /** Port Configuration structure required for each Port that THC might use. **/ typedef struct { UINT32 Assignment; ///< Sets THCx assignment see THC_PORT_ASSIGNMENT UINT32 InterruptPinMuxing; ///< Each GPIO PORTx/SPIx INTB Pin has different muxing options refer to GPIO_*_MUXING_THC_SPIx_* } THC_PORT; /** THC_CONFIG block provides the configurations forTouch Host Controllers Assignment field in each THC port controlls the THC behavior. Available scenarios: 1: Single Port 0 used by THC0 - THC0 Enabled - Port0 assigned to THC0 - Port1 unassigned - THC1 will be automatically Disabled. 2: Both ports used by THC0 - THC0 Enabled - Port0 assigned to THC0 - Port1 assigned to THC0 - THC1 will be automatically Disabled. 3: Port 0 used by THC0 and Port 1 used by THC1 - THC0 Enabled - Port0 assigned to THC0 - THC1 Enabled - Port1 assigned to THC1. 4: Both Ports unassigned. Both THC Controllers will be disabled in that case. @note Invalid scenario that will cause ASSERT. 1. Same port Number assigned to THC0 or THC1. 2. Two Ports assigned to THC1. **/ typedef struct { CONFIG_BLOCK_HEADER Header; ///< Config Block Header THC_PORT ThcPort[2]; ///< Port Configuration } THC_CONFIG; #pragma pack (pop) #endif // _THC_CONFIG_H_