| /* | 
 |  * 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>; | 
 | 		}; | 
 | 	}; | 
 | }; |