From 7868835794ac149f58aa9a58c73aa84751ccd781 Mon Sep 17 00:00:00 2001 From: "curry.zhang" Date: Fri, 6 May 2022 02:44:30 -0700 Subject: [PATCH] [Audio: PWMDAC] Adjust code style Signed-off-by: curry.zhang --- arch/riscv/boot/dts/starfive/jh7110.dtsi | 2 +- sound/soc/starfive/pwmdac.h | 54 ++++---- sound/soc/starfive/starfive_pwmdac.c | 221 ++++++++++++------------------- 3 files changed, 116 insertions(+), 161 deletions(-) diff --git a/arch/riscv/boot/dts/starfive/jh7110.dtsi b/arch/riscv/boot/dts/starfive/jh7110.dtsi index 7cddd1d..78bc34f 100755 --- a/arch/riscv/boot/dts/starfive/jh7110.dtsi +++ b/arch/riscv/boot/dts/starfive/jh7110.dtsi @@ -952,7 +952,7 @@ }; pwmdac: pwmdac@100b0000 { - compatible = "sf,pwmdac"; + compatible = "starfive,pwmdac"; reg = <0x0 0x100b0000 0x0 0x1000>; clocks = <&clkgen JH7110_APB0>, <&clkgen JH7110_PWMDAC_CLK_APB>, diff --git a/sound/soc/starfive/pwmdac.h b/sound/soc/starfive/pwmdac.h index 9e94cbd..8b93d7d 100755 --- a/sound/soc/starfive/pwmdac.h +++ b/sound/soc/starfive/pwmdac.h @@ -1,17 +1,8 @@ -/** - ****************************************************************************** - * @file pwmdac.h - * @author StarFive Technology - * @version V1.0 - * @date 05/05/2022 - * @brief - ****************************************************************************** - * @copy - * - * PWMDAC driver for the StarFive JH7110 SoC - * - * Copyright (C) 2022 StarFive Technology Co., Ltd. - */ +/* + * PWMDAC driver for the StarFive JH7110 SoC + * + * Copyright (C) 2022 StarFive Technology Co., Ltd. + */ #ifndef __STARFIVE_PWMDAC_LOCAL_H #define __STARFIVE_PWMDAC_LOCAL_H @@ -37,6 +28,15 @@ #define FIFO_UN_FULL 0 #define FIFO_FULL 1 +#define PWMDAC_CTRL_DATA_SHIFT 4 +#define PWMDAC_CTRL_DATA_MASK 0xF +#define PWMDAC_DATA_LEFT_SHIFT 15 +#define PWMDAC_DUTY_CYCLE_LOW 2 +#define PWMDAC_DUTY_CYCLE_HIGH 3 + + + + #define PWMDAC_MCLK 4096000 enum pwmdac_lr_change{ @@ -100,15 +100,15 @@ enum data_shift{ }; enum pwmdac_config_list{ - shift_8Bit_unsigned = 0, - shift_8Bit_unsigned_dataShift, - shift_10Bit_unsigned, - shift_10Bit_unsigned_dataShift, - - shift_8Bit_inverter, - shift_8Bit_inverter_dataShift, - shift_10Bit_inverter, - shift_10Bit_inverter_dataShift, + shift_8Bit_unsigned = 0, + shift_8Bit_unsigned_dataShift, + shift_10Bit_unsigned, + shift_10Bit_unsigned_dataShift, + + shift_8Bit_inverter, + shift_8Bit_inverter_dataShift, + shift_10Bit_inverter, + shift_10Bit_inverter_dataShift, }; struct sf_pwmdac_dev { @@ -130,7 +130,7 @@ struct sf_pwmdac_dev { struct clk *clk_pwmdac_apb; struct clk *clk_pwmdac_core; struct reset_control *rst_apb; - + struct device *dev; struct snd_dmaengine_dai_dma_data play_dma_data; struct snd_pcm_substream __rcu *tx_substream; @@ -141,9 +141,9 @@ struct sf_pwmdac_dev { struct task_struct *tx_thread; bool tx_thread_exit; - struct clk* audio_src; - struct clk* pwmdac_apb; - struct clk* pwmdac_mclk; + struct clk *audio_src; + struct clk *pwmdac_apb; + struct clk *pwmdac_mclk; }; diff --git a/sound/soc/starfive/starfive_pwmdac.c b/sound/soc/starfive/starfive_pwmdac.c index 3a7639e..dcc897a 100755 --- a/sound/soc/starfive/starfive_pwmdac.c +++ b/sound/soc/starfive/starfive_pwmdac.c @@ -1,17 +1,8 @@ -/** - ****************************************************************************** - * @file starfive_pwmdac.c - * @author StarFive Technology - * @version V1.0 - * @date 05/05/2022 - * @brief - ****************************************************************************** - * @copy - * - * PWMDAC driver for the StarFive JH7110 SoC - * - * Copyright (C) 2022 StarFive Technology Co., Ltd. - */ +/* + * PWMDAC driver for the StarFive JH7110 SoC + * + * Copyright (C) 2022 StarFive Technology Co., Ltd. + */ #include #include @@ -30,7 +21,7 @@ #include "pwmdac.h" struct ct_pwmdac { - char *name; + char *name; unsigned int vals; }; @@ -89,9 +80,9 @@ static int pwmdac_shift_bit_get(struct snd_kcontrol *kcontrol, if (dev->shift_bit == pwmdac_ct_shift_bit[0].vals) item = 0; - else + else item = 1; - + ucontrol->value.enumerated.item[0] = item; return 0; @@ -161,43 +152,6 @@ static int pwmdac_duty_cycle_put(struct snd_kcontrol *kcontrol, return 0; } -static int pwmdac_datan_info(struct snd_kcontrol *kcontrol, - struct snd_ctl_elem_info *uinfo) -{ - uinfo->type = SNDRV_CTL_ELEM_TYPE_INTEGER; - uinfo->count = 1; - uinfo->value.integer.min = 1; - uinfo->value.integer.max = PWMDAC_SAMPLE_CNT_511; - uinfo->value.integer.step = 1; - return 0; -} - -static int pwmdac_datan_get(struct snd_kcontrol *kcontrol, - struct snd_ctl_elem_value *ucontrol) -{ - struct snd_soc_component *component = snd_kcontrol_chip(kcontrol); - struct sf_pwmdac_dev *dev = snd_soc_component_get_drvdata(component); - - ucontrol->value.integer.value[0] = dev->datan; - - return 0; -} - -static int pwmdac_datan_put(struct snd_kcontrol *kcontrol, - struct snd_ctl_elem_value *ucontrol) -{ - struct snd_soc_component *component = snd_kcontrol_chip(kcontrol); - struct sf_pwmdac_dev *dev = snd_soc_component_get_drvdata(component); - int sel = ucontrol->value.integer.value[0]; - - if (sel > PWMDAC_SAMPLE_CNT_511) - return 0; - - dev->datan = sel; - - return 0; -} - static int pwmdac_data_mode_info(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo) { @@ -276,7 +230,7 @@ static int pwmdac_shift_put(struct snd_kcontrol *kcontrol, if (sel > items) return 0; - + dev->shift = pwmdac_ct_shift[sel].vals; return 0; } @@ -339,7 +293,7 @@ static void pwmdac_set_ctrl_enable(struct sf_pwmdac_dev *dev) { u32 date; date = pwmdc_read_reg(dev->pwmdac_base, PWMDAC_CTRL); - pwmdc_write_reg(dev->pwmdac_base, PWMDAC_CTRL, date | BIT(0) ); + pwmdc_write_reg(dev->pwmdac_base, PWMDAC_CTRL, date | BIT(0)); } /* @@ -349,7 +303,7 @@ static void pwmdac_set_ctrl_disable(struct sf_pwmdac_dev *dev) { u32 date; date = pwmdc_read_reg(dev->pwmdac_base, PWMDAC_CTRL); - pwmdc_write_reg(dev->pwmdac_base, PWMDAC_CTRL, date & ~ BIT(0)); + pwmdc_write_reg(dev->pwmdac_base, PWMDAC_CTRL, date & ~BIT(0)); } /* @@ -359,14 +313,14 @@ static void pwmdac_set_ctrl_disable(struct sf_pwmdac_dev *dev) static void pwmdac_set_ctrl_shift(struct sf_pwmdac_dev *dev, u8 data) { u32 value = 0; - - if (data == 8) { - value = (~((~value) | 0x02)); - pwmdc_write_reg(dev->pwmdac_base , PWMDAC_CTRL, value); + + if (data == PWMDAC_SHIFT_8) { + value = (~((~value) | SFC_PWMDAC_SHIFT)); + pwmdc_write_reg(dev->pwmdac_base, PWMDAC_CTRL, value); } - else if(data == 10){ - value |= 0x02; - pwmdc_write_reg(dev->pwmdac_base , PWMDAC_CTRL, value); + else if (data == PWMDAC_SHIFT_10) { + value |= SFC_PWMDAC_SHIFT; + pwmdc_write_reg(dev->pwmdac_base, PWMDAC_CTRL, value); } } @@ -374,23 +328,23 @@ static void pwmdac_set_ctrl_shift(struct sf_pwmdac_dev *dev, u8 data) * 00:left * 01:right * 10:center -*/ + */ static void pwmdac_set_ctrl_dutyCycle(struct sf_pwmdac_dev *dev, u8 data) { u32 value = 0; - - value = pwmdc_read_reg(dev->pwmdac_base , PWMDAC_CTRL); - if (data == 0) { //left - value = (~((~value) | (0x03<<2))); - pwmdc_write_reg(dev->pwmdac_base , PWMDAC_CTRL, value); + + value = pwmdc_read_reg(dev->pwmdac_base, PWMDAC_CTRL); + if (data == PWMDAC_CYCLE_LEFT) { + value = (~((~value) | (0x03<pwmdac_base, PWMDAC_CTRL, value); } - else if (data == 1) { //right - value = (~((~value) | (0x01<<3))) | (0x01<<2); - pwmdc_write_reg(dev->pwmdac_base , PWMDAC_CTRL, value); + else if (data == PWMDAC_CYCLE_RIGHT) { + value = (~((~value) | (0x01<pwmdac_base, PWMDAC_CTRL, value); } - else if (data == 2) { //center - value = (~((~value) | (0x01<<2))) | (0x01<<3); - pwmdc_write_reg(dev->pwmdac_base , PWMDAC_CTRL, value); + else if (data == PWMDAC_CYCLE_CENTER) { + value = (~((~value) | (0x01<pwmdac_base, PWMDAC_CTRL, value); } } @@ -398,9 +352,10 @@ static void pwmdac_set_ctrl_dutyCycle(struct sf_pwmdac_dev *dev, u8 data) static void pwmdac_set_ctrl_N(struct sf_pwmdac_dev *dev, u16 data) { u32 value = 0; - - value = pwmdc_read_reg(dev->pwmdac_base , PWMDAC_CTRL); - pwmdc_write_reg(dev->pwmdac_base , PWMDAC_CTRL, (value & 0xF) | ((data - 1) << 4)); + + value = pwmdc_read_reg(dev->pwmdac_base, PWMDAC_CTRL); + pwmdc_write_reg(dev->pwmdac_base, PWMDAC_CTRL, + (value & PWMDAC_CTRL_DATA_MASK) | ((data - 1) << PWMDAC_CTRL_DATA_SHIFT)); } @@ -408,14 +363,14 @@ static void pwmdac_LR_data_change(struct sf_pwmdac_dev *dev, u8 data) { u32 value = 0; - value = pwmdc_read_reg(dev->pwmdac_base , PWMDAC_CTRL); + value = pwmdc_read_reg(dev->pwmdac_base, PWMDAC_CTRL); switch (data) { case NO_CHANGE: value &= (~SFC_PWMDAC_LEFT_RIGHT_DATA_CHANGE); break; case CHANGE: value |= SFC_PWMDAC_LEFT_RIGHT_DATA_CHANGE; - break; + break; } pwmdc_write_reg(dev->pwmdac_base, PWMDAC_CTRL, value); } @@ -424,38 +379,38 @@ static void pwmdac_LR_data_change(struct sf_pwmdac_dev *dev, u8 data) static void pwmdac_data_mode(struct sf_pwmdac_dev *dev, u8 data) { u32 value = 0; - - value = pwmdc_read_reg(dev->pwmdac_base , PWMDAC_CTRL); + + value = pwmdc_read_reg(dev->pwmdac_base, PWMDAC_CTRL); if (data == UNSINGED_DATA) { value &= (~SFC_PWMDAC_DATA_MODE); } else if (data == INVERTER_DATA_MSB) { value |= SFC_PWMDAC_DATA_MODE; } - pwmdc_write_reg(dev->pwmdac_base,PWMDAC_CTRL, value); + pwmdc_write_reg(dev->pwmdac_base, PWMDAC_CTRL, value); } static int pwmdac_data_shift(struct sf_pwmdac_dev *dev,u8 data) -{ +{ u32 value = 0; if ((data < PWMDAC_DATA_LEFT_SHIFT_BIT_0) || (data > PWMDAC_DATA_LEFT_SHIFT_BIT_7)) { return -1; } - - value = pwmdc_read_reg(dev->pwmdac_base , PWMDAC_CTRL); - value &= ( ~ ( PWMDAC_DATA_LEFT_SHIFT_BIT_ALL << 15 ) ); - value |= (data<<15); - pwmdc_write_reg(dev->pwmdac_base , PWMDAC_CTRL, value); - return 0; + + value = pwmdc_read_reg(dev->pwmdac_base, PWMDAC_CTRL); + value &= ( ~(PWMDAC_DATA_LEFT_SHIFT_BIT_ALL << PWMDAC_DATA_LEFT_SHIFT)); + value |= (data<pwmdac_base, PWMDAC_CTRL, value); + return 0; } static int get_pwmdac_fifo_state(struct sf_pwmdac_dev *dev) { u32 value; - value = pwmdc_read_reg(dev->pwmdac_base , PWMDAC_SATAE); + value = pwmdc_read_reg(dev->pwmdac_base, PWMDAC_SATAE); if ((value & 0x02) == 0) return FIFO_UN_FULL; @@ -474,7 +429,7 @@ static void pwmdac_set(struct sf_pwmdac_dev *dev) pwmdac_LR_data_change(dev, dev->lr_change); pwmdac_data_mode(dev, dev->data_mode); if (dev->shift) { - pwmdac_data_shift(dev, dev->shift); + pwmdac_data_shift(dev, dev->shift); } } @@ -485,55 +440,55 @@ static void pwmdac_stop(struct sf_pwmdac_dev *dev) static int pwmdac_config(struct sf_pwmdac_dev *dev) { - switch (dev->mode) { - case shift_8Bit_unsigned: - case shift_8Bit_unsigned_dataShift: - /* 8 bit, unsigned */ + switch (dev->mode) { + case shift_8Bit_unsigned: + case shift_8Bit_unsigned_dataShift: + /* 8 bit, unsigned */ dev->shift_bit = PWMDAC_SHIFT_8; dev->duty_cycle = PWMDAC_CYCLE_CENTER; - dev->datan = PWMDAC_SAMPLE_CNT_8; + dev->datan = PWMDAC_SAMPLE_CNT_8; dev->data_mode = UNSINGED_DATA; - break; - - case shift_8Bit_inverter: - case shift_8Bit_inverter_dataShift: - /* 8 bit, invert */ + break; + + case shift_8Bit_inverter: + case shift_8Bit_inverter_dataShift: + /* 8 bit, invert */ dev->shift_bit = PWMDAC_SHIFT_8; dev->duty_cycle = PWMDAC_CYCLE_CENTER; - dev->datan = PWMDAC_SAMPLE_CNT_8; + dev->datan = PWMDAC_SAMPLE_CNT_8; dev->data_mode = INVERTER_DATA_MSB; - break; - - case shift_10Bit_unsigned: - case shift_10Bit_unsigned_dataShift: - /* 10 bit, unsigend */ + break; + + case shift_10Bit_unsigned: + case shift_10Bit_unsigned_dataShift: + /* 10 bit, unsigend */ dev->shift_bit = PWMDAC_SHIFT_10; dev->duty_cycle = PWMDAC_CYCLE_CENTER; - dev->datan = PWMDAC_SAMPLE_CNT_8; + dev->datan = PWMDAC_SAMPLE_CNT_8; dev->data_mode = UNSINGED_DATA; - break; - - case shift_10Bit_inverter: - case shift_10Bit_inverter_dataShift: - /* 10 bit, invert */ + break; + + case shift_10Bit_inverter: + case shift_10Bit_inverter_dataShift: + /* 10 bit, invert */ dev->shift_bit = PWMDAC_SHIFT_10; dev->duty_cycle = PWMDAC_CYCLE_CENTER; - dev->datan = PWMDAC_SAMPLE_CNT_8; + dev->datan = PWMDAC_SAMPLE_CNT_8; dev->data_mode = INVERTER_DATA_MSB; - break; - - default: - return -1; - } + break; + + default: + return -1; + } - if ((dev->mode == shift_8Bit_unsigned_dataShift) || (dev->mode == shift_8Bit_inverter_dataShift) + if ((dev->mode == shift_8Bit_unsigned_dataShift) || (dev->mode == shift_8Bit_inverter_dataShift) || (dev->mode == shift_10Bit_unsigned_dataShift) || (dev->mode == shift_10Bit_inverter_dataShift)) { dev->shift = 4; /*0~7*/ - } else { - dev->shift = 0; - } + } else { + dev->shift = 0; + } dev->lr_change = NO_CHANGE; - return 0; + return 0; } static int sf_pwmdac_prepare(struct snd_pcm_substream *substream, @@ -551,9 +506,9 @@ int pwmdac_tx_thread(void *dev) printk(KERN_ERR"%s L.%d dev is null.\n", __FILE__, __LINE__); return -1; } - + while (!pwmdac_dev->tx_thread_exit) { - if(get_pwmdac_fifo_state(pwmdac_dev)==0){ + if (get_pwmdac_fifo_state(pwmdac_dev) == 0) { sf_pwmdac_pcm_push_tx(pwmdac_dev); } else @@ -592,9 +547,9 @@ static int sf_pwmdac_trigger(struct snd_pcm_substream *substream, dev->active--; pwmdac_stop(dev); if (dev->use_pio) { - if(dev->tx_thread){ + if (dev->tx_thread) { dev->tx_thread_exit = 1; - } + } } break; default: @@ -768,7 +723,7 @@ static int sf_pwmdac_probe(struct platform_device *pdev) struct resource *res; int ret; - dev = devm_kzalloc(&pdev->dev, sizeof(*dev), GFP_KERNEL); + dev = devm_kzalloc(&pdev->dev, sizeof(*dev), GFP_KERNEL); if (!dev) return -ENOMEM; @@ -788,7 +743,7 @@ static int sf_pwmdac_probe(struct platform_device *pdev) if (ret) { dev_err(&pdev->dev, "failed to get pwmdac reset controls\n"); return ret; - } + } ret = sf_pwmdac_clk_init(pdev, dev); if (ret) { @@ -828,7 +783,7 @@ static int sf_pwmdac_remove(struct platform_device *pdev) #ifdef CONFIG_OF static const struct of_device_id sf_pwmdac_of_match[] = { - { .compatible = "sf,pwmdac", }, + { .compatible = "starfive,pwmdac", }, {}, }; -- 2.7.4