From a8f4e6f48590bde58ad8a90da8bc0c29254032a5 Mon Sep 17 00:00:00 2001 From: a0220410 Date: Thu, 15 Dec 2016 08:21:58 +0800 Subject: [PATCH] add channel --- dts.readme | 1 + tas2557-core.c | 14 ++++++++++++++ tas2557.h | 6 +++++- 3 files changed, 20 insertions(+), 1 deletion(-) diff --git a/dts.readme b/dts.readme index 2a9a377..b936a99 100755 --- a/dts.readme +++ b/dts.readme @@ -4,6 +4,7 @@ example for dts: compatible = "ti,tas2557"; reg = <0x4c>; ti,cdc-reset-gpio = <&msmgpio 73 0>; + ti,channel = <0>; /* 0, left channel; 1, right channel */ ti,load = <0>; /* 0, 8Ohm; 1, 6Ohm; 2, 4Ohm */ status = "ok"; }; \ No newline at end of file diff --git a/tas2557-core.c b/tas2557-core.c index e66ca69..a680b14 100755 --- a/tas2557-core.c +++ b/tas2557-core.c @@ -276,6 +276,11 @@ int tas2557_load_platdata(struct tas2557_priv *pTAS2557) int ret = 0; ret = tas2557_setLoad(pTAS2557, pTAS2557->mnLoad); + if(pTAS2557->mnDevChl == LEFT_CHANNEL){ + pTAS2557->update_bits(pTAS2557, TAS2557_ASI_CTRL_REG, 0x06, 0x00); + }else if(pTAS2557->mnDevChl == LEFT_CHANNEL){ + pTAS2557->update_bits(pTAS2557, TAS2557_ASI_CTRL_REG, 0x06, 0x02); + } return ret; } @@ -1196,6 +1201,15 @@ int tas2557_parse_dt(struct device *dev, dev_dbg(pTAS2557->dev, "ti,load=%d", pTAS2557->mnLoad); } + rc = of_property_read_u32(np, "ti,channel", &pTAS2557->mnDevChl); + if (rc) { + dev_err(pTAS2557->dev, "Looking up %s property in node %s failed %d\n", + "ti,channel", np->full_name, rc); + ret = -1; + }else{ + dev_dbg(pTAS2557->dev, "ti,channel=%d", pTAS2557->mnDevChl); + } + pTAS2557->mnResetGPIO = of_get_named_gpio(np, "ti,cdc-reset-gpio", 0); if (pTAS2557->mnResetGPIO < 0) { diff --git a/tas2557.h b/tas2557.h index ebd119a..efd928b 100755 --- a/tas2557.h +++ b/tas2557.h @@ -70,7 +70,7 @@ #define TAS2557_CRC_CHECKSUM_REG TAS2557_REG(0, 0, 32) #define TAS2557_CRC_RESET_REG TAS2557_REG(0, 0, 33) #define TAS2557_DSP_MODE_SELECT_REG TAS2557_REG(0, 0, 34) -#define TAS2557_NONAME42_REG TAS2557_REG(0, 0, 42) +#define TAS2557_ASI_CTRL_REG TAS2557_REG(0, 0, 42) #define TAS2557_CLK_ERR_CTRL TAS2557_REG(0, 0, 44) #define TAS2557_DBOOST_CFG_REG TAS2557_REG(0, 0, 52) #define TAS2557_POWER_UP_FLAG_REG TAS2557_REG(0, 0, 100) @@ -274,6 +274,9 @@ #define TAS2557_FW_NAME "tas2557_uCDSP.bin" +#define LEFT_CHANNEL 0 +#define RIGHT_CHANNEL 1 + typedef struct { unsigned int mnType; unsigned int mnCommands; @@ -361,6 +364,7 @@ struct tas2557_priv { unsigned int mnCurrentCalibration; int mnCurrentBook; int mnCurrentPage; + int mnDevChl; bool mbTILoadActive; bool mbPowerUp; bool mbLoadConfigurationPostPowerUp; -- 2.39.2