Loading Documentation/devicetree/bindings/sound/wcd_codec.txt +8 −1 Original line number Diff line number Diff line WCD audio CODEC * Qualcomm Technologies WCD Audio Codec This node models the Qualcomm Technologies Audio HW WCD Codecs Required properties: Loading Loading @@ -512,6 +514,10 @@ Required properties: which is also existing driver WSA881x that represents soundwire slave devices. Optional Properties: - qcom,cache-always : Boolean. This property is used in WSA slave device to use cacheable for all registers. Example: msm_sdw_codec: qcom,msm-sdw-codec@152c1000 { Loading @@ -529,6 +535,7 @@ msm_sdw_codec: qcom,msm-sdw-codec@152c1000 { compatible = "qcom,wsa881x"; reg = <0x00 0x20170212>; qcom,spkr-sd-n-gpio = <&tlmm 80 0>; qcom,cache-always; }; }; }; Loading sound/soc/codecs/wsa881x-regmap.c +4 −1 Original line number Diff line number Diff line /* * Copyright (c) 2015-2016, The Linux Foundation. All rights reserved. * Copyright (c) 2015-2017, The Linux Foundation. All rights reserved. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2 and Loading Loading @@ -216,6 +216,9 @@ static bool wsa881x_readable_register(struct device *dev, unsigned int reg) static bool wsa881x_volatile_register(struct device *dev, unsigned int reg) { if (cache_always) return false; switch (reg) { case WSA881X_CHIP_ID0: case WSA881X_CHIP_ID1: Loading sound/soc/codecs/wsa881x.c +5 −1 Original line number Diff line number Diff line /* * Copyright (c) 2015-2016, The Linux Foundation. All rights reserved. * Copyright (c) 2015-2017, The Linux Foundation. All rights reserved. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2 and Loading Loading @@ -78,6 +78,7 @@ enum { WSA881X_DEV_UP, }; bool cache_always; /* * Private data Structure for wsa881x. All parameters related to * WSA881X codec needs to be defined here. Loading Loading @@ -1227,6 +1228,9 @@ static int wsa881x_swr_probe(struct swr_device *pdev) if (ret) goto err; } cache_always = of_property_read_bool(pdev->dev.of_node, "qcom,cache-always"); wsa881x_gpio_ctrl(wsa881x, true); wsa881x->state = WSA881X_DEV_UP; Loading sound/soc/codecs/wsa881x.h +2 −1 Original line number Diff line number Diff line /* Copyright (c) 2015-2016, The Linux Foundation. All rights reserved. /* Copyright (c) 2015-2017, The Linux Foundation. All rights reserved. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2 and Loading @@ -20,6 +20,7 @@ #define WSA881X_MAX_SWR_PORTS 4 extern bool cache_always; extern int wsa881x_set_channel_map(struct snd_soc_codec *codec, u8 *port, u8 num_port, unsigned int *ch_mask, unsigned int *ch_rate); Loading Loading
Documentation/devicetree/bindings/sound/wcd_codec.txt +8 −1 Original line number Diff line number Diff line WCD audio CODEC * Qualcomm Technologies WCD Audio Codec This node models the Qualcomm Technologies Audio HW WCD Codecs Required properties: Loading Loading @@ -512,6 +514,10 @@ Required properties: which is also existing driver WSA881x that represents soundwire slave devices. Optional Properties: - qcom,cache-always : Boolean. This property is used in WSA slave device to use cacheable for all registers. Example: msm_sdw_codec: qcom,msm-sdw-codec@152c1000 { Loading @@ -529,6 +535,7 @@ msm_sdw_codec: qcom,msm-sdw-codec@152c1000 { compatible = "qcom,wsa881x"; reg = <0x00 0x20170212>; qcom,spkr-sd-n-gpio = <&tlmm 80 0>; qcom,cache-always; }; }; }; Loading
sound/soc/codecs/wsa881x-regmap.c +4 −1 Original line number Diff line number Diff line /* * Copyright (c) 2015-2016, The Linux Foundation. All rights reserved. * Copyright (c) 2015-2017, The Linux Foundation. All rights reserved. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2 and Loading Loading @@ -216,6 +216,9 @@ static bool wsa881x_readable_register(struct device *dev, unsigned int reg) static bool wsa881x_volatile_register(struct device *dev, unsigned int reg) { if (cache_always) return false; switch (reg) { case WSA881X_CHIP_ID0: case WSA881X_CHIP_ID1: Loading
sound/soc/codecs/wsa881x.c +5 −1 Original line number Diff line number Diff line /* * Copyright (c) 2015-2016, The Linux Foundation. All rights reserved. * Copyright (c) 2015-2017, The Linux Foundation. All rights reserved. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2 and Loading Loading @@ -78,6 +78,7 @@ enum { WSA881X_DEV_UP, }; bool cache_always; /* * Private data Structure for wsa881x. All parameters related to * WSA881X codec needs to be defined here. Loading Loading @@ -1227,6 +1228,9 @@ static int wsa881x_swr_probe(struct swr_device *pdev) if (ret) goto err; } cache_always = of_property_read_bool(pdev->dev.of_node, "qcom,cache-always"); wsa881x_gpio_ctrl(wsa881x, true); wsa881x->state = WSA881X_DEV_UP; Loading
sound/soc/codecs/wsa881x.h +2 −1 Original line number Diff line number Diff line /* Copyright (c) 2015-2016, The Linux Foundation. All rights reserved. /* Copyright (c) 2015-2017, The Linux Foundation. All rights reserved. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2 and Loading @@ -20,6 +20,7 @@ #define WSA881X_MAX_SWR_PORTS 4 extern bool cache_always; extern int wsa881x_set_channel_map(struct snd_soc_codec *codec, u8 *port, u8 num_port, unsigned int *ch_mask, unsigned int *ch_rate); Loading