/** @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_