am335x-bbb.dts 6.54 KB
/*
 * Copyright (C) 2012 Texas Instruments Incorporated - http://www.ti.com/
 *
 * 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.
 */
/dts-v1/;

#include "am33xx.dtsi"
#include "am335x-bbb-common.dtsi"
#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/pinctrl/am33xx.h>
#include <dt-bindings/pwm/pwm.h>
#include <dt-bindings/sound/ti-mcasp.h>

/ {
	model = "TI AM335x BBB";
	compatible = "ti,am335x-iemjoy", "ti,am33xx";
};

&ldo3_reg {
	regulator-min-microvolt = <1800000>;
	regulator-max-microvolt = <1800000>;
	regulator-always-on;
};

&mmc1 {
	vmmc-supply = <&vmmcsd_fixed>;
};

&mmc2 {
    vmmc-supply = <&vmmcsd_fixed>;
    pinctrl-names = "default";
    pinctrl-0 = <&emmc_pins>;
    bus-width = <8>;
    status = "okay";
    ti,non-removable;
    ti,vcc-aux-disable-is-sleep;
    keep-power-in-suspend;
};

&cpu0_opp_table {
	/*
	 * All PG 2.0 silicon may not support 1GHz but some of the early
	 * BeagleBone Blacks have PG 2.0 silicon which is guaranteed
	 * to support 1GHz OPP so enable it for PG 2.0 on this board.
	 */
	oppnitro@1000000000 {
		opp-supported-hw = <0x06 0x0100>;
	};
};

&am33xx_pinmux {

    mcasp0_pins: mcasp0_pins {
    pinctrl-single,pins = <
			AM33XX_IOPAD(0x99c, PIN_INPUT_PULLDOWN  | MUX_MODE2) /* mcasp0_axr2   */
			AM33XX_IOPAD(0x994, PIN_INPUT_PULLDOWN  | MUX_MODE0) /* mcasp0_fsx    */
			AM33XX_IOPAD(0x998, PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* mcasp0_axr0   */
			AM33XX_IOPAD(0x990, PIN_INPUT_PULLDOWN  | MUX_MODE0) /* mcasp0_aclkx  */
        >;
    };

    dcan1_pins_default: dcan1_pins_default {
        pinctrl-single,pins = < 
			AM33XX_IOPAD(0x980, PIN_OUTPUT | MUX_MODE2) /* dcan1_tx */
			AM33XX_IOPAD(0x984, PIN_INPUT  | MUX_MODE2) /* dcan1_rx */
        >;
    };  

    uart4_pins: pinmux_uart4_pins {
        pinctrl-single,pins = < 
			AM33XX_IOPAD(0x870, PIN_INPUT  | MUX_MODE6) /* uart4_rxd_mux2 */
			AM33XX_IOPAD(0x874, PIN_OUTPUT | MUX_MODE6) /* uart4_txd_mux2 */
        >;
    };  

	ehrpwm0_pins: pinmux_ehrpwm0_pins {
		pinctrl-single,pins = <
			AM33XX_IOPAD(0x950, PIN_OUTPUT | MUX_MODE3) /* ehrpwm0A */
			AM33XX_IOPAD(0x954, PIN_OUTPUT | MUX_MODE3) /* ehrpwm0B */
		>;
	};

    i2c1_pins: pinmux_i2c1_pins {
        pinctrl-single,pins = < 
            0x158 (PIN_INPUT_PULLUP    | MUX_MODE2)     /* spi0_d1.i2c1_sda */
            0x15c (PIN_INPUT_PULLUP    | MUX_MODE2)     /* spi0_cs0.i2c1_scl */
        >;
    };

	i2c2_pins: pinmux_i2c2_pins {
		pinctrl-single,pins = <
			0x178 (PIN_INPUT_PULLUP | MUX_MODE3)	/* uart1_ctsn.i2c2_sda */
			0x17c (PIN_INPUT_PULLUP | MUX_MODE3)	/* uart1_rtsn.i2c2_scl */
		>;
	};

};

&tscadc {
    status = "okay";
    tsc {
        ti,wires = <4>;
        ti,x-plate-resistance = <200>;
        ti,coordinate-readouts = <5>;
        ti,wire-config = <0x00 0x11 0x22 0x33>;
    };
};

&dcan1 {
    pinctrl-names = "default";
    pinctrl-0 = <&dcan1_pins_default>;
    status = "okay";
};

&uart4 {
    pinctrl-names = "default";
    pinctrl-0 = <&uart4_pins>;
    status = "okay";
};

&epwmss0 {
	status = "okay";
};

&ehrpwm0 {
	pinctrl-names = "default";
	pinctrl-0 = <&ehrpwm0_pins>;
	status = "okay";
};

&am33xx_pinmux {
	pinctrl-names = "default";
	pinctrl-0 = <&led_pins>;
	
	led_pins: pinmux_led_pins {
		pinctrl-single,pins = <

			AM33XX_IOPAD(0x890, PIN_OUTPUT | MUX_MODE7) /* gpio2_2 */
			AM33XX_IOPAD(0x894, PIN_OUTPUT | MUX_MODE7) /* gpio2_3 */
			AM33XX_IOPAD(0x898, PIN_OUTPUT | MUX_MODE7) /* gpio2_4  */
			AM33XX_IOPAD(0x89c, PIN_OUTPUT | MUX_MODE7) /* gpio2_5 */
		>;
	};			  
};

&i2c0 {
	pinctrl-names = "default";
	pinctrl-0 = <&i2c0_pins>;

	status = "okay";
	clock-frequency = <400000>;

	tps: tps@24 {
		reg = <0x24>;
	};

	baseboard_eeprom: baseboard_eeprom@50 {
		compatible = "at,24c256";
		reg = <0x50>;

		#address-cells = <1>;
		#size-cells = <1>;
		baseboard_data: baseboard_data@0 {
			reg = <0 0x100>;
		};
	};
};

&i2c1 {
    pinctrl-names = "default";
    pinctrl-0 = <&i2c1_pins>;

    status = "okay";
    clock-frequency = <100000>;

    wm8960: wm8960@1a {
        #sound-dai-cells = <0>;
        compatible = "wlf,wm8960";
        reg = <0x1a>;
        status = "okay";
    };

};

&mcasp0	{
	#sound-dai-cells = <0>;
	pinctrl-names = "default";
	pinctrl-0 = <&mcasp0_pins>;

	status = "okay";

	op-mode = <0>;	/* MCASP_IIS_MODE */
	tdm-slots = <2>;
	serial-dir = <	/* 0: INACTIVE, 1: TX, 2: RX (AR0=TX, AR2=RX) */
		1 0 2 0
	>;
	tx-num-evt = <32>;
	rx-num-evt = <32>;
};

&sgx {
	status = "okay";
};

&i2c2 {
	pinctrl-names = "default";
	pinctrl-0 = <&i2c2_pins>;

	status = "okay";
	clock-frequency = <100000>;

	tlv320aic3104: tlv320aic3104@18 {
		#sound-dai-cells = <0>;			   
		compatible = "ti,tlv320aic3104";
		reg = <0x18>;
		status = "okay";

		AVDD-supply  = <&ldo4_reg>;
		IOVDD-supply = <&ldo4_reg>;
		DRVDD-supply = <&ldo4_reg>;
		DVDD-supply  = <&ldo3_reg>;
	};

	cape_eeprom0: cape_eeprom0@54 {
		compatible = "at,24c256";
		reg = <0x54>;
		#address-cells = <1>;
		#size-cells = <1>;
		cape0_data: cape_data@0 {
			reg = <0 0x100>;
		};
	};

	cape_eeprom1: cape_eeprom1@55 {
		compatible = "at,24c256";
		reg = <0x55>;
		#address-cells = <1>;
		#size-cells = <1>;
		cape1_data: cape_data@0 {
			reg = <0 0x100>;
		};
	};

	cape_eeprom2: cape_eeprom2@56 {
		compatible = "at,24c256";
		reg = <0x56>;
		#address-cells = <1>;
		#size-cells = <1>;
		cape2_data: cape_data@0 {
			reg = <0 0x100>;
		};
	};

	cape_eeprom3: cape_eeprom3@57 {
		compatible = "at,24c256";
		reg = <0x57>;
		#address-cells = <1>;
		#size-cells = <1>;
		cape3_data: cape_data@0 {
			reg = <0 0x100>;
		};
	};
};


/ {
	clk_mcasp0_fixed: clk_mcasp0_fixed {
		#clock-cells = <0>;
		compatible = "fixed-clock";
		clock-frequency = <24576000>;
		//clock-frequency = <5000000>;
	};

	clk_mcasp0: clk_mcasp0 {
		#clock-cells = <0>;
		compatible = "gpio-gate-clock";
		clocks = <&clk_mcasp0_fixed>;
		enable-gpios = <&gpio1 27 0>; /* BeagleBone Black Clk enable on GPIO1_27 */
	};

	sound {
		compatible = "simple-audio-card";
		simple-audio-card,name = "wad-sound";
		simple-audio-card,widgets = 
			"Headphone", "External Speaker",
			"Headphone", "External Speaker";
		simple-audio-card,routing =
			"External Speaker", "HPLOUT",
			"External Speaker", "HPLCOM";
		simple-audio-card,format = "dsp_b";
		simple-audio-card,bitclock-master = <&sound_master>;
		simple-audio-card,frame-master = <&sound_master>;
		simple-audio-card,bitclock-inversion;

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

		sound_master: simple-audio-card,codec {
			sound-dai = <&tlv320aic3104>;
			clocks = <&clk_mcasp0>;
		};
	};
};