Training courses

Kernel and Embedded Linux

Bootlin training courses

Embedded Linux, kernel,
Yocto Project, Buildroot, real-time,
graphics, boot time, debugging...

Bootlin logo

Elixir Cross Referencer

// SPDX-License-Identifier: GPL-2.0-or-later
/*
 * Copyright 2013 Christian Hemp, Phytec Messtechnik GmbH
 */

#include <dt-bindings/sound/fsl-imx-audmux.h>

/ {
	chosen {
		stdout-path = &uart4;
	};

	regulators {
		sound_1v8: regulator@2 {
			compatible = "regulator-fixed";
			reg = <2>;
			regulator-name = "i2s-audio-1v8";
			regulator-min-microvolt = <1800000>;
			regulator-max-microvolt = <1800000>;
		};

		sound_3v3: regulator@3 {
			compatible = "regulator-fixed";
			reg = <3>;
			regulator-name = "i2s-audio-3v3";
			regulator-min-microvolt = <3300000>;
			regulator-max-microvolt = <3300000>;
		};
	};

	tlv320_mclk: oscillator {
		compatible = "fixed-clock";
		#clock-cells = <0>;
		clock-frequency = <19200000>;
		clock-output-names = "tlv320-mclk";
	};

	sound {
		compatible = "simple-audio-card";
		simple-audio-card,name = "OnboardTLV320AIC3007";
		simple-audio-card,format = "i2s";
		simple-audio-card,bitclock-master = <&dailink_master>;
		simple-audio-card,frame-master = <&dailink_master>;
		simple-audio-card,widgets =
			"Microphone", "Mic Jack",
			"Line", "Line In",
			"Line", "Line Out",
			"Speaker", "Speaker",
			"Headphone", "Headphone Jack";
		simple-audio-card,routing =
			"Line Out", "LLOUT",
			"Line Out", "RLOUT",
			"Speaker", "SPOP",
			"Speaker", "SPOM",
			"Headphone Jack", "HPLOUT",
			"Headphone Jack", "HPROUT",
			"MIC3L", "Mic Jack",
			"MIC3R", "Mic Jack",
			"Mic Jack", "Mic Bias",
			"LINE1L", "Line In",
			"LINE1R", "Line In";

		simple-audio-card,cpu {
			sound-dai = <&ssi2>;
		};

		dailink_master: simple-audio-card,codec {
			sound-dai = <&codec>;
			clocks = <&tlv320_mclk>;
		};
	};

};

&audmux {
	status = "okay";

	ssi2 {
		fsl,audmux-port = <1>;
		fsl,port-config = <
			(IMX_AUDMUX_V2_PTCR_TFSDIR |
			IMX_AUDMUX_V2_PTCR_TFSEL(4) |
			IMX_AUDMUX_V2_PTCR_TCLKDIR |
			IMX_AUDMUX_V2_PTCR_TCSEL(4))
			IMX_AUDMUX_V2_PDCR_RXDSEL(4)
		>;
	};

	pins5 {
		fsl,audmux-port = <4>;
		fsl,port-config = <
			0x00000000
			IMX_AUDMUX_V2_PDCR_RXDSEL(1)
		>;
	};
};

&can1 {
	status = "okay";
};

&fec {
	status = "okay";
};

&hdmi {
	status = "okay";
};

&i2c2 {
	status = "okay";

	codec: tlv320@18 {
		compatible = "ti,tlv320aic3007";
		#sound-dai-cells = <0>;
		reg = <0x18>;
		ai3x-micbias-vg = <2>;

		AVDD-supply = <&sound_3v3>;
		IOVDD-supply = <&sound_3v3>;
		DRVDD-supply = <&sound_3v3>;
		DVDD-supply = <&sound_1v8>;
	};

	stmpe@41 {
		compatible = "st,stmpe811";
		reg = <0x41>;
	};

	rtc@51 {
		compatible = "epson,rtc8564";
		reg = <0x51>;
	};

	adc@64 {
		compatible = "maxim,max1037";
		reg = <0x64>;
	};
};

&i2c3 {
	status = "okay";
};

&pcie {
	status = "okay";
};

&ssi2 {
	status = "okay";
};

&uart3 {
	status = "okay";
};

&uart4 {
	status = "okay";
};

&usbh1 {
	status = "okay";
};

&usbotg {
	status = "okay";
};

&usdhc2 {
	status = "okay";
};

&usdhc3 {
	status = "okay";
};