/* SPDX-License-Identifier: GPL-2.0-only */
/*
 * tegra210_adx.h - Definitions for Tegra210 ADX driver
 *
 * Copyright (c) 2021, NVIDIA CORPORATION.  All rights reserved.
 *
 */

#ifndef __TEGRA210_ADX_H__
#define __TEGRA210_ADX_H__

/* Register offsets from TEGRA210_ADX*_BASE */
#define TEGRA210_ADX_RX_STATUS		0x0c
#define TEGRA210_ADX_RX_INT_STATUS	0x10
#define TEGRA210_ADX_RX_INT_MASK	0x14
#define TEGRA210_ADX_RX_INT_SET		0x18
#define TEGRA210_ADX_RX_INT_CLEAR	0x1c
#define TEGRA210_ADX_RX_CIF_CTRL	0x20
#define TEGRA210_ADX_TX_STATUS		0x4c
#define TEGRA210_ADX_TX_INT_STATUS	0x50
#define TEGRA210_ADX_TX_INT_MASK	0x54
#define TEGRA210_ADX_TX_INT_SET		0x58
#define TEGRA210_ADX_TX_INT_CLEAR	0x5c
#define TEGRA210_ADX_TX1_CIF_CTRL	0x60
#define TEGRA210_ADX_TX2_CIF_CTRL	0x64
#define TEGRA210_ADX_TX3_CIF_CTRL	0x68
#define TEGRA210_ADX_TX4_CIF_CTRL	0x6c
#define TEGRA210_ADX_ENABLE		0x80
#define TEGRA210_ADX_SOFT_RESET		0x84
#define TEGRA210_ADX_CG			0x88
#define TEGRA210_ADX_STATUS		0x8c
#define TEGRA210_ADX_INT_STATUS		0x90
#define TEGRA210_ADX_CTRL		0xa4
#define TEGRA210_ADX_IN_BYTE_EN0	0xa8
#define TEGRA210_ADX_IN_BYTE_EN1	0xac
#define TEGRA210_ADX_CFG_RAM_CTRL	0xb8
#define TEGRA210_ADX_CFG_RAM_DATA	0xbc

/* Fields in TEGRA210_ADX_ENABLE */
#define TEGRA210_ADX_ENABLE_SHIFT			0

/* Fields in TEGRA210_ADX_CFG_RAM_CTRL */
#define TEGRA210_ADX_CFG_RAM_CTRL_RAM_ADDR_SHIFT	0

#define TEGRA210_ADX_CFG_RAM_CTRL_RW_SHIFT		14
#define TEGRA210_ADX_CFG_RAM_CTRL_RW_WRITE		(1 << TEGRA210_ADX_CFG_RAM_CTRL_RW_SHIFT)

#define TEGRA210_ADX_CFG_RAM_CTRL_ADDR_INIT_EN_SHIFT	13
#define TEGRA210_ADX_CFG_RAM_CTRL_ADDR_INIT_EN		(1 << TEGRA210_ADX_CFG_RAM_CTRL_ADDR_INIT_EN_SHIFT)

#define TEGRA210_ADX_CFG_RAM_CTRL_SEQ_ACCESS_EN_SHIFT	12
#define TEGRA210_ADX_CFG_RAM_CTRL_SEQ_ACCESS_EN		(1 << TEGRA210_ADX_CFG_RAM_CTRL_SEQ_ACCESS_EN_SHIFT)

/* Fields in TEGRA210_ADX_SOFT_RESET */
#define TEGRA210_ADX_SOFT_RESET_SOFT_RESET_SHIFT	0
#define TEGRA210_ADX_SOFT_RESET_SOFT_RESET_MASK		(1 << TEGRA210_ADX_SOFT_RESET_SOFT_RESET_SHIFT)
#define TEGRA210_ADX_SOFT_RESET_SOFT_EN			(1 << TEGRA210_ADX_SOFT_RESET_SOFT_RESET_SHIFT)
#define TEGRA210_ADX_SOFT_RESET_SOFT_DEFAULT		(0 << TEGRA210_ADX_SOFT_RESET_SOFT_RESET_SHIFT)

#define TEGRA210_ADX_AUDIOCIF_CH_STRIDE		4
#define TEGRA210_ADX_RAM_DEPTH			16
#define TEGRA210_ADX_MAP_STREAM_NUMBER_SHIFT	6
#define TEGRA210_ADX_MAP_WORD_NUMBER_SHIFT	2
#define TEGRA210_ADX_MAP_BYTE_NUMBER_SHIFT	0

struct tegra210_adx {
	struct regmap *regmap;
	unsigned int map[TEGRA210_ADX_RAM_DEPTH];
	unsigned int byte_mask[2];
};

#endif
