audio: add spdif/HDMI mute ctrl [1/1]

PD#TV-3016

Problem:
HDMI SPDIF mute interface has no effect.

Solution:
Add these interfaces for auge platform.

Verify:
Tested locally.

Change-Id: I168c0940e0f2b3d94091d43c6b8190f6f833c0f1
Signed-off-by: Shuai Li <shuai.li@amlogic.com>
This commit is contained in:
Shuai Li
2019-03-13 13:56:26 +08:00
committed by Jianxin Pan
parent 233779ef4d
commit 0e8d6ec67f
61 changed files with 661 additions and 89 deletions

View File

@@ -839,8 +839,10 @@
<GIC_SPI 151 IRQ_TYPE_EDGE_RISING>;
interrupt-names = "irq_spdifin";
pinctrl-names = "spdif_pins";
pinctrl-names = "spdif_pins",
"spdif_pins_mute";
pinctrl-0 = <&spdifout &spdifin>;
pinctrl-1 = <&spdifout_a_mute>;
status = "okay";
};
aml_spdif_b: spdif_b {
@@ -1062,6 +1064,13 @@
function = "spdif_out_ao";
};
};
spdifout_a_mute: spdifout_a_mute {
mux { /* gpiao_10 */
groups = "GPIOAO_10";
function = "gpio_periphs";
};
};
}; /* end of pinctrl_aobus */
&audio_data {

View File

@@ -784,8 +784,10 @@
<GIC_SPI 151 IRQ_TYPE_EDGE_RISING>;
interrupt-names = "irq_spdifin";
pinctrl-names = "spdif_pins";
pinctrl-names = "spdif_pins",
"spdif_pins_mute";
pinctrl-0 = <&spdifout &spdifin>;
pinctrl-1 = <&spdifout_a_mute>;
status = "okay";
};
aml_spdif_b: spdif_b {
@@ -1007,6 +1009,13 @@
function = "spdif_out_ao";
};
};
spdifout_a_mute: spdifout_a_mute {
mux { /* gpiao_10 */
groups = "GPIOAO_10";
function = "gpio_periphs";
};
};
}; /* end of pinctrl_aobus */
&audio_data {

View File

@@ -1130,8 +1130,10 @@
<GIC_SPI 151 IRQ_TYPE_EDGE_RISING>;
interrupt-names = "irq_spdifin";
pinctrl-names = "spdif_pins";
pinctrl-names = "spdif_pins",
"spdif_pins_mute";
pinctrl-0 = <&spdifout &spdifin>;
pinctrl-1 = <&spdifout_a_mute>;
status = "okay";
};
aml_spdif_b: spdif_b {
@@ -1380,6 +1382,13 @@
function = "spdif_out_ao";
};
};
spdifout_a_mute: spdifout_a_mute {
mux { /* gpiao_10 */
groups = "GPIOAO_10";
function = "gpio_periphs";
};
};
}; /* end of pinctrl_aobus */
&audio_data {

View File

@@ -974,8 +974,10 @@
<GIC_SPI 151 IRQ_TYPE_EDGE_RISING>;
interrupt-names = "irq_spdifin";
pinctrl-names = "spdif_pins";
pinctrl-names = "spdif_pins",
"spdif_pins_mute";
pinctrl-0 = <&spdifout &spdifin>;
pinctrl-1 = <&spdifout_a_mute>;
status = "okay";
};
aml_spdif_b: spdif_b {
@@ -1224,6 +1226,13 @@
function = "spdif_out_ao";
};
};
spdifout_a_mute: spdifout_a_mute {
mux { /* gpiao_10 */
groups = "GPIOAO_10";
function = "gpio_periphs";
};
};
}; /* end of pinctrl_aobus */
&audio_data {

View File

@@ -927,8 +927,10 @@
<GIC_SPI 151 IRQ_TYPE_EDGE_RISING>;
interrupt-names = "irq_spdifin";
pinctrl-names = "spdif_pins";
pinctrl-names = "spdif_pins",
"spdif_pins_mute";
pinctrl-0 = <&spdifout &spdifin>;
pinctrl-1 = <&spdifout_a_mute>;
status = "okay";
};
aml_spdif_b: spdif_b {
@@ -1151,6 +1153,13 @@
function = "spdif_out_ao";
};
};
spdifout_a_mute: spdifout_a_mute {
mux { /* gpiao_10 */
groups = "GPIOAO_10";
function = "gpio_periphs";
};
};
}; /* end of pinctrl_aobus */
&audio_data {

View File

@@ -946,8 +946,10 @@
<GIC_SPI 151 IRQ_TYPE_EDGE_RISING>;
interrupt-names = "irq_spdifin";
pinctrl-names = "spdif_pins";
pinctrl-names = "spdif_pins",
"spdif_pins_mute";
pinctrl-0 = <&spdifout &spdifin>;
pinctrl-1 = <&spdifout_a_mute>;
status = "okay";
};
aml_spdif_b: spdif_b {
@@ -1170,6 +1172,13 @@
function = "spdif_out_ao";
};
};
spdifout_a_mute: spdifout_a_mute {
mux { /* gpiao_10 */
groups = "GPIOAO_10";
function = "gpio_periphs";
};
};
}; /* end of pinctrl_aobus */
&audio_data {

View File

@@ -942,8 +942,10 @@
<GIC_SPI 151 IRQ_TYPE_EDGE_RISING>;
interrupt-names = "irq_spdifin";
pinctrl-names = "spdif_pins";
pinctrl-names = "spdif_pins",
"spdif_pins_mute";
pinctrl-0 = <&spdifout &spdifin>;
pinctrl-1 = <&spdifout_a_mute>;
status = "okay";
};
aml_spdif_b: spdif_b {
@@ -1166,6 +1168,13 @@
function = "spdif_out_ao";
};
};
spdifout_a_mute: spdifout_a_mute {
mux { /* gpiao_10 */
groups = "GPIOAO_10";
function = "gpio_periphs";
};
};
}; /* end of pinctrl_aobus */
&audio_data {

View File

@@ -901,8 +901,10 @@
<GIC_SPI 151 IRQ_TYPE_EDGE_RISING>;
interrupt-names = "irq_spdifin";
pinctrl-names = "spdif_pins";
pinctrl-names = "spdif_pins",
"spdif_pins_mute";
pinctrl-0 = <&spdifout>;
pinctrl-1 = <&spdifout_a_mute>;
status = "okay";
};
aml_spdif_b: spdif_b {
@@ -1095,6 +1097,13 @@
};
};
spdifout_a_mute: spdifout_a_mute {
mux { /* GPIOH_4 */
groups = "GPIOH_4";
function = "gpio_periphs";
};
};
pdmin: pdmin {
mux { /* gpioa_5, gpioa_6, gpioa_7, gpioa_8, gpioa_9*/
groups = "pdm_din0_a",

View File

@@ -892,8 +892,10 @@
<GIC_SPI 151 IRQ_TYPE_EDGE_RISING>;
interrupt-names = "irq_spdifin";
pinctrl-names = "spdif_pins";
pinctrl-names = "spdif_pins",
"spdif_pins_mute";
pinctrl-0 = <&spdifout>;
pinctrl-1 = <&spdifout_a_mute>;
status = "okay";
};
aml_spdif_b: spdif_b {
@@ -1086,6 +1088,13 @@
};
};
spdifout_a_mute: spdifout_a_mute {
mux { /* GPIOH_4 */
groups = "GPIOH_4";
function = "gpio_periphs";
};
};
pdmin: pdmin {
mux { /* gpioa_5, gpioa_6, gpioa_7, gpioa_8, gpioa_9*/
groups = "pdm_din0_a",

View File

@@ -888,8 +888,10 @@
<GIC_SPI 151 IRQ_TYPE_EDGE_RISING>;
interrupt-names = "irq_spdifin";
pinctrl-names = "spdif_pins";
pinctrl-names = "spdif_pins",
"spdif_pins_mute";
pinctrl-0 = <&spdifout>;
pinctrl-1 = <&spdifout_a_mute>;
status = "okay";
};
aml_spdif_b: spdif_b {
@@ -1082,6 +1084,13 @@
};
};
spdifout_a_mute: spdifout_a_mute {
mux { /* GPIOH_4 */
groups = "GPIOH_4";
function = "gpio_periphs";
};
};
pdmin: pdmin {
mux { /* gpioa_5, gpioa_6, gpioa_7, gpioa_8, gpioa_9*/
groups = "pdm_din0_a",

View File

@@ -928,8 +928,10 @@
<GIC_SPI 151 IRQ_TYPE_EDGE_RISING>;
interrupt-names = "irq_spdifin";
pinctrl-names = "spdif_pins";
pinctrl-names = "spdif_pins",
"spdif_pins_mute";
pinctrl-0 = <&spdifout>;
pinctrl-1 = <&spdifout_a_mute>;
status = "okay";
};
aml_spdif_b: spdif_b {
@@ -1122,6 +1124,13 @@
};
};
spdifout_a_mute: spdifout_a_mute {
mux { /* GPIOH_4 */
groups = "GPIOH_4";
function = "gpio_periphs";
};
};
pdmin: pdmin {
mux { /* gpioa_5, gpioa_6, gpioa_7, gpioa_8, gpioa_9*/
groups = "pdm_din0_a",

View File

@@ -941,8 +941,10 @@
<GIC_SPI 151 IRQ_TYPE_EDGE_RISING>;
interrupt-names = "irq_spdifin";
pinctrl-names = "spdif_pins";
pinctrl-names = "spdif_pins",
"spdif_pins_mute";
pinctrl-0 = <&spdifout>;
pinctrl-1 = <&spdifout_a_mute>;
status = "okay";
};
aml_spdif_b: spdif_b {
@@ -1135,6 +1137,13 @@
};
};
spdifout_a_mute: spdifout_a_mute {
mux { /* GPIOH_4 */
groups = "GPIOH_4";
function = "gpio_periphs";
};
};
pdmin: pdmin {
mux { /* gpioa_5, gpioa_6, gpioa_7, gpioa_8, gpioa_9*/
groups = "pdm_din0_a",

View File

@@ -937,8 +937,10 @@
<GIC_SPI 151 IRQ_TYPE_EDGE_RISING>;
interrupt-names = "irq_spdifin";
pinctrl-names = "spdif_pins";
pinctrl-names = "spdif_pins",
"spdif_pins_mute";
pinctrl-0 = <&spdifout>;
pinctrl-1 = <&spdifout_a_mute>;
status = "okay";
};
aml_spdif_b: spdif_b {
@@ -1131,6 +1133,13 @@
};
};
spdifout_a_mute: spdifout_a_mute {
mux { /* GPIOH_4 */
groups = "GPIOH_4";
function = "gpio_periphs";
};
};
pdmin: pdmin {
mux { /* gpioa_5, gpioa_6, gpioa_7, gpioa_8, gpioa_9*/
groups = "pdm_din0_a",

View File

@@ -928,8 +928,10 @@
<GIC_SPI 151 IRQ_TYPE_EDGE_RISING>;
interrupt-names = "irq_spdifin";
pinctrl-names = "spdif_pins";
pinctrl-names = "spdif_pins",
"spdif_pins_mute";
pinctrl-0 = <&spdifout>;
pinctrl-1 = <&spdifout_a_mute>;
status = "okay";
};
aml_spdif_b: spdif_b {
@@ -1122,6 +1124,13 @@
};
};
spdifout_a_mute: spdifout_a_mute {
mux { /* GPIOH_4 */
groups = "GPIOH_4";
function = "gpio_periphs";
};
};
pdmin: pdmin {
mux { /* gpioa_5, gpioa_6, gpioa_7, gpioa_8, gpioa_9*/
groups = "pdm_din0_a",

View File

@@ -929,8 +929,10 @@
<GIC_SPI 151 IRQ_TYPE_EDGE_RISING>;
interrupt-names = "irq_spdifin";
pinctrl-names = "spdif_pins";
pinctrl-names = "spdif_pins",
"spdif_pins_mute";
pinctrl-0 = <&spdifout>;
pinctrl-1 = <&spdifout_a_mute>;
status = "okay";
};
aml_spdif_b: spdif_b {
@@ -1123,6 +1125,13 @@
};
};
spdifout_a_mute: spdifout_a_mute {
mux { /* GPIOH_4 */
groups = "GPIOH_4";
function = "gpio_periphs";
};
};
pdmin: pdmin {
mux { /* gpioa_5, gpioa_6, gpioa_7, gpioa_8, gpioa_9*/
groups = "pdm_din0_a",

View File

@@ -884,8 +884,10 @@
<GIC_SPI 151 IRQ_TYPE_EDGE_RISING>;
interrupt-names = "irq_spdifin";
pinctrl-names = "spdif_pins";
pinctrl-names = "spdif_pins",
"spdif_pins_mute";
pinctrl-0 = <&spdifout &spdifin>;
pinctrl-1 = <&spdifout_a_mute>;
status = "okay";
};
aml_spdif_b: spdif_b {
@@ -1100,6 +1102,13 @@
function = "spdif_out_ao";
};
};
spdifout_a_mute: spdifout_a_mute {
mux { /* gpiao_10 */
groups = "GPIOAO_10";
function = "gpio_periphs";
};
};
}; /* end of pinctrl_aobus */
&audio_data {

View File

@@ -845,8 +845,10 @@
<GIC_SPI 151 IRQ_TYPE_EDGE_RISING>;
interrupt-names = "irq_spdifin";
pinctrl-names = "spdif_pins";
pinctrl-names = "spdif_pins",
"spdif_pins_mute";
pinctrl-0 = <&spdifout &spdifin>;
pinctrl-1 = <&spdifout_a_mute>;
status = "okay";
};
aml_spdif_b: spdif_b {
@@ -1061,6 +1063,13 @@
function = "spdif_out_ao";
};
};
spdifout_a_mute: spdifout_a_mute {
mux { /* gpiao_10 */
groups = "GPIOAO_10";
function = "gpio_periphs";
};
};
}; /* end of pinctrl_aobus */
&audio_data {

View File

@@ -979,8 +979,10 @@
<GIC_SPI 151 IRQ_TYPE_EDGE_RISING>;
interrupt-names = "irq_spdifin";
pinctrl-names = "spdif_pins";
pinctrl-names = "spdif_pins",
"spdif_pins_mute";
pinctrl-0 = <&spdifout &spdifin>;
pinctrl-1 = <&spdifout_a_mute>;
status = "okay";
};
aml_spdif_b: spdif_b {
@@ -1211,6 +1213,13 @@
function = "spdif_out_ao";
};
};
spdifout_a_mute: spdifout_a_mute {
mux { /* gpiao_10 */
groups = "GPIOAO_10";
function = "gpio_periphs";
};
};
}; /* end of pinctrl_aobus */
&irblaster {

View File

@@ -955,8 +955,10 @@
<GIC_SPI 151 IRQ_TYPE_EDGE_RISING>;
interrupt-names = "irq_spdifin";
pinctrl-names = "spdif_pins";
pinctrl-names = "spdif_pins",
"spdif_pins_mute";
pinctrl-0 = <&spdifout &spdifin>;
pinctrl-1 = <&spdifout_a_mute>;
status = "okay";
};
aml_spdif_b: spdif_b {
@@ -1187,6 +1189,13 @@
function = "spdif_out_ao";
};
};
spdifout_a_mute: spdifout_a_mute {
mux { /* gpiao_10 */
groups = "GPIOAO_10";
function = "gpio_periphs";
};
};
}; /* end of pinctrl_aobus */
&irblaster {

View File

@@ -919,8 +919,10 @@
<GIC_SPI 151 IRQ_TYPE_EDGE_RISING>;
interrupt-names = "irq_spdifin";
pinctrl-names = "spdif_pins";
pinctrl-names = "spdif_pins",
"spdif_pins_mute";
pinctrl-0 = <&spdifout &spdifin>;
pinctrl-1 = <&spdifout_a_mute>;
status = "okay";
};
aml_spdif_b: spdif_b {
@@ -1143,6 +1145,13 @@
function = "spdif_out_ao";
};
};
spdifout_a_mute: spdifout_a_mute {
mux { /* gpiao_10 */
groups = "GPIOAO_10";
function = "gpio_periphs";
};
};
}; /* end of pinctrl_aobus */
&irblaster {

View File

@@ -895,8 +895,10 @@
<GIC_SPI 151 IRQ_TYPE_EDGE_RISING>;
interrupt-names = "irq_spdifin";
pinctrl-names = "spdif_pins";
pinctrl-names = "spdif_pins",
"spdif_pins_mute";
pinctrl-0 = <&spdifout &spdifin>;
pinctrl-1 = <&spdifout_a_mute>;
status = "okay";
};
aml_spdif_b: spdif_b {
@@ -1119,6 +1121,13 @@
function = "spdif_out_ao";
};
};
spdifout_a_mute: spdifout_a_mute {
mux { /* gpiao_10 */
groups = "GPIOAO_10";
function = "gpio_periphs";
};
};
}; /* end of pinctrl_aobus */
&irblaster {

View File

@@ -1036,8 +1036,10 @@
<GIC_SPI 151 IRQ_TYPE_EDGE_RISING>;
interrupt-names = "irq_spdifin";
pinctrl-names = "spdif_pins";
pinctrl-names = "spdif_pins",
"spdif_pins_mute";
pinctrl-0 = <&spdifout &spdifin>;
pinctrl-1 = <&spdifout_a_mute>;
status = "okay";
};
aml_spdif_b: spdif_b {
@@ -1268,6 +1270,13 @@
function = "spdif_out_ao";
};
};
spdifout_a_mute: spdifout_a_mute {
mux { /* gpiao_10 */
groups = "GPIOAO_10";
function = "gpio_periphs";
};
};
}; /* end of pinctrl_aobus */
&irblaster {

View File

@@ -1014,8 +1014,10 @@
<GIC_SPI 151 IRQ_TYPE_EDGE_RISING>;
interrupt-names = "irq_spdifin";
pinctrl-names = "spdif_pins";
pinctrl-names = "spdif_pins",
"spdif_pins_mute";
pinctrl-0 = <&spdifout &spdifin>;
pinctrl-1 = <&spdifout_a_mute>;
status = "okay";
};
aml_spdif_b: spdif_b {
@@ -1246,6 +1248,13 @@
function = "spdif_out_ao";
};
};
spdifout_a_mute: spdifout_a_mute {
mux { /* gpiao_10 */
groups = "GPIOAO_10";
function = "gpio_periphs";
};
};
}; /* end of pinctrl_aobus */
&irblaster {

View File

@@ -932,8 +932,10 @@
<GIC_SPI 151 IRQ_TYPE_EDGE_RISING>;
interrupt-names = "irq_spdifin";
pinctrl-names = "spdif_pins";
pinctrl-names = "spdif_pins",
"spdif_pins_mute";
pinctrl-0 = <&spdifout &spdifin>;
pinctrl-1 = <&spdifout_a_mute>;
status = "okay";
};
aml_spdif_b: spdif_b {
@@ -1156,6 +1158,13 @@
function = "spdif_out_ao";
};
};
spdifout_a_mute: spdifout_a_mute {
mux { /* gpiao_10 */
groups = "GPIOAO_10";
function = "gpio_periphs";
};
};
}; /* end of pinctrl_aobus */
&irblaster {

View File

@@ -926,8 +926,10 @@
<GIC_SPI 151 IRQ_TYPE_EDGE_RISING>;
interrupt-names = "irq_spdifin";
pinctrl-names = "spdif_pins";
pinctrl-names = "spdif_pins",
"spdif_pins_mute";
pinctrl-0 = <&spdifout &spdifin>;
pinctrl-1 = <&spdifout_a_mute>;
status = "okay";
};
aml_spdif_b: spdif_b {
@@ -1150,6 +1152,13 @@
function = "spdif_out_ao";
};
};
spdifout_a_mute: spdifout_a_mute {
mux { /* gpiao_10 */
groups = "GPIOAO_10";
function = "gpio_periphs";
};
};
}; /* end of pinctrl_aobus */
&irblaster {

View File

@@ -1006,8 +1006,10 @@
<GIC_SPI 151 IRQ_TYPE_EDGE_RISING>;
interrupt-names = "irq_spdifin";
pinctrl-names = "spdif_pins";
pinctrl-names = "spdif_pins",
"spdif_pins_mute";
pinctrl-0 = <&spdifout &spdifin>;
pinctrl-1 = <&spdifout_a_mute>;
status = "okay";
};
aml_spdif_b: spdif_b {
@@ -1238,6 +1240,13 @@
function = "spdif_out_ao";
};
};
spdifout_a_mute: spdifout_a_mute {
mux { /* gpiao_10 */
groups = "GPIOAO_10";
function = "gpio_periphs";
};
};
}; /* end of pinctrl_aobus */
&irblaster {

View File

@@ -1297,8 +1297,11 @@
<GIC_SPI 151 IRQ_TYPE_EDGE_RISING>;
interrupt-names = "irq_spdifin";
pinctrl-names = "spdif_pins";
pinctrl-names = "spdif_pins",
"spdif_pins_mute";
pinctrl-0 = <&spdifout_a &spdifin_a>;
pinctrl-1 = <&spdifout_a_mute>;
/*
* whether do asrc for pcm and resample a or b
@@ -1541,6 +1544,13 @@
};
};
spdifout_a_mute: spdifout_a_mute {
mux { /* GPIODV_4 */
groups = "GPIODV_4";
function = "gpio_periphs";
};
};
pdmin: pdmin {
mux { /* GPIOZ_7, GPIOZ_8, pdm_din2_z4 */
groups = "pdm_dclk_z",

View File

@@ -1338,8 +1338,11 @@
<GIC_SPI 151 IRQ_TYPE_EDGE_RISING>;
interrupt-names = "irq_spdifin";
pinctrl-names = "spdif_pins";
pinctrl-names = "spdif_pins",
"spdif_pins_mute";
pinctrl-0 = <&spdifout_a>;
pinctrl-1 = <&spdifout_a_mute>;
/*
* whether do asrc for pcm and resample a or b
@@ -1535,6 +1538,13 @@
};
};
spdifout_a_mute: spdifout_a_mute {
mux { /* GPIODV_4 */
groups = "GPIODV_4";
function = "gpio_periphs";
};
};
pdmin: pdmin {
mux { /* GPIOZ_7, GPIOZ_8, pdm_din2_z4 */
groups = "pdm_dclk_z",

View File

@@ -1399,8 +1399,10 @@
<GIC_SPI 151 IRQ_TYPE_EDGE_RISING>;
interrupt-names = "irq_spdifin";
pinctrl-names = "spdif_pins";
pinctrl-names = "spdif_pins",
"spdif_pins_mute";
pinctrl-0 = <&spdifout_a>;
pinctrl-1 = <&spdifout_a_mute>;
/*
* whether do asrc for pcm and resample a or b
@@ -1631,6 +1633,13 @@
};
};
spdifout_a_mute: spdifout_a_mute {
mux { /* GPIODV_4 */
groups = "GPIODV_4";
function = "gpio_periphs";
};
};
pdmin: pdmin {
mux { /* GPIOZ_7, GPIOZ_8, pdm_din2_z4 */
groups = "pdm_dclk_z",

View File

@@ -839,8 +839,10 @@
<GIC_SPI 151 IRQ_TYPE_EDGE_RISING>;
interrupt-names = "irq_spdifin";
pinctrl-names = "spdif_pins";
pinctrl-names = "spdif_pins",
"spdif_pins_mute";
pinctrl-0 = <&spdifout &spdifin>;
pinctrl-1 = <&spdifout_a_mute>;
status = "okay";
};
aml_spdif_b: spdif_b {
@@ -1062,6 +1064,13 @@
function = "spdif_out_ao";
};
};
spdifout_a_mute: spdifout_a_mute {
mux { /* gpiao_10 */
groups = "GPIOAO_10";
function = "gpio_periphs";
};
};
}; /* end of pinctrl_aobus */
&audio_data {

View File

@@ -784,8 +784,10 @@
<GIC_SPI 151 IRQ_TYPE_EDGE_RISING>;
interrupt-names = "irq_spdifin";
pinctrl-names = "spdif_pins";
pinctrl-names = "spdif_pins",
"spdif_pins_mute";
pinctrl-0 = <&spdifout &spdifin>;
pinctrl-1 = <&spdifout_a_mute>;
status = "okay";
};
aml_spdif_b: spdif_b {
@@ -1007,6 +1009,13 @@
function = "spdif_out_ao";
};
};
spdifout_a_mute: spdifout_a_mute {
mux { /* gpiao_10 */
groups = "GPIOAO_10";
function = "gpio_periphs";
};
};
}; /* end of pinctrl_aobus */
&audio_data {

View File

@@ -1128,8 +1128,10 @@
<GIC_SPI 151 IRQ_TYPE_EDGE_RISING>;
interrupt-names = "irq_spdifin";
pinctrl-names = "spdif_pins";
pinctrl-names = "spdif_pins",
"spdif_pins_mute";
pinctrl-0 = <&spdifout &spdifin>;
pinctrl-1 = <&spdifout_a_mute>;
status = "okay";
};
aml_spdif_b: spdif_b {
@@ -1378,6 +1380,13 @@
function = "spdif_out_ao";
};
};
spdifout_a_mute: spdifout_a_mute {
mux { /* gpiao_10 */
groups = "GPIOAO_10";
function = "gpio_periphs";
};
};
}; /* end of pinctrl_aobus */
&audio_data {

View File

@@ -968,8 +968,10 @@
<GIC_SPI 151 IRQ_TYPE_EDGE_RISING>;
interrupt-names = "irq_spdifin";
pinctrl-names = "spdif_pins";
pinctrl-names = "spdif_pins",
"spdif_pins_mute";
pinctrl-0 = <&spdifout &spdifin>;
pinctrl-1 = <&spdifout_a_mute>;
status = "okay";
};
aml_spdif_b: spdif_b {
@@ -1218,6 +1220,13 @@
function = "spdif_out_ao";
};
};
spdifout_a_mute: spdifout_a_mute {
mux { /* gpiao_10 */
groups = "GPIOAO_10";
function = "gpio_periphs";
};
};
}; /* end of pinctrl_aobus */
&audio_data {

View File

@@ -927,8 +927,10 @@
<GIC_SPI 151 IRQ_TYPE_EDGE_RISING>;
interrupt-names = "irq_spdifin";
pinctrl-names = "spdif_pins";
pinctrl-names = "spdif_pins",
"spdif_pins_mute";
pinctrl-0 = <&spdifout &spdifin>;
pinctrl-1 = <&spdifout_a_mute>;
status = "okay";
};
aml_spdif_b: spdif_b {
@@ -1151,6 +1153,13 @@
function = "spdif_out_ao";
};
};
spdifout_a_mute: spdifout_a_mute {
mux { /* gpiao_10 */
groups = "GPIOAO_10";
function = "gpio_periphs";
};
};
}; /* end of pinctrl_aobus */
&audio_data {

View File

@@ -946,8 +946,10 @@
<GIC_SPI 151 IRQ_TYPE_EDGE_RISING>;
interrupt-names = "irq_spdifin";
pinctrl-names = "spdif_pins";
pinctrl-names = "spdif_pins",
"spdif_pins_mute";
pinctrl-0 = <&spdifout &spdifin>;
pinctrl-1 = <&spdifout_a_mute>;
status = "okay";
};
aml_spdif_b: spdif_b {
@@ -1170,6 +1172,13 @@
function = "spdif_out_ao";
};
};
spdifout_a_mute: spdifout_a_mute {
mux { /* gpiao_10 */
groups = "GPIOAO_10";
function = "gpio_periphs";
};
};
}; /* end of pinctrl_aobus */
&audio_data {

View File

@@ -942,8 +942,10 @@
<GIC_SPI 151 IRQ_TYPE_EDGE_RISING>;
interrupt-names = "irq_spdifin";
pinctrl-names = "spdif_pins";
pinctrl-names = "spdif_pins",
"spdif_pins_mute";
pinctrl-0 = <&spdifout &spdifin>;
pinctrl-1 = <&spdifout_a_mute>;
status = "okay";
};
aml_spdif_b: spdif_b {
@@ -1166,6 +1168,13 @@
function = "spdif_out_ao";
};
};
spdifout_a_mute: spdifout_a_mute {
mux { /* gpiao_10 */
groups = "GPIOAO_10";
function = "gpio_periphs";
};
};
}; /* end of pinctrl_aobus */
&audio_data {

View File

@@ -901,8 +901,10 @@
<GIC_SPI 151 IRQ_TYPE_EDGE_RISING>;
interrupt-names = "irq_spdifin";
pinctrl-names = "spdif_pins";
pinctrl-names = "spdif_pins",
"spdif_pins_mute";
pinctrl-0 = <&spdifout>;
pinctrl-1 = <&spdifout_a_mute>;
status = "okay";
};
aml_spdif_b: spdif_b {
@@ -1095,6 +1097,13 @@
};
};
spdifout_a_mute: spdifout_a_mute {
mux { /* GPIOH_4 */
groups = "GPIOH_4";
function = "gpio_periphs";
};
};
pdmin: pdmin {
mux { /* gpioa_5, gpioa_6, gpioa_7, gpioa_8, gpioa_9*/
groups = "pdm_din0_a",

View File

@@ -892,8 +892,10 @@
<GIC_SPI 151 IRQ_TYPE_EDGE_RISING>;
interrupt-names = "irq_spdifin";
pinctrl-names = "spdif_pins";
pinctrl-names = "spdif_pins",
"spdif_pins_mute";
pinctrl-0 = <&spdifout>;
pinctrl-1 = <&spdifout_a_mute>;
status = "okay";
};
aml_spdif_b: spdif_b {
@@ -1086,6 +1088,13 @@
};
};
spdifout_a_mute: spdifout_a_mute {
mux { /* GPIOH_4 */
groups = "GPIOH_4";
function = "gpio_periphs";
};
};
pdmin: pdmin {
mux { /* gpioa_5, gpioa_6, gpioa_7, gpioa_8, gpioa_9*/
groups = "pdm_din0_a",

View File

@@ -888,8 +888,10 @@
<GIC_SPI 151 IRQ_TYPE_EDGE_RISING>;
interrupt-names = "irq_spdifin";
pinctrl-names = "spdif_pins";
pinctrl-names = "spdif_pins",
"spdif_pins_mute";
pinctrl-0 = <&spdifout>;
pinctrl-1 = <&spdifout_a_mute>;
status = "okay";
};
aml_spdif_b: spdif_b {
@@ -1082,6 +1084,13 @@
};
};
spdifout_a_mute: spdifout_a_mute {
mux { /* GPIOH_4 */
groups = "GPIOH_4";
function = "gpio_periphs";
};
};
pdmin: pdmin {
mux { /* gpioa_5, gpioa_6, gpioa_7, gpioa_8, gpioa_9*/
groups = "pdm_din0_a",

View File

@@ -928,8 +928,10 @@
<GIC_SPI 151 IRQ_TYPE_EDGE_RISING>;
interrupt-names = "irq_spdifin";
pinctrl-names = "spdif_pins";
pinctrl-names = "spdif_pins",
"spdif_pins_mute";
pinctrl-0 = <&spdifout>;
pinctrl-1 = <&spdifout_a_mute>;
status = "okay";
};
aml_spdif_b: spdif_b {
@@ -1122,6 +1124,13 @@
};
};
spdifout_a_mute: spdifout_a_mute {
mux { /* GPIOH_4 */
groups = "GPIOH_4";
function = "gpio_periphs";
};
};
pdmin: pdmin {
mux { /* gpioa_5, gpioa_6, gpioa_7, gpioa_8, gpioa_9*/
groups = "pdm_din0_a",

View File

@@ -941,8 +941,10 @@
<GIC_SPI 151 IRQ_TYPE_EDGE_RISING>;
interrupt-names = "irq_spdifin";
pinctrl-names = "spdif_pins";
pinctrl-names = "spdif_pins",
"spdif_pins_mute";
pinctrl-0 = <&spdifout>;
pinctrl-1 = <&spdifout_a_mute>;
status = "okay";
};
aml_spdif_b: spdif_b {
@@ -1135,6 +1137,13 @@
};
};
spdifout_a_mute: spdifout_a_mute {
mux { /* GPIOH_4 */
groups = "GPIOH_4";
function = "gpio_periphs";
};
};
pdmin: pdmin {
mux { /* gpioa_5, gpioa_6, gpioa_7, gpioa_8, gpioa_9*/
groups = "pdm_din0_a",

View File

@@ -933,8 +933,10 @@
<GIC_SPI 151 IRQ_TYPE_EDGE_RISING>;
interrupt-names = "irq_spdifin";
pinctrl-names = "spdif_pins";
pinctrl-names = "spdif_pins",
"spdif_pins_mute";
pinctrl-0 = <&spdifout>;
pinctrl-1 = <&spdifout_a_mute>;
status = "okay";
};
aml_spdif_b: spdif_b {
@@ -1127,6 +1129,13 @@
};
};
spdifout_a_mute: spdifout_a_mute {
mux { /* GPIOH_4 */
groups = "GPIOH_4";
function = "gpio_periphs";
};
};
pdmin: pdmin {
mux { /* gpioa_5, gpioa_6, gpioa_7, gpioa_8, gpioa_9*/
groups = "pdm_din0_a",

View File

@@ -928,8 +928,10 @@
<GIC_SPI 151 IRQ_TYPE_EDGE_RISING>;
interrupt-names = "irq_spdifin";
pinctrl-names = "spdif_pins";
pinctrl-names = "spdif_pins",
"spdif_pins_mute";
pinctrl-0 = <&spdifout>;
pinctrl-1 = <&spdifout_a_mute>;
status = "okay";
};
aml_spdif_b: spdif_b {
@@ -1122,6 +1124,13 @@
};
};
spdifout_a_mute: spdifout_a_mute {
mux { /* GPIOH_4 */
groups = "GPIOH_4";
function = "gpio_periphs";
};
};
pdmin: pdmin {
mux { /* gpioa_5, gpioa_6, gpioa_7, gpioa_8, gpioa_9*/
groups = "pdm_din0_a",

View File

@@ -942,8 +942,10 @@
<GIC_SPI 151 IRQ_TYPE_EDGE_RISING>;
interrupt-names = "irq_spdifin";
pinctrl-names = "spdif_pins";
pinctrl-names = "spdif_pins",
"spdif_pins_mute";
pinctrl-0 = <&spdifout>;
pinctrl-1 = <&spdifout_a_mute>;
status = "okay";
};
aml_spdif_b: spdif_b {
@@ -1136,6 +1138,13 @@
};
};
spdifout_a_mute: spdifout_a_mute {
mux { /* GPIOH_4 */
groups = "GPIOH_4";
function = "gpio_periphs";
};
};
pdmin: pdmin {
mux { /* gpioa_5, gpioa_6, gpioa_7, gpioa_8, gpioa_9*/
groups = "pdm_din0_a",

View File

@@ -884,8 +884,10 @@
<GIC_SPI 151 IRQ_TYPE_EDGE_RISING>;
interrupt-names = "irq_spdifin";
pinctrl-names = "spdif_pins";
pinctrl-names = "spdif_pins",
"spdif_pins_mute";
pinctrl-0 = <&spdifout &spdifin>;
pinctrl-1 = <&spdifout_a_mute>;
status = "okay";
};
aml_spdif_b: spdif_b {
@@ -1100,6 +1102,13 @@
function = "spdif_out_ao";
};
};
spdifout_a_mute: spdifout_a_mute {
mux { /* gpiao_10 */
groups = "GPIOAO_10";
function = "gpio_periphs";
};
};
}; /* end of pinctrl_aobus */
&audio_data {

View File

@@ -843,8 +843,10 @@
<GIC_SPI 151 IRQ_TYPE_EDGE_RISING>;
interrupt-names = "irq_spdifin";
pinctrl-names = "spdif_pins";
pinctrl-names = "spdif_pins",
"spdif_pins_mute";
pinctrl-0 = <&spdifout &spdifin>;
pinctrl-1 = <&spdifout_a_mute>;
status = "okay";
};
aml_spdif_b: spdif_b {
@@ -1059,6 +1061,13 @@
function = "spdif_out_ao";
};
};
spdifout_a_mute: spdifout_a_mute {
mux { /* gpiao_10 */
groups = "GPIOAO_10";
function = "gpio_periphs";
};
};
}; /* end of pinctrl_aobus */
&audio_data {

View File

@@ -979,8 +979,10 @@
<GIC_SPI 151 IRQ_TYPE_EDGE_RISING>;
interrupt-names = "irq_spdifin";
pinctrl-names = "spdif_pins";
pinctrl-names = "spdif_pins",
"spdif_pins_mute";
pinctrl-0 = <&spdifout &spdifin>;
pinctrl-1 = <&spdifout_a_mute>;
status = "okay";
};
aml_spdif_b: spdif_b {
@@ -1211,6 +1213,13 @@
function = "spdif_out_ao";
};
};
spdifout_a_mute: spdifout_a_mute {
mux { /* gpiao_10 */
groups = "GPIOAO_10";
function = "gpio_periphs";
};
};
}; /* end of pinctrl_aobus */
&irblaster {

View File

@@ -955,8 +955,10 @@
<GIC_SPI 151 IRQ_TYPE_EDGE_RISING>;
interrupt-names = "irq_spdifin";
pinctrl-names = "spdif_pins";
pinctrl-names = "spdif_pins",
"spdif_pins_mute";
pinctrl-0 = <&spdifout &spdifin>;
pinctrl-1 = <&spdifout_a_mute>;
status = "okay";
};
aml_spdif_b: spdif_b {
@@ -1187,6 +1189,13 @@
function = "spdif_out_ao";
};
};
spdifout_a_mute: spdifout_a_mute {
mux { /* gpiao_10 */
groups = "GPIOAO_10";
function = "gpio_periphs";
};
};
}; /* end of pinctrl_aobus */
&irblaster {

View File

@@ -919,8 +919,10 @@
<GIC_SPI 151 IRQ_TYPE_EDGE_RISING>;
interrupt-names = "irq_spdifin";
pinctrl-names = "spdif_pins";
pinctrl-names = "spdif_pins",
"spdif_pins_mute";
pinctrl-0 = <&spdifout &spdifin>;
pinctrl-1 = <&spdifout_a_mute>;
status = "okay";
};
aml_spdif_b: spdif_b {
@@ -1143,6 +1145,13 @@
function = "spdif_out_ao";
};
};
spdifout_a_mute: spdifout_a_mute {
mux { /* gpiao_10 */
groups = "GPIOAO_10";
function = "gpio_periphs";
};
};
}; /* end of pinctrl_aobus */
&irblaster {

View File

@@ -895,8 +895,10 @@
<GIC_SPI 151 IRQ_TYPE_EDGE_RISING>;
interrupt-names = "irq_spdifin";
pinctrl-names = "spdif_pins";
pinctrl-names = "spdif_pins",
"spdif_pins_mute";
pinctrl-0 = <&spdifout &spdifin>;
pinctrl-1 = <&spdifout_a_mute>;
status = "okay";
};
aml_spdif_b: spdif_b {
@@ -1119,6 +1121,13 @@
function = "spdif_out_ao";
};
};
spdifout_a_mute: spdifout_a_mute {
mux { /* gpiao_10 */
groups = "GPIOAO_10";
function = "gpio_periphs";
};
};
}; /* end of pinctrl_aobus */
&irblaster {

View File

@@ -1035,8 +1035,10 @@
<GIC_SPI 151 IRQ_TYPE_EDGE_RISING>;
interrupt-names = "irq_spdifin";
pinctrl-names = "spdif_pins";
pinctrl-names = "spdif_pins",
"spdif_pins_mute";
pinctrl-0 = <&spdifout &spdifin>;
pinctrl-1 = <&spdifout_a_mute>;
status = "okay";
};
aml_spdif_b: spdif_b {
@@ -1267,6 +1269,13 @@
function = "spdif_out_ao";
};
};
spdifout_a_mute: spdifout_a_mute {
mux { /* gpiao_10 */
groups = "GPIOAO_10";
function = "gpio_periphs";
};
};
}; /* end of pinctrl_aobus */
&irblaster {

View File

@@ -1013,8 +1013,10 @@
<GIC_SPI 151 IRQ_TYPE_EDGE_RISING>;
interrupt-names = "irq_spdifin";
pinctrl-names = "spdif_pins";
pinctrl-names = "spdif_pins",
"spdif_pins_mute";
pinctrl-0 = <&spdifout &spdifin>;
pinctrl-1 = <&spdifout_a_mute>;
status = "okay";
};
aml_spdif_b: spdif_b {
@@ -1245,6 +1247,13 @@
function = "spdif_out_ao";
};
};
spdifout_a_mute: spdifout_a_mute {
mux { /* gpiao_10 */
groups = "GPIOAO_10";
function = "gpio_periphs";
};
};
}; /* end of pinctrl_aobus */
&irblaster {

View File

@@ -932,8 +932,10 @@
<GIC_SPI 151 IRQ_TYPE_EDGE_RISING>;
interrupt-names = "irq_spdifin";
pinctrl-names = "spdif_pins";
pinctrl-names = "spdif_pins",
"spdif_pins_mute";
pinctrl-0 = <&spdifout &spdifin>;
pinctrl-1 = <&spdifout_a_mute>;
status = "okay";
};
aml_spdif_b: spdif_b {
@@ -1156,6 +1158,13 @@
function = "spdif_out_ao";
};
};
spdifout_a_mute: spdifout_a_mute {
mux { /* gpiao_10 */
groups = "GPIOAO_10";
function = "gpio_periphs";
};
};
}; /* end of pinctrl_aobus */
&irblaster {

View File

@@ -926,8 +926,10 @@
<GIC_SPI 151 IRQ_TYPE_EDGE_RISING>;
interrupt-names = "irq_spdifin";
pinctrl-names = "spdif_pins";
pinctrl-names = "spdif_pins",
"spdif_pins_mute";
pinctrl-0 = <&spdifout &spdifin>;
pinctrl-1 = <&spdifout_a_mute>;
status = "okay";
};
aml_spdif_b: spdif_b {
@@ -1150,6 +1152,13 @@
function = "spdif_out_ao";
};
};
spdifout_a_mute: spdifout_a_mute {
mux { /* gpiao_10 */
groups = "GPIOAO_10";
function = "gpio_periphs";
};
};
}; /* end of pinctrl_aobus */
&irblaster {

View File

@@ -1029,8 +1029,10 @@
<GIC_SPI 151 IRQ_TYPE_EDGE_RISING>;
interrupt-names = "irq_spdifin";
pinctrl-names = "spdif_pins";
pinctrl-names = "spdif_pins",
"spdif_pins_mute";
pinctrl-0 = <&spdifout &spdifin>;
pinctrl-1 = <&spdifout_a_mute>;
status = "okay";
};
aml_spdif_b: spdif_b {
@@ -1261,6 +1263,13 @@
function = "spdif_out_ao";
};
};
spdifout_a_mute: spdifout_a_mute {
mux { /* gpiao_10 */
groups = "GPIOAO_10";
function = "gpio_periphs";
};
};
}; /* end of pinctrl_aobus */
&irblaster {

View File

@@ -1336,8 +1336,10 @@
<GIC_SPI 151 IRQ_TYPE_EDGE_RISING>;
interrupt-names = "irq_spdifin";
pinctrl-names = "spdif_pins";
pinctrl-names = "spdif_pins",
"spdif_pins_mute";
pinctrl-0 = <&spdifout_a>;
pinctrl-1 = <&spdifout_a_mute>;
/*
* whether do asrc for pcm and resample a or b
@@ -1533,6 +1535,13 @@
};
};
spdifout_a_mute: spdifout_a_mute {
mux { /* GPIODV_4 */
groups = "GPIODV_4";
function = "gpio_periphs";
};
};
pdmin: pdmin {
mux { /* GPIOZ_7, GPIOZ_8, pdm_din2_z4 */
groups = "pdm_dclk_z",

View File

@@ -1393,8 +1393,10 @@
<GIC_SPI 151 IRQ_TYPE_EDGE_RISING>;
interrupt-names = "irq_spdifin";
pinctrl-names = "spdif_pins";
pinctrl-names = "spdif_pins",
"spdif_pins_mute";
pinctrl-0 = <&spdifout_a>;
pinctrl-1 = <&spdifout_a_mute>;
/*
* whether do asrc for pcm and resample a or b
@@ -1590,6 +1592,13 @@
};
};
spdifout_a_mute: spdifout_a_mute {
mux { /* GPIODV_4 */
groups = "GPIODV_4";
function = "gpio_periphs";
};
};
pdmin: pdmin {
mux { /* GPIOZ_7, GPIOZ_8, pdm_din2_z4 */
groups = "pdm_dclk_z",

View File

@@ -45,4 +45,10 @@ extern int spdif_format_get_enum(
extern int spdif_format_set_enum(
struct snd_kcontrol *kcontrol,
struct snd_ctl_elem_value *ucontrol);
#ifdef CONFIG_AMLOGIC_HDMITX
int aml_get_hdmi_out_audio(struct snd_kcontrol *kcontrol,
struct snd_ctl_elem_value *ucontrol);
int aml_set_hdmi_out_audio(struct snd_kcontrol *kcontrol,
struct snd_ctl_elem_value *ucontrol);
#endif
#endif

View File

@@ -76,6 +76,13 @@ struct spdif_chipinfo {
bool same_src_spdif_reen;
};
enum SPDIF_SRC {
SPDIFIN_PAD = 0,
SPDIFOUT,
NOAP,
HDMIRX
};
struct aml_spdif {
struct pinctrl *pin_ctl;
struct aml_audio_controller *actrl;
@@ -127,6 +134,10 @@ struct aml_spdif {
/* last value for pc, pd */
int pc_last;
int pd_last;
/* mixer control vals */
bool mute;
enum SPDIF_SRC spdifin_src;
};
static const struct snd_pcm_hardware aml_spdif_hardware = {
@@ -255,21 +266,44 @@ static int spdifin_audio_type_get_enum(
return 0;
}
/* For fake */
static bool is_mute;
static int spdifin_src;
static int aml_audio_set_spdif_mute(struct snd_kcontrol *kcontrol,
struct snd_ctl_elem_value *ucontrol)
{
is_mute =
ucontrol->value.integer.value[0];
struct snd_soc_dai *dai = snd_kcontrol_chip(kcontrol);
struct aml_spdif *p_spdif = snd_soc_dai_get_drvdata(dai);
struct pinctrl_state *state = NULL;
bool mute = !!ucontrol->value.integer.value[0];
if (IS_ERR_OR_NULL(p_spdif->pin_ctl)) {
pr_err("%s(), no pinctrl", __func__);
return 0;
}
if (mute) {
state = pinctrl_lookup_state
(p_spdif->pin_ctl, "spdif_pins_mute");
if (!IS_ERR_OR_NULL(state))
pinctrl_select_state(p_spdif->pin_ctl, state);
} else {
state = pinctrl_lookup_state
(p_spdif->pin_ctl, "spdif_pins");
if (!IS_ERR_OR_NULL(state))
pinctrl_select_state(p_spdif->pin_ctl, state);
}
p_spdif->mute = mute;
return 0;
}
static int aml_audio_get_spdif_mute(struct snd_kcontrol *kcontrol,
struct snd_ctl_elem_value *ucontrol)
{
ucontrol->value.integer.value[0] = is_mute;
struct snd_soc_dai *dai = snd_kcontrol_chip(kcontrol);
struct aml_spdif *p_spdif = snd_soc_dai_get_drvdata(dai);
ucontrol->value.integer.value[0] = p_spdif->mute;
return 0;
}
@@ -285,7 +319,11 @@ int spdifin_source_get_enum(
struct snd_kcontrol *kcontrol,
struct snd_ctl_elem_value *ucontrol)
{
ucontrol->value.enumerated.item[0] = spdifin_src;
struct snd_soc_dai *dai = snd_kcontrol_chip(kcontrol);
struct aml_spdif *p_spdif = snd_soc_dai_get_drvdata(dai);
ucontrol->value.enumerated.item[0] = p_spdif->spdifin_src;
return 0;
}
@@ -293,6 +331,8 @@ int spdifin_source_set_enum(
struct snd_kcontrol *kcontrol,
struct snd_ctl_elem_value *ucontrol)
{
struct snd_soc_dai *dai = snd_kcontrol_chip(kcontrol);
struct aml_spdif *p_spdif = snd_soc_dai_get_drvdata(dai);
int src = ucontrol->value.enumerated.item[0];
if (src > 3) {
@@ -300,7 +340,8 @@ int spdifin_source_set_enum(
return -1;
}
spdifin_set_src(src);
spdifin_src = src;
p_spdif->spdifin_src = src;
return 0;
}
@@ -327,7 +368,11 @@ static const struct snd_kcontrol_new snd_spdif_controls[] = {
spdifin_src_enum,
spdifin_source_get_enum,
spdifin_source_set_enum),
#ifdef CONFIG_AMLOGIC_HDMITX
SOC_SINGLE_BOOL_EXT("Audio hdmi-out mute",
0, aml_get_hdmi_out_audio,
aml_set_hdmi_out_audio),
#endif
};
static bool spdifin_check_audiotype_by_sw(struct aml_spdif *p_spdif)

View File

@@ -20,6 +20,9 @@
#include <linux/amlogic/media/sound/aout_notify.h>
#include <linux/amlogic/media/sound/spdif_info.h>
#ifdef CONFIG_AMLOGIC_HDMITX
#include <linux/amlogic/media/vout/hdmi_tx/hdmi_tx_ext.h>
#endif
/*
* 0 -- other formats except(DD,DD+,DTS)
@@ -191,3 +194,29 @@ int spdif_format_set_enum(
IEC958_mode_codec = index;
return 0;
}
#ifdef CONFIG_AMLOGIC_HDMITX
unsigned int aml_audio_hdmiout_mute_flag;
/* call HDMITX API to enable/disable internal audio out */
int aml_get_hdmi_out_audio(struct snd_kcontrol *kcontrol,
struct snd_ctl_elem_value *ucontrol)
{
ucontrol->value.integer.value[0] = !hdmitx_ext_get_audio_status();
aml_audio_hdmiout_mute_flag =
ucontrol->value.integer.value[0];
return 0;
}
int aml_set_hdmi_out_audio(struct snd_kcontrol *kcontrol,
struct snd_ctl_elem_value *ucontrol)
{
bool mute = ucontrol->value.integer.value[0];
if (aml_audio_hdmiout_mute_flag != mute) {
hdmitx_ext_set_audio_output(!mute);
aml_audio_hdmiout_mute_flag = mute;
}
return 0;
}
#endif

View File

@@ -166,29 +166,6 @@ static int aml_audio_get_spdif_mute(struct snd_kcontrol *kcontrol,
}
#ifdef CONFIG_AMLOGIC_HDMITX
/* call HDMITX API to enable/disable internal audio out */
static int aml_get_hdmi_out_audio(struct snd_kcontrol *kcontrol,
struct snd_ctl_elem_value *ucontrol)
{
ucontrol->value.integer.value[0] = !hdmitx_ext_get_audio_status();
v_spdif_codec.aml_audio_hdmiout_mute_flag =
ucontrol->value.integer.value[0];
return 0;
}
static int aml_set_hdmi_out_audio(struct snd_kcontrol *kcontrol,
struct snd_ctl_elem_value *ucontrol)
{
bool mute = ucontrol->value.integer.value[0];
if (v_spdif_codec.aml_audio_hdmiout_mute_flag != mute) {
hdmitx_ext_set_audio_output(!mute);
v_spdif_codec.aml_audio_hdmiout_mute_flag = mute;
}
return 0;
}
static const char * const hdmi_out_channel_mask_texts[] = {
"SPDIF",
"2CH_I2S_0/1",