@@ -493,6 +493,20 @@ i2c@7000c000 {
status = "okay";
clock-frequency = <400000>;
+ /* Fortemedia FM34NE voice processor */
+ dsp@60 {
+ compatible = "asus,tf101-dsp", "fortemedia,fm34";
+ reg = <0x60>;
+
+ bypass-gpios = <&gpio TEGRA_GPIO(H, 3) GPIO_ACTIVE_HIGH>;
+ reset-gpios = <&gpio TEGRA_GPIO(H, 2) GPIO_ACTIVE_LOW>;
+
+ vdd-supply = <&vdd_1v8_sys>;
+
+ clocks = <&tegra_car TEGRA20_CLK_CDEV1>;
+ clock-names = "mclk";
+ };
+
/* Aichi AMI306 digital compass */
magnetometer@e {
compatible = "asahi-kasei,ak8974";
@@ -60,6 +60,25 @@ bluetooth {
};
};
+ i2c@7000c000 {
+ /* Fortemedia FM34NE voice processor */
+ dsp@60 {
+ compatible = "asus,tf201-dsp", "fortemedia,fm34";
+ reg = <0x60>;
+
+ bypass-gpios = <&gpio TEGRA_GPIO(BB, 6) GPIO_ACTIVE_HIGH>;
+ reset-gpios = <&gpio TEGRA_GPIO(O, 3) GPIO_ACTIVE_LOW>;
+
+ vdd-supply = <&vdd_1v8_dsp>;
+
+ clocks = <&tegra_pmc TEGRA_PMC_CLK_OUT_1>;
+ clock-names = "mclk";
+
+ assigned-clocks = <&tegra_pmc TEGRA_PMC_CLK_OUT_1>;
+ assigned-clock-parents = <&tegra_car TEGRA30_CLK_EXTERN1>;
+ };
+ };
+
i2c@7000c400 {
/* Atmel MXT768E touchscreen */
touchscreen@4d {
@@ -606,6 +625,16 @@ haptic-feedback {
vcc-supply = <&vdd_3v3_sys>;
};
+ vdd_1v8_dsp: regulator-dsp {
+ compatible = "regulator-fixed";
+ regulator-name = "vdd_1v8_dsp";
+ regulator-min-microvolt = <1800000>;
+ regulator-max-microvolt = <1800000>;
+ gpio = <&gpio TEGRA_GPIO(U, 5) GPIO_ACTIVE_HIGH>;
+ enable-active-high;
+ vin-supply = <&vdd_1v8_vio>;
+ };
+
sound {
compatible = "asus,tegra-audio-rt5631-tf201",
"nvidia,tegra-audio-rt5631";
@@ -68,6 +68,25 @@ bluetooth {
};
};
+ i2c@7000c000 {
+ /* Fortemedia FM34NE voice processor */
+ dsp@60 {
+ compatible = "asus,tf300t-dsp", "fortemedia,fm34";
+ reg = <0x60>;
+
+ bypass-gpios = <&gpio TEGRA_GPIO(BB, 6) GPIO_ACTIVE_HIGH>;
+ reset-gpios = <&gpio TEGRA_GPIO(O, 3) GPIO_ACTIVE_LOW>;
+
+ vdd-supply = <&vdd_1v8_dsp>;
+
+ clocks = <&tegra_pmc TEGRA_PMC_CLK_OUT_1>;
+ clock-names = "mclk";
+
+ assigned-clocks = <&tegra_pmc TEGRA_PMC_CLK_OUT_1>;
+ assigned-clock-parents = <&tegra_car TEGRA30_CLK_EXTERN1>;
+ };
+ };
+
i2c@7000c400 {
/* Elantech EKTH1036 touchscreen */
touchscreen@10 {
@@ -999,6 +1018,16 @@ display-panel {
compatible = "innolux,g101ice-l01";
};
+ vdd_1v8_dsp: regulator-dsp {
+ compatible = "regulator-fixed";
+ regulator-name = "vdd_1v8_dsp";
+ regulator-min-microvolt = <1800000>;
+ regulator-max-microvolt = <1800000>;
+ gpio = <&gpio TEGRA_GPIO(P, 3) GPIO_ACTIVE_HIGH>;
+ enable-active-high;
+ vin-supply = <&vdd_1v8_vio>;
+ };
+
sound {
compatible = "asus,tegra-audio-wm8903-tf300t",
"nvidia,tegra-audio-wm8903";
@@ -164,6 +164,25 @@ bluetooth {
};
};
+ i2c@7000c000 {
+ /* Fortemedia FM34NE voice processor */
+ dsp@60 {
+ compatible = "asus,tf300t-dsp", "fortemedia,fm34";
+ reg = <0x60>;
+
+ bypass-gpios = <&gpio TEGRA_GPIO(BB, 6) GPIO_ACTIVE_HIGH>;
+ reset-gpios = <&gpio TEGRA_GPIO(O, 3) GPIO_ACTIVE_LOW>;
+
+ vdd-supply = <&vdd_1v8_vio>;
+
+ clocks = <&tegra_pmc TEGRA_PMC_CLK_OUT_1>;
+ clock-names = "mclk";
+
+ assigned-clocks = <&tegra_pmc TEGRA_PMC_CLK_OUT_1>;
+ assigned-clock-parents = <&tegra_car TEGRA30_CLK_EXTERN1>;
+ };
+ };
+
i2c@7000c400 {
/* Elantech EKTH1036 touchscreen */
touchscreen@10 {
@@ -85,6 +85,25 @@ bluetooth {
};
};
+ i2c@7000c000 {
+ /* Fortemedia FM34NE voice processor */
+ dsp@60 {
+ compatible = "asus,tf700t-dsp", "fortemedia,fm34";
+ reg = <0x60>;
+
+ bypass-gpios = <&gpio TEGRA_GPIO(BB, 6) GPIO_ACTIVE_HIGH>;
+ reset-gpios = <&gpio TEGRA_GPIO(O, 3) GPIO_ACTIVE_LOW>;
+
+ vdd-supply = <&vdd_1v8_vio>;
+
+ clocks = <&tegra_pmc TEGRA_PMC_CLK_OUT_1>;
+ clock-names = "mclk";
+
+ assigned-clocks = <&tegra_pmc TEGRA_PMC_CLK_OUT_1>;
+ assigned-clock-parents = <&tegra_car TEGRA30_CLK_EXTERN1>;
+ };
+ };
+
i2c@7000c400 {
/* Elantech ELAN-3024-7053 or 5184N FPC-1 REV: 2/3 touchscreen */
touchscreen@10 {
@@ -1145,6 +1145,23 @@ lcd_ddc: i2c@7000c000 {
status = "okay";
clock-frequency = <400000>;
+ /* Fortemedia FM34NE voice processor */
+ dsp@60 {
+ compatible = "pegatron,chagall-dsp", "fortemedia,fm34";
+ reg = <0x60>;
+
+ bypass-gpios = <&gpio TEGRA_GPIO(N, 3) GPIO_ACTIVE_HIGH>;
+ reset-gpios = <&gpio TEGRA_GPIO(N, 0) GPIO_ACTIVE_LOW>;
+
+ vdd-supply = <&vdd_1v8_dsp>;
+
+ clocks = <&tegra_pmc TEGRA_PMC_CLK_OUT_1>;
+ clock-names = "mclk";
+
+ assigned-clocks = <&tegra_pmc TEGRA_PMC_CLK_OUT_1>;
+ assigned-clock-parents = <&tegra_car TEGRA30_CLK_EXTERN1>;
+ };
+
/* Wolfson Microelectronics WM8903 audio codec */
wm8903: audio-codec@1a {
compatible = "wlf,wm8903";
@@ -1500,6 +1517,16 @@ vdd_vbus_usb3: regulator-usb3 {
vin-supply = <&vdd_5v0_sys>;
};
+ vdd_1v8_dsp: regulator-dsp {
+ compatible = "regulator-fixed";
+ regulator-name = "vdd_1v8_dsp";
+ regulator-min-microvolt = <1800000>;
+ regulator-max-microvolt = <1800000>;
+ gpio = <&gpio TEGRA_GPIO(N, 1) GPIO_ACTIVE_HIGH>;
+ enable-active-high;
+ vin-supply = <&vdd_1v8_vio>;
+ };
+
pmc@7000e400 {
status = "okay";
nvidia,invert-interrupt;
FM34NE is mandatory for correct sound work on ASUS Transformers. Signed-off-by: Svyatoslav Ryhel <clamor95@gmail.com> --- arch/arm/boot/dts/tegra20-asus-tf101.dts | 14 +++++++++ arch/arm/boot/dts/tegra30-asus-tf201.dts | 29 +++++++++++++++++++ arch/arm/boot/dts/tegra30-asus-tf300t.dts | 29 +++++++++++++++++++ arch/arm/boot/dts/tegra30-asus-tf300tg.dts | 19 ++++++++++++ arch/arm/boot/dts/tegra30-asus-tf700t.dts | 19 ++++++++++++ .../arm/boot/dts/tegra30-pegatron-chagall.dts | 27 +++++++++++++++++ 6 files changed, 137 insertions(+)