tigerlake: enable alh and supply headers

This change adds ALH support for Tiger Lake platforms
and enables it by default.

Signed-off-by: Slawomir Blauciak <slawomir.blauciak@linux.intel.com>
This commit is contained in:
Slawomir Blauciak 2019-10-02 13:12:21 +02:00 committed by Tomasz Lauda
parent dec18e3f74
commit 85a333db74
4 changed files with 107 additions and 0 deletions

View File

@ -1,6 +1,7 @@
CONFIG_TIGERLAKE=y
CONFIG_CAVS_DMIC=y
CONFIG_CAVS_SSP=y
CONFIG_CAVS_ALH=y
CONFIG_CORE_COUNT=4
CONFIG_LP_MEMORY_BANKS=1
CONFIG_HP_MEMORY_BANKS=46

View File

@ -0,0 +1,92 @@
// SPDX-License-Identifier: BSD-3-Clause
//
// Copyright(c) 2019 Intel Corporation. All rights reserved.
//
// Author: Slawomir Blauciak <slawomir.blauciak@linux.intel.com>
#ifdef __SOF_DRIVERS_ALH__
#ifndef __PLATFORM_DRIVERS_ALH__
#define __PLATFORM_DRIVERS_ALH__
#include <stdint.h>
/**
* \brief ALH Handshakes for audio I/O
* Stream ID -> DMA Handshake map
* -1 identifies invalid handshakes/streams
*/
static const uint8_t alh_handshake_map[64] = {
-1, /* 0 - INVALID */
-1, /* 1 - INVALID */
-1, /* 2 - INVALID */
-1, /* 3 - INVALID */
-1, /* 4 - INVALID */
-1, /* 5 - INVALID */
-1, /* 6 - INVALID */
22, /* 7 - BIDIRECTIONAL */
23, /* 8 - BIDIRECTIONAL */
24, /* 9 - BIDIRECTIONAL */
25, /* 10 - BIDIRECTIONAL */
-1, /* 5 - INVALID */
-1, /* 6 - INVALID */
-1, /* 13 - INVALID */
-1, /* 14 - INVALID */
-1, /* 15 - INVALID */
-1, /* 16 - INVALID */
-1, /* 17 - INVALID */
-1, /* 18 - INVALID */
-1, /* 19 - INVALID */
-1, /* 20 - INVALID */
-1, /* 21 - INVALID */
-1, /* 22 - INVALID */
32, /* 23 - BIDIRECTIONAL */
33, /* 24 - BIDIRECTIONAL */
34, /* 25 - BIDIRECTIONAL */
35, /* 26 - BIDIRECTIONAL */
-1, /* 5 - INVALID */
-1, /* 6 - INVALID */
-1, /* 29 - INVALID */
-1, /* 30 - INVALID */
-1, /* 31 - INVALID */
-1, /* 32 - INVALID */
-1, /* 33 - INVALID */
-1, /* 34 - INVALID */
-1, /* 35 - INVALID */
-1, /* 36 - INVALID */
-1, /* 37 - INVALID */
-1, /* 38 - INVALID */
42, /* 39 - BIDIRECTIONAL */
43, /* 40 - BIDIRECTIONAL */
44, /* 41 - BIDIRECTIONAL */
45, /* 42 - BIDIRECTIONAL */
-1, /* 5 - INVALID */
-1, /* 6 - INVALID */
-1, /* 45 - INVALID */
-1, /* 46 - INVALID */
-1, /* 47 - INVALID */
-1, /* 48 - INVALID */
-1, /* 49 - INVALID */
-1, /* 50 - INVALID */
-1, /* 51 - INVALID */
-1, /* 52 - INVALID */
-1, /* 53 - INVALID */
-1, /* 54 - INVALID */
52, /* 55 - BIDIRECTIONAL */
53, /* 56 - BIDIRECTIONAL */
54, /* 57 - BIDIRECTIONAL */
55, /* 58 - BIDIRECTIONAL */
-1, /* 5 - INVALID */
-1, /* 6 - INVALID */
-1, /* 61 - INVALID */
-1, /* 62 - INVALID */
-1, /* 63 - INVALID */
};
#endif /* __PLATFORM_DRIVERS_ALH__ */
#else
#error "This file shouldn't be included from outside of sof/drivers/alh.h"
#endif

View File

@ -34,6 +34,14 @@
/** \brief Number of HD/A Link Inputs */
#define DAI_NUM_HDA_IN 7
/* ALH */
/** \brief Number of ALH bi-directional links */
#define DAI_NUM_ALH_BI_DIR_LINKS 16
/** \brief Number of contiguous ALH bi-dir links */
#define DAI_NUM_ALH_BI_DIR_LINKS_GROUP 4
int dai_init(void);
#endif /* __PLATFORM_LIB_DAI_H__ */

View File

@ -101,6 +101,12 @@
#define SSP_BASE(x) (0x00077000 + x * SSP_SIZE)
#define SSP_SIZE 0x0000200
/* ALH */
#define ALH_BASE 0x000071000
#define ALH_TXDA_OFFSET 0x000000400
#define ALH_RXDA_OFFSET 0x000000500
#define ALH_STREAM_OFFSET 0x000000004
/* low power DMACs */
#define LP_GP_DMA_SIZE 0x00001000
#define LP_GP_DMA_BASE(x) (0x0007C000 + x * LP_GP_DMA_SIZE)