alistair23-linux/arch/arm/boot/dts/rk3288-veyron-analog-audio.dtsi
Heiko Stuebner 7a25d39657 ARM: dts: rockchip: rename i2s model for Veyron devices
Commit 6c42db30d8 introduced audio support based on alsa ucm profiles
taken from the ChromeOS userspace. Both in the kernel as well as alsa
they were named (and matched against) ROCKCHIP-I2S. Audio profiles are
very much board-specific and hogging the ROCKCHIP-I2S name would make
it harder for future boards and also is misleading.

For Veyron boards the audio setup is similar over all variants, so
VEYRON-I2S is a more suitable name. This rename also was merged into
the alsa ucm profile so both userspace and kernel match and the old
naming was never released in any alsa or kernel release.

Fixes: 6c42db30d8 ("ARM: dts: rockchip: Add shared file for audio on rk3288-veyron boards")
Signed-off-by: Heiko Stuebner <heiko@sntech.de>
2016-06-09 10:03:36 +02:00

102 lines
2.2 KiB
Plaintext

/*
* Google Veyron (and derivatives) fragment for the max98090 audio
* codec and analog headphone jack.
*
* Copyright 2016 Google, Inc
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 as
* published by the Free Software Foundation.
*/
/ {
sound {
compatible = "rockchip,rockchip-audio-max98090";
pinctrl-names = "default";
pinctrl-0 = <&mic_det>, <&hp_det>;
rockchip,model = "VEYRON-I2S";
rockchip,i2s-controller = <&i2s>;
rockchip,audio-codec = <&max98090>;
rockchip,hp-det-gpios = <&gpio6 5 GPIO_ACTIVE_HIGH>;
rockchip,mic-det-gpios = <&gpio6 11 GPIO_ACTIVE_LOW>;
rockchip,headset-codec = <&headsetcodec>;
};
};
&i2c2 {
max98090: max98090@10 {
compatible = "maxim,max98090";
reg = <0x10>;
interrupt-parent = <&gpio6>;
interrupts = <7 IRQ_TYPE_EDGE_FALLING>;
clock-names = "mclk";
clocks = <&cru SCLK_I2S0_OUT>;
pinctrl-names = "default";
pinctrl-0 = <&int_codec>;
};
};
&i2c4 {
headsetcodec: ts3a227e@3b {
compatible = "ti,ts3a227e";
reg = <0x3b>;
interrupt-parent = <&gpio0>;
interrupts = <3 IRQ_TYPE_LEVEL_LOW>;
pinctrl-names = "default";
pinctrl-0 = <&ts3a227e_int_l>;
ti,micbias = <7>; /* MICBIAS = 2.8V */
};
};
&i2s {
status = "okay";
};
&io_domains {
audio-supply = <&vcc18_codec>;
};
&rk808 {
vcc10-supply = <&vcc33_sys>;
regulators {
vcc18_codec: LDO_REG6 {
regulator-name = "vcc18_codec";
regulator-always-on;
regulator-boot-on;
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
regulator-state-mem {
regulator-off-in-suspend;
};
};
};
};
&pinctrl {
codec {
hp_det: hp-det {
rockchip,pins = <6 5 RK_FUNC_GPIO &pcfg_pull_up>;
};
/*
* HACK: We're going to _pull down_ this _active low_ interrupt
* so that it never fires. We don't need this interrupt because
* we've got a ts3a227e chip but the driver requires it.
*/
int_codec: int-codec {
rockchip,pins = <6 7 RK_FUNC_GPIO &pcfg_pull_down>;
};
mic_det: mic-det {
rockchip,pins = <6 11 RK_FUNC_GPIO &pcfg_pull_up>;
};
};
headset {
ts3a227e_int_l: ts3a227e-int-l {
rockchip,pins = <0 3 RK_FUNC_GPIO &pcfg_pull_up>;
};
};
};