| /* |
| * Copyright (C) 2018 Synaptics Incorporated. All rights reserved. |
| * |
| * This program is free software; you can redistribute it and/or modify |
| * it under the terms of the GNU General Public License version 2 as |
| * published by the Free Software Foundation. |
| * |
| * INFORMATION CONTAINED IN THIS DOCUMENT IS PROVIDED "AS-IS," AND |
| * SYNAPTICS EXPRESSLY DISCLAIMS ALL EXPRESS AND IMPLIED WARRANTIES, |
| * INCLUDING ANY IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR |
| * A PARTICULAR PURPOSE, AND ANY WARRANTIES OF NON-INFRINGEMENT OF ANY |
| * INTELLECTUAL PROPERTY RIGHTS. IN NO EVENT SHALL SYNAPTICS BE LIABLE |
| * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, PUNITIVE, OR |
| * CONSEQUENTIAL DAMAGES ARISING OUT OF OR IN CONNECTION WITH THE USE |
| * OF THE INFORMATION CONTAINED IN THIS DOCUMENT, HOWEVER CAUSED AND |
| * BASED ON ANY THEORY OF LIABILITY, WHETHER IN AN ACTION OF CONTRACT, |
| * NEGLIGENCE OR OTHER TORTIOUS ACTION, AND EVEN IF SYNAPTICS WAS |
| * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. IF A TRIBUNAL OF |
| * COMPETENT JURISDICTION DOES NOT PERMIT THE DISCLAIMER OF DIRECT |
| * DAMAGES OR ANY OTHER DAMAGES, SYNAPTICS' TOTAL CUMULATIVE LIABILITY |
| * TO ANY PARTY SHALL NOT EXCEED ONE HUNDRED U.S. DOLLARS. |
| */ |
| |
| #ifndef __API_AVIO_DHUB_H__ |
| #define __API_AVIO_DHUB_H__ |
| |
| #include "dHub.h" |
| #include "avioDhub.h" |
| #include "api_dhub.h" |
| #include "avio_memmap.h" |
| |
| #define VPP_DHUB_BASE (MEMMAP_AVIO_REG_BASE + AVIO_MEMMAP_VPP128B_DHUB_REG_BASE + RA_vpp128bDhub_dHub0) |
| #define VPP_HBO_SRAM_BASE (MEMMAP_AVIO_REG_BASE + AVIO_MEMMAP_VPP128B_DHUB_REG_BASE + RA_vpp128bDhub_tcm0) |
| #define VPP_NUM_OF_CHANNELS (avioDhubChMap_vpp128b_1DSCL_W1+1) |
| #define AG_DHUB_BASE (MEMMAP_AVIO_REG_BASE + AVIO_MEMMAP_AIO64B_DHUB_REG_BASE + RA_aio64bDhub_dHub0) |
| #define AG_HBO_SRAM_BASE (MEMMAP_AVIO_REG_BASE + AVIO_MEMMAP_AIO64B_DHUB_REG_BASE + RA_aio64bDhub_tcm0) |
| #define AG_NUM_OF_CHANNELS (avioDhubChMap_aio64b_SPDIF_W+1) |
| |
| #define VPP_DHUB_BANK0_START_ADDR avioDhubTcmMap_vpp128bDhub_BANK0_START_ADDR |
| #define VPP_DHUB_BANK1_START_ADDR avioDhubTcmMap_vpp128bDhub_BANK1_START_ADDR |
| #define VPP_DHUB_BANK2_START_ADDR avioDhubTcmMap_vpp128bDhub_BANK2_START_ADDR |
| #define VPP_DHUB_BANK3_START_ADDR avioDhubTcmMap_vpp128bDhub_BANK3_START_ADDR |
| #define AG_DHUB_BANK0_START_ADDR avioDhubTcmMap_aio64bDhub_BANK0_START_ADDR |
| |
| typedef UNSG32 T64b [2]; |
| |
| typedef enum { |
| DHUB_TYPE_64BIT = 0, |
| DHUB_TYPE_128BIT |
| } DHUB_TYPE; |
| |
| typedef struct DHUB_channel_config { |
| INT32 chanId; |
| UINT32 chanCmdBase; |
| UINT32 chanDataBase; |
| INT32 chanCmdSize; |
| INT32 chanDataSize; |
| INT32 chanMtuSize; |
| INT32 chanQos; |
| INT32 chanSelfLoop; |
| INT32 chanEnable; |
| } DHUB_channel_config; |
| |
| extern HDL_dhub2d AG_dhubHandle; |
| extern HDL_dhub2d VPP_dhubHandle; |
| extern DHUB_channel_config AG_config[]; |
| extern DHUB_channel_config VPP_config[]; |
| /****************************************************************************** |
| * Function: DhubInitialization |
| * Description: Initialize DHUB . |
| * Parameter : cpuId ------------- cpu ID |
| * dHubBaseAddr ------------- dHub Base address. |
| * hboSramAddr ----- Sram Address for HBO. |
| * pdhubHandle ----- pointer to 2D dhubHandle |
| * dhub_config ----- configuration of AG |
| * numOfChans ----- number of channels |
| * Return: void |
| ******************************************************************************/ |
| |
| void DhubInitialization(SIGN32 cpuId, UNSG32 dHubBaseAddr, UNSG32 hboSramAddr, |
| HDL_dhub2d *pdhubHandle, DHUB_channel_config *dhub_config, |
| SIGN32 numOfChans, DHUB_TYPE dHubType); |
| void DhubChannelClear(void *hdl, SIGN32 id, T64b cfgQ[]); |
| |
| int getDhubChannelInfo(HDL_dhub2d *pdhubHandle, SIGN32 IChannel, |
| T32dHubChannel_CFG *cfg); |
| |
| #endif |
| |