Back to home page

OSCL-LXR

 
 

    


0001 /* SPDX-License-Identifier: GPL-2.0-only */
0002 /*
0003  * tas2764.h - ALSA SoC Texas Instruments TAS2764 Mono Audio Amplifier
0004  *
0005  * Copyright (C) 2020 Texas Instruments Incorporated -  https://www.ti.com
0006  *
0007  * Author: Dan Murphy <dmurphy@ti.com>
0008  */
0009 
0010 #ifndef __TAS2764__
0011 #define __TAS2764__
0012 
0013 /* Book Control Register */
0014 #define TAS2764_BOOKCTL_PAGE    0
0015 #define TAS2764_BOOKCTL_REG 127
0016 #define TAS2764_REG(page, reg)  ((page * 128) + reg)
0017 
0018 /* Page */
0019 #define TAS2764_PAGE        TAS2764_REG(0X0, 0x00)
0020 #define TAS2764_PAGE_PAGE_MASK  255
0021 
0022 /* Software Reset */
0023 #define TAS2764_SW_RST  TAS2764_REG(0X0, 0x01)
0024 #define TAS2764_RST BIT(0)
0025 
0026 /* Power Control */
0027 #define TAS2764_PWR_CTRL        TAS2764_REG(0X0, 0x02)
0028 #define TAS2764_PWR_CTRL_MASK       GENMASK(1, 0)
0029 #define TAS2764_PWR_CTRL_ACTIVE     0x0
0030 #define TAS2764_PWR_CTRL_MUTE       BIT(0)
0031 #define TAS2764_PWR_CTRL_SHUTDOWN   BIT(1)
0032 
0033 #define TAS2764_VSENSE_POWER_EN     3
0034 #define TAS2764_ISENSE_POWER_EN     4
0035 
0036 /* Digital Volume Control */
0037 #define TAS2764_DVC TAS2764_REG(0X0, 0x1a)
0038 #define TAS2764_DVC_MAX 0xc9
0039 
0040 #define TAS2764_CHNL_0  TAS2764_REG(0X0, 0x03)
0041 
0042 /* TDM Configuration Reg0 */
0043 #define TAS2764_TDM_CFG0        TAS2764_REG(0X0, 0x08)
0044 #define TAS2764_TDM_CFG0_SMP_MASK   BIT(5)
0045 #define TAS2764_TDM_CFG0_SMP_48KHZ  0x0
0046 #define TAS2764_TDM_CFG0_SMP_44_1KHZ    BIT(5)
0047 #define TAS2764_TDM_CFG0_MASK       GENMASK(3, 1)
0048 #define TAS2764_TDM_CFG0_44_1_48KHZ BIT(3)
0049 #define TAS2764_TDM_CFG0_88_2_96KHZ (BIT(3) | BIT(1))
0050 #define TAS2764_TDM_CFG0_FRAME_START    BIT(0)
0051 
0052 /* TDM Configuration Reg1 */
0053 #define TAS2764_TDM_CFG1        TAS2764_REG(0X0, 0x09)
0054 #define TAS2764_TDM_CFG1_MASK       GENMASK(5, 1)
0055 #define TAS2764_TDM_CFG1_51_SHIFT   1
0056 #define TAS2764_TDM_CFG1_RX_MASK    BIT(0)
0057 #define TAS2764_TDM_CFG1_RX_RISING  0x0
0058 #define TAS2764_TDM_CFG1_RX_FALLING BIT(0)
0059 
0060 /* TDM Configuration Reg2 */
0061 #define TAS2764_TDM_CFG2        TAS2764_REG(0X0, 0x0a)
0062 #define TAS2764_TDM_CFG2_RXW_MASK   GENMASK(3, 2)
0063 #define TAS2764_TDM_CFG2_RXW_16BITS 0x0
0064 #define TAS2764_TDM_CFG2_RXW_24BITS BIT(3)
0065 #define TAS2764_TDM_CFG2_RXW_32BITS (BIT(3) | BIT(2))
0066 #define TAS2764_TDM_CFG2_RXS_MASK   GENMASK(1, 0)
0067 #define TAS2764_TDM_CFG2_RXS_16BITS 0x0
0068 #define TAS2764_TDM_CFG2_RXS_24BITS BIT(0)
0069 #define TAS2764_TDM_CFG2_RXS_32BITS BIT(1)
0070 #define TAS2764_TDM_CFG2_SCFG_SHIFT 4
0071 
0072 /* TDM Configuration Reg3 */
0073 #define TAS2764_TDM_CFG3        TAS2764_REG(0X0, 0x0c)
0074 #define TAS2764_TDM_CFG3_RXS_MASK   GENMASK(7, 4)
0075 #define TAS2764_TDM_CFG3_RXS_SHIFT  0x4
0076 #define TAS2764_TDM_CFG3_MASK       GENMASK(3, 0)
0077 
0078 /* TDM Configuration Reg5 */
0079 #define TAS2764_TDM_CFG5        TAS2764_REG(0X0, 0x0e)
0080 #define TAS2764_TDM_CFG5_VSNS_MASK  BIT(6)
0081 #define TAS2764_TDM_CFG5_VSNS_ENABLE    BIT(6)
0082 #define TAS2764_TDM_CFG5_50_MASK    GENMASK(5, 0)
0083 
0084 /* TDM Configuration Reg6 */
0085 #define TAS2764_TDM_CFG6        TAS2764_REG(0X0, 0x0f)
0086 #define TAS2764_TDM_CFG6_ISNS_MASK  BIT(6)
0087 #define TAS2764_TDM_CFG6_ISNS_ENABLE    BIT(6)
0088 #define TAS2764_TDM_CFG6_50_MASK    GENMASK(5, 0)
0089 
0090 #endif /* __TAS2764__ */