mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2024-12-28 08:49:38 +07:00
5582fcb382
This patch add support to Analog audio both Playback and Capture via msm8916 WCD muti codec. Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org> Signed-off-by: Andy Gross <andy.gross@linaro.org>
461 lines
9.8 KiB
Plaintext
461 lines
9.8 KiB
Plaintext
/*
|
|
* Copyright (c) 2015, 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
|
|
* only version 2 as published by the Free Software Foundation.
|
|
*
|
|
* This program is distributed in the hope that it will be useful,
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
* GNU General Public License for more details.
|
|
*/
|
|
|
|
#include "msm8916.dtsi"
|
|
#include "pm8916.dtsi"
|
|
#include "apq8016-sbc-soc-pins.dtsi"
|
|
#include "apq8016-sbc-pmic-pins.dtsi"
|
|
#include <dt-bindings/sound/apq8016-lpass.h>
|
|
|
|
/ {
|
|
aliases {
|
|
serial0 = &blsp1_uart2;
|
|
serial1 = &blsp1_uart1;
|
|
usid0 = &pm8916_0;
|
|
i2c0 = &blsp_i2c2;
|
|
i2c1 = &blsp_i2c6;
|
|
i2c3 = &blsp_i2c4;
|
|
spi0 = &blsp_spi5;
|
|
spi1 = &blsp_spi3;
|
|
};
|
|
|
|
chosen {
|
|
stdout-path = "serial0";
|
|
};
|
|
|
|
soc {
|
|
dma@7884000 {
|
|
status = "okay";
|
|
};
|
|
|
|
serial@78af000 {
|
|
label = "LS-UART0";
|
|
status = "okay";
|
|
pinctrl-names = "default", "sleep";
|
|
pinctrl-0 = <&blsp1_uart1_default>;
|
|
pinctrl-1 = <&blsp1_uart1_sleep>;
|
|
};
|
|
|
|
serial@78b0000 {
|
|
label = "LS-UART1";
|
|
status = "okay";
|
|
pinctrl-names = "default", "sleep";
|
|
pinctrl-0 = <&blsp1_uart2_default>;
|
|
pinctrl-1 = <&blsp1_uart2_sleep>;
|
|
};
|
|
|
|
i2c@78b6000 {
|
|
/* On Low speed expansion */
|
|
label = "LS-I2C0";
|
|
status = "okay";
|
|
};
|
|
|
|
i2c@78b8000 {
|
|
/* On High speed expansion */
|
|
label = "HS-I2C2";
|
|
status = "okay";
|
|
|
|
adv_bridge: bridge@39 {
|
|
status = "okay";
|
|
|
|
compatible = "adi,adv7533";
|
|
reg = <0x39>;
|
|
|
|
interrupt-parent = <&msmgpio>;
|
|
interrupts = <31 2>;
|
|
|
|
adi,dsi-lanes = <4>;
|
|
|
|
pd-gpios = <&msmgpio 32 0>;
|
|
|
|
avdd-supply = <&pm8916_l6>;
|
|
v1p2-supply = <&pm8916_l6>;
|
|
v3p3-supply = <&pm8916_l17>;
|
|
|
|
pinctrl-names = "default","sleep";
|
|
pinctrl-0 = <&adv7533_int_active &adv7533_switch_active>;
|
|
pinctrl-1 = <&adv7533_int_suspend &adv7533_switch_suspend>;
|
|
|
|
ports {
|
|
#address-cells = <1>;
|
|
#size-cells = <0>;
|
|
|
|
port@0 {
|
|
reg = <0>;
|
|
adv7533_in: endpoint {
|
|
remote-endpoint = <&dsi0_out>;
|
|
};
|
|
};
|
|
|
|
port@1 {
|
|
reg = <1>;
|
|
adv7533_out: endpoint {
|
|
remote-endpoint = <&hdmi_con>;
|
|
};
|
|
};
|
|
};
|
|
};
|
|
};
|
|
|
|
i2c@78ba000 {
|
|
/* On Low speed expansion */
|
|
label = "LS-I2C1";
|
|
status = "okay";
|
|
};
|
|
|
|
spi@78b7000 {
|
|
/* On High speed expansion */
|
|
label = "HS-SPI1";
|
|
status = "okay";
|
|
};
|
|
|
|
spi@78b9000 {
|
|
/* On Low speed expansion */
|
|
label = "LS-SPI0";
|
|
status = "okay";
|
|
};
|
|
|
|
leds {
|
|
pinctrl-names = "default";
|
|
pinctrl-0 = <&msmgpio_leds>,
|
|
<&pm8916_gpios_leds>,
|
|
<&pm8916_mpps_leds>;
|
|
|
|
compatible = "gpio-leds";
|
|
|
|
led@1 {
|
|
label = "apq8016-sbc:green:user1";
|
|
gpios = <&msmgpio 21 GPIO_ACTIVE_HIGH>;
|
|
linux,default-trigger = "heartbeat";
|
|
default-state = "off";
|
|
};
|
|
|
|
led@2 {
|
|
label = "apq8016-sbc:green:user2";
|
|
gpios = <&msmgpio 120 GPIO_ACTIVE_HIGH>;
|
|
linux,default-trigger = "mmc0";
|
|
default-state = "off";
|
|
};
|
|
|
|
led@3 {
|
|
label = "apq8016-sbc:green:user3";
|
|
gpios = <&pm8916_gpios 1 GPIO_ACTIVE_HIGH>;
|
|
linux,default-trigger = "mmc1";
|
|
default-state = "off";
|
|
};
|
|
|
|
led@4 {
|
|
label = "apq8016-sbc:green:user4";
|
|
gpios = <&pm8916_gpios 2 GPIO_ACTIVE_HIGH>;
|
|
linux,default-trigger = "none";
|
|
default-state = "off";
|
|
};
|
|
|
|
led@5 {
|
|
label = "apq8016-sbc:yellow:wlan";
|
|
gpios = <&pm8916_mpps 2 GPIO_ACTIVE_HIGH>;
|
|
linux,default-trigger = "wlan";
|
|
default-state = "off";
|
|
};
|
|
|
|
led@6 {
|
|
label = "apq8016-sbc:blue:bt";
|
|
gpios = <&pm8916_mpps 3 GPIO_ACTIVE_HIGH>;
|
|
linux,default-trigger = "bt";
|
|
default-state = "off";
|
|
};
|
|
};
|
|
|
|
sdhci@07824000 {
|
|
vmmc-supply = <&pm8916_l8>;
|
|
vqmmc-supply = <&pm8916_l5>;
|
|
|
|
pinctrl-names = "default", "sleep";
|
|
pinctrl-0 = <&sdc1_clk_on &sdc1_cmd_on &sdc1_data_on>;
|
|
pinctrl-1 = <&sdc1_clk_off &sdc1_cmd_off &sdc1_data_off>;
|
|
status = "okay";
|
|
};
|
|
|
|
sdhci@07864000 {
|
|
vmmc-supply = <&pm8916_l11>;
|
|
vqmmc-supply = <&pm8916_l12>;
|
|
|
|
pinctrl-names = "default", "sleep";
|
|
pinctrl-0 = <&sdc2_clk_on &sdc2_cmd_on &sdc2_data_on &sdc2_cd_on>;
|
|
pinctrl-1 = <&sdc2_clk_off &sdc2_cmd_off &sdc2_data_off &sdc2_cd_off>;
|
|
|
|
cd-gpios = <&msmgpio 38 0x1>;
|
|
status = "okay";
|
|
};
|
|
|
|
usb@78d9000 {
|
|
extcon = <&usb_id>, <&usb_id>;
|
|
status = "okay";
|
|
};
|
|
|
|
ehci@78d9000 {
|
|
status = "okay";
|
|
};
|
|
|
|
phy@78d9000 {
|
|
v1p8-supply = <&pm8916_l7>;
|
|
v3p3-supply = <&pm8916_l13>;
|
|
vddcx-supply = <&pm8916_s1>;
|
|
extcon = <&usb_id>, <&usb_id>;
|
|
dr_mode = "otg";
|
|
status = "okay";
|
|
switch-gpio = <&pm8916_gpios 4 GPIO_ACTIVE_HIGH>;
|
|
pinctrl-names = "default";
|
|
pinctrl-0 = <&usb_sw_sel_pm>;
|
|
};
|
|
|
|
lpass@07708000 {
|
|
status = "okay";
|
|
};
|
|
|
|
mdss@1a00000 {
|
|
status = "okay";
|
|
|
|
mdp@1a01000 {
|
|
status = "okay";
|
|
};
|
|
|
|
dsi@1a98000 {
|
|
status = "okay";
|
|
|
|
vdda-supply = <&pm8916_l2>;
|
|
vddio-supply = <&pm8916_l6>;
|
|
|
|
ports {
|
|
port@1 {
|
|
endpoint {
|
|
remote-endpoint = <&adv7533_in>;
|
|
data-lanes = <0 1 2 3>;
|
|
};
|
|
};
|
|
};
|
|
};
|
|
|
|
dsi-phy@1a98300 {
|
|
status = "okay";
|
|
|
|
vddio-supply = <&pm8916_l6>;
|
|
};
|
|
};
|
|
|
|
lpass_codec: codec{
|
|
status = "okay";
|
|
};
|
|
|
|
/*
|
|
Internal Codec
|
|
playback - Primary MI2S
|
|
capture - Ter MI2S
|
|
|
|
External Primary:
|
|
playback - secondary MI2S
|
|
capture - Quat MI2S
|
|
|
|
External Secondary:
|
|
playback - Quat MI2S
|
|
capture - Quat MI2S
|
|
|
|
*/
|
|
|
|
sound: sound {
|
|
compatible = "qcom,apq8016-sbc-sndcard";
|
|
reg = <0x07702000 0x4>, <0x07702004 0x4>;
|
|
reg-names = "mic-iomux", "spkr-iomux";
|
|
|
|
status = "okay";
|
|
pinctrl-0 = <&cdc_pdm_lines_act &ext_sec_tlmm_lines_act &ext_mclk_tlmm_lines_act>;
|
|
pinctrl-1 = <&cdc_pdm_lines_sus &ext_sec_tlmm_lines_sus &ext_mclk_tlmm_lines_sus>;
|
|
pinctrl-names = "default", "sleep";
|
|
qcom,model = "DB410c";
|
|
qcom,audio-routing =
|
|
"AMIC2", "MIC BIAS Internal2",
|
|
"AMIC3", "MIC BIAS External1";
|
|
|
|
internal-codec-playback-dai-link@0 { /* I2S - Internal codec */
|
|
link-name = "WCD";
|
|
cpu { /* PRIMARY */
|
|
sound-dai = <&lpass MI2S_PRIMARY>;
|
|
};
|
|
codec {
|
|
sound-dai = <&lpass_codec 0>, <&wcd_codec 0>;
|
|
};
|
|
};
|
|
|
|
internal-codec-capture-dai-link@0 { /* I2S - Internal codec */
|
|
link-name = "WCD-Capture";
|
|
cpu { /* PRIMARY */
|
|
sound-dai = <&lpass MI2S_TERTIARY>;
|
|
};
|
|
codec {
|
|
sound-dai = <&lpass_codec 1>, <&wcd_codec 1>;
|
|
};
|
|
};
|
|
};
|
|
};
|
|
|
|
usb2513 {
|
|
compatible = "smsc,usb3503";
|
|
reset-gpios = <&pm8916_gpios 3 GPIO_ACTIVE_LOW>;
|
|
initial-mode = <1>;
|
|
};
|
|
|
|
usb_id: usb-id {
|
|
compatible = "linux,extcon-usb-gpio";
|
|
id-gpio = <&msmgpio 121 GPIO_ACTIVE_HIGH>;
|
|
pinctrl-names = "default";
|
|
pinctrl-0 = <&usb_id_default>;
|
|
};
|
|
|
|
hdmi-out {
|
|
compatible = "hdmi-connector";
|
|
type = "a";
|
|
|
|
port {
|
|
hdmi_con: endpoint {
|
|
remote-endpoint = <&adv7533_out>;
|
|
};
|
|
};
|
|
};
|
|
};
|
|
|
|
&wcd_codec {
|
|
status = "okay";
|
|
clocks = <&gcc GCC_CODEC_DIGCODEC_CLK>;
|
|
clock-names = "mclk";
|
|
};
|
|
|
|
&smd_rpm_regulators {
|
|
vdd_l1_l2_l3-supply = <&pm8916_s3>;
|
|
vdd_l5-supply = <&pm8916_s3>;
|
|
vdd_l4_l5_l6-supply = <&pm8916_s4>;
|
|
vdd_l7-supply = <&pm8916_s4>;
|
|
|
|
s1 {
|
|
regulator-min-microvolt = <375000>;
|
|
regulator-max-microvolt = <1562000>;
|
|
};
|
|
|
|
s3 {
|
|
regulator-min-microvolt = <375000>;
|
|
regulator-max-microvolt = <1562000>;
|
|
};
|
|
|
|
s4 {
|
|
regulator-min-microvolt = <1800000>;
|
|
regulator-max-microvolt = <1800000>;
|
|
|
|
regulator-always-on;
|
|
regulator-boot-on;
|
|
};
|
|
|
|
l1 {
|
|
regulator-min-microvolt = <375000>;
|
|
regulator-max-microvolt = <1525000>;
|
|
};
|
|
|
|
l2 {
|
|
regulator-min-microvolt = <1200000>;
|
|
regulator-max-microvolt = <1200000>;
|
|
};
|
|
|
|
l3 {
|
|
regulator-min-microvolt = <375000>;
|
|
regulator-max-microvolt = <1525000>;
|
|
};
|
|
|
|
l4 {
|
|
regulator-min-microvolt = <1750000>;
|
|
regulator-max-microvolt = <3337000>;
|
|
};
|
|
|
|
l5 {
|
|
regulator-min-microvolt = <1750000>;
|
|
regulator-max-microvolt = <3337000>;
|
|
};
|
|
|
|
l6 {
|
|
regulator-min-microvolt = <1800000>;
|
|
regulator-max-microvolt = <1800000>;
|
|
};
|
|
|
|
l7 {
|
|
regulator-min-microvolt = <1750000>;
|
|
regulator-max-microvolt = <3337000>;
|
|
};
|
|
|
|
l8 {
|
|
regulator-min-microvolt = <1750000>;
|
|
regulator-max-microvolt = <3337000>;
|
|
};
|
|
|
|
l9 {
|
|
regulator-min-microvolt = <1750000>;
|
|
regulator-max-microvolt = <3337000>;
|
|
};
|
|
|
|
l10 {
|
|
regulator-min-microvolt = <1750000>;
|
|
regulator-max-microvolt = <3337000>;
|
|
};
|
|
|
|
l11 {
|
|
regulator-min-microvolt = <1750000>;
|
|
regulator-max-microvolt = <3337000>;
|
|
};
|
|
|
|
l12 {
|
|
regulator-min-microvolt = <1750000>;
|
|
regulator-max-microvolt = <3337000>;
|
|
};
|
|
|
|
l13 {
|
|
regulator-min-microvolt = <1750000>;
|
|
regulator-max-microvolt = <3337000>;
|
|
};
|
|
|
|
l14 {
|
|
regulator-min-microvolt = <1750000>;
|
|
regulator-max-microvolt = <3337000>;
|
|
};
|
|
|
|
/**
|
|
* 1.8v required on LS expansion
|
|
* for mezzanine boards
|
|
*/
|
|
l15 {
|
|
regulator-min-microvolt = <1750000>;
|
|
regulator-max-microvolt = <3337000>;
|
|
regulator-always-on;
|
|
};
|
|
|
|
l16 {
|
|
regulator-min-microvolt = <1750000>;
|
|
regulator-max-microvolt = <3337000>;
|
|
};
|
|
|
|
l17 {
|
|
regulator-min-microvolt = <3300000>;
|
|
regulator-max-microvolt = <3300000>;
|
|
};
|
|
|
|
l18 {
|
|
regulator-min-microvolt = <1750000>;
|
|
regulator-max-microvolt = <3337000>;
|
|
};
|
|
};
|