1/* 2 * Google Veyron (and derivatives) fragment for the max98090 audio 3 * codec and analog headphone jack. 4 * 5 * Copyright 2016 Google, Inc 6 * 7 * This program is free software; you can redistribute it and/or modify 8 * it under the terms of the GNU General Public License version 2 as 9 * published by the Free Software Foundation. 10 */ 11 12/ { 13 sound { 14 compatible = "rockchip,rockchip-audio-max98090"; 15 pinctrl-names = "default"; 16 pinctrl-0 = <&mic_det>, <&hp_det>; 17 rockchip,model = "VEYRON-I2S"; 18 rockchip,i2s-controller = <&i2s>; 19 rockchip,audio-codec = <&max98090>; 20 rockchip,hp-det-gpios = <&gpio6 5 GPIO_ACTIVE_HIGH>; 21 rockchip,mic-det-gpios = <&gpio6 11 GPIO_ACTIVE_LOW>; 22 rockchip,headset-codec = <&headsetcodec>; 23 }; 24}; 25 26&i2c2 { 27 max98090: max98090@10 { 28 compatible = "maxim,max98090"; 29 reg = <0x10>; 30 interrupt-parent = <&gpio6>; 31 interrupts = <7 IRQ_TYPE_EDGE_FALLING>; 32 clock-names = "mclk"; 33 clocks = <&cru SCLK_I2S0_OUT>; 34 pinctrl-names = "default"; 35 pinctrl-0 = <&int_codec>; 36 }; 37}; 38 39&i2c4 { 40 headsetcodec: ts3a227e@3b { 41 compatible = "ti,ts3a227e"; 42 reg = <0x3b>; 43 interrupt-parent = <&gpio0>; 44 interrupts = <3 IRQ_TYPE_LEVEL_LOW>; 45 pinctrl-names = "default"; 46 pinctrl-0 = <&ts3a227e_int_l>; 47 ti,micbias = <7>; /* MICBIAS = 2.8V */ 48 }; 49}; 50 51&i2s { 52 status = "okay"; 53}; 54 55&io_domains { 56 audio-supply = <&vcc18_codec>; 57}; 58 59&rk808 { 60 vcc10-supply = <&vcc33_sys>; 61 62 regulators { 63 vcc18_codec: LDO_REG6 { 64 regulator-name = "vcc18_codec"; 65 regulator-always-on; 66 regulator-boot-on; 67 regulator-min-microvolt = <1800000>; 68 regulator-max-microvolt = <1800000>; 69 regulator-state-mem { 70 regulator-off-in-suspend; 71 }; 72 }; 73 }; 74}; 75 76&pinctrl { 77 codec { 78 hp_det: hp-det { 79 rockchip,pins = <6 5 RK_FUNC_GPIO &pcfg_pull_up>; 80 }; 81 82 /* 83 * HACK: We're going to _pull down_ this _active low_ interrupt 84 * so that it never fires. We don't need this interrupt because 85 * we've got a ts3a227e chip but the driver requires it. 86 */ 87 int_codec: int-codec { 88 rockchip,pins = <6 7 RK_FUNC_GPIO &pcfg_pull_down>; 89 }; 90 91 mic_det: mic-det { 92 rockchip,pins = <6 11 RK_FUNC_GPIO &pcfg_pull_up>; 93 }; 94 }; 95 96 headset { 97 ts3a227e_int_l: ts3a227e-int-l { 98 rockchip,pins = <0 3 RK_FUNC_GPIO &pcfg_pull_up>; 99 }; 100 }; 101}; 102