ARM: dts: rockchip: Add shared file for audio on rk3288-veyron boards
authorEnric Balletbo i Serra <enric.balletbo@collabora.com>
Mon, 9 May 2016 10:46:34 +0000 (12:46 +0200)
committerHeiko Stuebner <heiko@sntech.de>
Mon, 30 May 2016 07:42:35 +0000 (09:42 +0200)
Set i2s block to "okay", add sound node for max98090 with gpios for
HP and Mic detect and pinctrl, and add a max98090 device and ts3a227e to
the correct i2c bus.

Signed-off-by: Enric Balletbo i Serra <enric.balletbo@collabora.com>
Signed-off-by: Heiko Stuebner <heiko@sntech.de>
arch/arm/boot/dts/rk3288-veyron-analog-audio.dtsi [new file with mode: 0644]

diff --git a/arch/arm/boot/dts/rk3288-veyron-analog-audio.dtsi b/arch/arm/boot/dts/rk3288-veyron-analog-audio.dtsi
new file mode 100644 (file)
index 0000000..3d57c05
--- /dev/null
@@ -0,0 +1,101 @@
+/*
+ * 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 = "ROCKCHIP-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>;
+               };
+       };
+};
This page took 0.027523 seconds and 5 git commands to generate.