79 lines · c
1/* SPDX-License-Identifier: GPL-2.0-only */2/*3 * tegra210_sfc.h - Definitions for Tegra210 SFC driver4 *5 * Copyright (c) 2021-2023 NVIDIA CORPORATION. All rights reserved.6 *7 */8 9#ifndef __TEGRA210_SFC_H__10#define __TEGRA210_SFC_H__11 12/*13 * SFC_RX registers are with respect to XBAR.14 * The data comes from XBAR to SFC.15 */16#define TEGRA210_SFC_RX_STATUS 0x0c17#define TEGRA210_SFC_RX_INT_STATUS 0x1018#define TEGRA210_SFC_RX_INT_MASK 0x1419#define TEGRA210_SFC_RX_INT_SET 0x1820#define TEGRA210_SFC_RX_INT_CLEAR 0x1c21#define TEGRA210_SFC_RX_CIF_CTRL 0x2022#define TEGRA210_SFC_RX_FREQ 0x2423 24/*25 * SFC_TX registers are with respect to XBAR.26 * The data goes out of SFC.27 */28#define TEGRA210_SFC_TX_STATUS 0x4c29#define TEGRA210_SFC_TX_INT_STATUS 0x5030#define TEGRA210_SFC_TX_INT_MASK 0x5431#define TEGRA210_SFC_TX_INT_SET 0x5832#define TEGRA210_SFC_TX_INT_CLEAR 0x5c33#define TEGRA210_SFC_TX_CIF_CTRL 0x6034#define TEGRA210_SFC_TX_FREQ 0x6435 36/* Register offsets from TEGRA210_SFC*_BASE */37#define TEGRA210_SFC_ENABLE 0x8038#define TEGRA210_SFC_SOFT_RESET 0x8439#define TEGRA210_SFC_CG 0x8840#define TEGRA210_SFC_STATUS 0x8c41#define TEGRA210_SFC_INT_STATUS 0x9042#define TEGRA210_SFC_COEF_RAM 0xbc43#define TEGRA210_SFC_CFG_RAM_CTRL 0xc044#define TEGRA210_SFC_CFG_RAM_DATA 0xc445 46/* Fields in TEGRA210_SFC_ENABLE */47#define TEGRA210_SFC_EN_SHIFT 048#define TEGRA210_SFC_EN (1 << TEGRA210_SFC_EN_SHIFT)49 50#define TEGRA210_SFC_NUM_RATES 1351 52/* Fields in TEGRA210_SFC_COEF_RAM */53#define TEGRA210_SFC_COEF_RAM_EN BIT(0)54 55#define TEGRA210_SFC_SOFT_RESET_EN BIT(0)56 57/* Coefficients */58#define TEGRA210_SFC_COEF_RAM_DEPTH 6459#define TEGRA210_SFC_RAM_CTRL_RW_WRITE (1 << 14)60#define TEGRA210_SFC_RAM_CTRL_ADDR_INIT_EN (1 << 13)61#define TEGRA210_SFC_RAM_CTRL_SEQ_ACCESS_EN (1 << 12)62 63 64enum tegra210_sfc_path {65 SFC_RX_PATH,66 SFC_TX_PATH,67 SFC_PATHS,68};69 70struct tegra210_sfc {71 unsigned int mono_to_stereo[SFC_PATHS];72 unsigned int stereo_to_mono[SFC_PATHS];73 unsigned int srate_out;74 unsigned int srate_in;75 struct regmap *regmap;76};77 78#endif79