This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

Linux/AM3359: How to enable the touch screen in beaglebone black using device tree?

Part Number: AM3359


Tool/software: Linux

Hello, I want to use the touch screen in beaglebone black.

So, i change my am335x-boneblack.dts file but the touch screen did not work.

How do I configure my dts file?

I use the beagleboneblack and my linux version is 4.4.32-gadde2ca9f8. Plus, My LCD is 4DCAPE-43t
my device tree file is attached below.

Regards,

boo

/*
 * 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-bone-common.dtsi"
#include <dt-bindings/display/tda998x.h>

/ {
	model = "TI AM335x BeagleBone Black";
	compatible = "ti,am335x-bone-black", "ti,am335x-bone", "ti,am33xx";
	
	backlight {
		compatible      = "pwm-backlight";
		pinctrl-names   = "default";
		pinctrl-0       = <&pwm_bl_pins>;
		status = "okay";
		pwms = <&ehrpwm1 0 500000 0>;
		pwm-names = "LCD7";
		brightness-levels = <0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100>;
		default-brightness-level = <101>; /* index to the array above */
	};
	
};

&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";
};

&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 {
	uart1_pins: pinmux_uart1_pins {
		pinctrl-single,pins = <
			0x180 (PIN_INPUT_PULLUP | MUX_MODE0)	/* uart1_rxd.uart1_rxd */
			0x184 (PIN_OUTPUT_PULLDOWN | MUX_MODE0)	/* uart1_txd.uart1_txd */
		>;
	};
	lcd_pins_default: lcd_pins_default {
		pinctrl-single,pins = <
			0xa0 0x00		/* lcd_data0.lcd_data0, OUTPUT | MODE0 */
			0xa4 0x00		/* lcd_data1.lcd_data1, OUTPUT | MODE0 */
			0xa8 0x00		/* lcd_data2.lcd_data2, OUTPUT | MODE0 */
			0xac 0x00		/* lcd_data3.lcd_data3, OUTPUT | MODE0 */
			0xb0 0x00		/* lcd_data4.lcd_data4, OUTPUT | MODE0 */
			0xb4 0x00		/* lcd_data5.lcd_data5, OUTPUT | MODE0 */
			0xb8 0x00		/* lcd_data6.lcd_data6, OUTPUT | MODE0 */
			0xbc 0x00		/* lcd_data7.lcd_data7, OUTPUT | MODE0 */
			0xc0 0x00		/* lcd_data8.lcd_data8, OUTPUT | MODE0 */
			0xc4 0x00		/* lcd_data9.lcd_data9, OUTPUT | MODE0 */
			0xc8 0x00		/* lcd_data10.lcd_data10, OUTPUT | MODE0 */
			0xcc 0x00		/* lcd_data11.lcd_data11, OUTPUT | MODE0 */
			0xd0 0x00		/* lcd_data12.lcd_data12, OUTPUT | MODE0 */
			0xd4 0x00		/* lcd_data13.lcd_data13, OUTPUT | MODE0 */
			0xd8 0x00		/* lcd_data14.lcd_data14, OUTPUT | MODE0 */
			0xdc 0x00		/* lcd_data15.lcd_data15, OUTPUT | MODE0 */
			0xe0 0x00		/* lcd_vsync.lcd_vsync, OUTPUT | MODE0 */
			0xe4 0x00		/* lcd_hsync.lcd_hsync, OUTPUT | MODE0 */
			0xe8 0x00		/* lcd_pclk.lcd_pclk, OUTPUT | MODE0 */
			0xec 0x00		/* lcd_ac_bias_en.lcd_ac_bias_en, OUTPUT | MODE0 */
		>;
	};

	nxp_hdmi_bonelt_pins: nxp_hdmi_bonelt_pins {
		pinctrl-single,pins = <
			0x1b0 0x03      /* xdma_event_intr0, OMAP_MUX_MODE3 | AM33XX_PIN_OUTPUT */
			0xa0 0x08       /* lcd_data0.lcd_data0, OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT | AM33XX_PULL_DISA */
			0xa4 0x08       /* lcd_data1.lcd_data1, OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT | AM33XX_PULL_DISA */
			0xa8 0x08       /* lcd_data2.lcd_data2, OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT | AM33XX_PULL_DISA */
			0xac 0x08       /* lcd_data3.lcd_data3, OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT | AM33XX_PULL_DISA */
			0xb0 0x08       /* lcd_data4.lcd_data4, OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT | AM33XX_PULL_DISA */
			0xb4 0x08       /* lcd_data5.lcd_data5, OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT | AM33XX_PULL_DISA */
			0xb8 0x08       /* lcd_data6.lcd_data6, OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT | AM33XX_PULL_DISA */
			0xbc 0x08       /* lcd_data7.lcd_data7, OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT | AM33XX_PULL_DISA */
			0xc0 0x08       /* lcd_data8.lcd_data8, OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT | AM33XX_PULL_DISA */
			0xc4 0x08       /* lcd_data9.lcd_data9, OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT | AM33XX_PULL_DISA */
			0xc8 0x08       /* lcd_data10.lcd_data10, OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT | AM33XX_PULL_DISA */
			0xcc 0x08       /* lcd_data11.lcd_data11, OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT | AM33XX_PULL_DISA */
			0xd0 0x08       /* lcd_data12.lcd_data12, OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT | AM33XX_PULL_DISA */
			0xd4 0x08       /* lcd_data13.lcd_data13, OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT | AM33XX_PULL_DISA */
			0xd8 0x08       /* lcd_data14.lcd_data14, OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT | AM33XX_PULL_DISA */
			0xdc 0x08       /* lcd_data15.lcd_data15, OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT | AM33XX_PULL_DISA */
			0xe0 0x00       /* lcd_vsync.lcd_vsync, OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT */
			0xe4 0x00       /* lcd_hsync.lcd_hsync, OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT */
			0xe8 0x00       /* lcd_pclk.lcd_pclk, OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT */
			0xec 0x00       /* lcd_ac_bias_en.lcd_ac_bias_en, OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT */
		>;
	};
	nxp_hdmi_bonelt_off_pins: nxp_hdmi_bonelt_off_pins {
		pinctrl-single,pins = <
			0x1b0 0x03      /* xdma_event_intr0, OMAP_MUX_MODE3 | AM33XX_PIN_OUTPUT */
		>;
	};

	mcasp0_pins: mcasp0_pins {
		pinctrl-single,pins = <
			AM33XX_IOPAD(0x9ac, PIN_INPUT_PULLUP | MUX_MODE0) /* mcasp0_ahcklx.mcasp0_ahclkx */
			AM33XX_IOPAD(0x99c, PIN_OUTPUT_PULLDOWN | MUX_MODE2) /* mcasp0_ahclkr.mcasp0_axr2*/
			AM33XX_IOPAD(0x994, PIN_OUTPUT_PULLUP | MUX_MODE0) /* mcasp0_fsx.mcasp0_fsx */
			AM33XX_IOPAD(0x990, PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* mcasp0_aclkx.mcasp0_aclkx */
			AM33XX_IOPAD(0x86c, PIN_OUTPUT_PULLDOWN | MUX_MODE7) /* gpmc_a11.GPIO1_27 */
		>;
	};
	panel {
                compatible = "ti,tilcdc,panel";
                status = "okay";
                pinctrl-names = "default";
                pinctrl-0 = <&lcd_pins_default>;
                panel-info {
                        ac-bias           = <255>;
                        ac-bias-intrpt    = <0>;
                        dma-burst-sz      = <16>;
                        bpp               = <16>;
                        fdd               = <0x80>;
                        sync-edge         = <0>;
                        sync-ctrl         = <1>;
                        raster-order      = <0>;
                        fifo-th           = <0>;
			tft-alt-mode      = <0>;
			stn-565-mode      = <0>;
			mono-8bit-mode    = <0>;
                };

                display-timings {
                        800x480p62 {
                                clock-frequency = <30000000>;
                                hactive = <800>;
                                vactive = <480>;
                                hfront-porch = <40>;
                                hback-porch = <40>;
                                hsync-len = <48>;
                                vback-porch = <30>;
                                vfront-porch = <13>;
                                vsync-len = <3>;
                                hsync-active = <0>;
                                vsync-active = <0>;
                        };
                };
        };

};

&uart1 {
	pinctrl-names = "default";
	pinctrl-0 = <&uart1_pins>;

	status = "okay";
};

&epwmss1 {
	status = "okay";

};

&lcdc {
	status = "okay";

	/* If you want to get 24 bit RGB and 16 BGR mode instead of
	 * current 16 bit RGB and 24 BGR modes, set the propety
	 * below to "crossed" and uncomment the video-ports -property
	 * in tda19988 node.
	 */
	blue-and-red-wiring = "straight";

	port {
		lcdc_0: endpoint@0 {
			remote-endpoint = <&hdmi_0>;
		};
	};
};

&i2c0 {
	tda19988: tda19988 {
		compatible = "nxp,tda998x";
		reg = <0x70>;

		pinctrl-names = "default", "off";
		pinctrl-0 = <&nxp_hdmi_bonelt_pins>;
		pinctrl-1 = <&nxp_hdmi_bonelt_off_pins>;

		/* Convert 24bit BGR to RGB, e.g. cross red and blue wiring */
		/* video-ports = <0x234501>; */

		#sound-dai-cells = <0>;
		audio-ports = <	AFMT_I2S	0x03>;

		ports {
			port@0 {
				hdmi_0: endpoint@0 {
					remote-endpoint = <&lcdc_0>;
				};
			};
		};
	};
};

&rtc {
	system-power-controller;
};

&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 */
			0 0 1 0
		>;
	tx-num-evt = <32>;
	rx-num-evt = <32>;
};


&sgx {
	status = "okay";
};

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

	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 = "TI BeagleBone Black";
		simple-audio-card,format = "i2s";
		simple-audio-card,bitclock-master = <&dailink0_master>;
		simple-audio-card,frame-master = <&dailink0_master>;

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

		simple-audio-card,codec {
			sound-dai = <&tda19988>;
		};
	};
	ecap0_pins_default: backlight_pins {
		pinctrl-single,pins = <
			0x164 0x0       /* eCAP0_in_PWM0_out.eCAP0_in_PWM0_out MODE0 */
		>;
	};

	pwm_bl_pins: pinmux_pwm_bl_pins {
		pinctrl-single,pins = <
			0x48 0x06       /* gpmc_a2.ehrpwm1a, OMAP_MUX_MODE6 | AM33XX_PIN_OUTPUT */
		>;
	};

};
&lcdc {
	pinctrl-names = "default";
	pinctrl-0 = <&lcd_pins_default>;
	status = "okay";
	display-timings {
		 800x480p62 {
			clock-frequency = <30000000>;
			hactive = <800>;
			vactive = <480>;
			hfront-porch = <39>;
			hback-porch = <39>;
			hsync-len = <47>;
			vback-porch = <29>;
			vfront-porch = <13>;
			vsync-len = <2>;
			hsync-active = <0>;
			vsync-active = <0>;
			bpp = <16>;
		};
	};
};

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

        adc {
                ti,adc-channels = <4 5 6 7>;
        };
};

  • Hi,

    At first glance the dts file seems ok. Can you check if the LCDC drivers are included in your defconfig file?

    Best Regards,
    Yordan
  • Hi, Yordan

    how i can check lcdc driver included in my defconfig file?
    Should I check the "tisdk_am335x_evm_deconfig" file?
    if so, which part should I check?

    this is the console message when i enter "lsmod" in my board.
    Regards,
    boo

    root@am335x-evm:~# lsmod
    Module Size Used by
    bc_example 7250 0
    sha512_generic 9903 0
    sha512_arm 12079 0
    drbg 13425 1
    des_generic 17736 0
    cbc 2324 0
    xfrm_user 22350 2
    xfrm4_tunnel 2040 0
    ipcomp 2257 0
    xfrm_ipcomp 4183 1 ipcomp
    esp4 6466 0
    ah4 5627 0
    bluetooth 326657 2
    af_key 26150 0
    xfrm_algo 6970 5 ah4,esp4,af_key,xfrm_user,xfrm_ipcomp
    usb_f_acm 5404 1
    u_serial 11427 3 usb_f_acm
    usb_f_ecm 6620 1
    g_multi 6330 0
    usb_f_mass_storage 37660 2 g_multi
    usb_f_rndis 15406 2 g_multi
    u_ether 13449 3 usb_f_ecm,usb_f_rndis,g_multi
    libcomposite 44072 5 usb_f_acm,usb_f_ecm,usb_f_rndis,g_multi,usb_f_mass_storage
    configfs 26405 6 usb_f_acm,usb_f_ecm,usb_f_rndis,libcomposite,usb_f_mass_storage
    rpmsg_pru 4958 0
    virtio_rpmsg_bus 12340 1 rpmsg_pru
    musb_dsps 8235 0
    musb_hdrc 71102 1 musb_dsps
    udc_core 12063 2 musb_hdrc,libcomposite
    usbcore 194695 1 musb_hdrc
    ti_am335x_adc 5655 0
    kfifo_buf 3163 1 ti_am335x_adc
    snd_soc_simple_card 7712 0
    pm33xx 5577 0
    wkup_m3_ipc 8150 1 pm33xx
    pru_rproc 11796 2
    pruss_intc 7163 3 pru_rproc
    ecb 1909 0
    sha256_generic 9503 1
    hmac 2735 1
    ti_emif_sram 6242 1 pm33xx
    md5 1897 0
    wkup_m3_rproc 3669 1
    sha1_generic 2621 0
    sha1_arm_neon 6261 0
    sha1_arm 3862 1 sha1_arm_neon
    pvrsrvkm 406903 1 bc_example
    pruss 10892 1 pru_rproc
    remoteproc 26773 4 pruss,wkup_m3_rproc,pru_rproc,wkup_m3_ipc
    omap_aes_driver 19488 0
    virtio 7614 2 remoteproc,virtio_rpmsg_bus
    virtio_ring 12163 2 remoteproc,virtio_rpmsg_bus
    omap_sham 21513 0
    omap_rng 4759 0
    rng_core 7538 1 omap_rng
    musb_am335x 1426 0
    ti_am335x_tsc 5901 0
    rtc_omap 8272 1
    omap_wdt 4634 0
    ti_am335x_tscadc 6098 2 ti_am335x_adc,ti_am335x_tsc
    sch_fq_codel 8161 3
    cryptodev 38007 1
  • i resolved and my 4dcape-43t is work well.
    it is my device tree file.

    /*
    * 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-bone-common.dtsi"
    #include <dt-bindings/display/tda998x.h>

    / {
    model = "TI AM335x BeagleBone Black";
    compatible = "ti,am335x-bone-black", "ti,am335x-bone", "ti,am33xx";

    backlight {
    compatible = "pwm-backlight";
    pwms = <&ehrpwm1 0 500000 0>;
    brightness-levels = <0 58 61 66 75 90 125 170 255>;
    default-brightness-level = <8>;
    };

    panel {
    compatible = "ti,tilcdc,panel";
    pinctrl-names = "default";
    pinctrl-0 = <&lcd_pins_default>;
    status = "okay";
    panel-info {
    ac-bias = <255>;
    ac-bias-intrpt = <0>;
    dma-burst-sz = <16>;
    bpp = <16>;
    fdd = <0x80>;
    sync-edge = <0>;
    sync-ctrl = <1>;
    raster-order = <0>;
    fifo-th = <0>;
    };
    display-timings {
    480x272 {
    hactive = <480>;
    vactive = <272>;
    hback-porch = <47>;
    hfront-porch = <8>;
    hsync-len = <41>;
    vback-porch = <2>;
    vfront-porch = <3>;
    vsync-len = <10>;
    clock-frequency = <9200000>;
    hsync-active = <0>;
    vsync-active = <0>;
    };
    };
    };
    gpio_keys {
    compatible = "gpio-keys";
    pinctrl-names = "default";
    pinctrl-0 = <&bone_lcd7_cape_keys_pins_default>;

    #address-cells = <1>;
    #size-cells = <0>;

    button@1 {
    debounce_interval = <50>;
    linux,code = <105>;
    label = "left";
    gpios = <&gpio1 16 0x1>;
    gpio-key,wakeup;
    autorepeat;
    };
    button@2 {
    debounce_interval = <50>;
    linux,code = <106>;
    label = "right";
    gpios = <&gpio1 17 0x1>;
    gpio-key,wakeup;
    autorepeat;
    };
    button@3 {
    debounce_interval = <50>;
    linux,code = <103>;
    label = "up";
    gpios = <&gpio1 19 0x1>;
    gpio-key,wakeup;
    autorepeat;
    };
    button@4 {
    debounce_interval = <50>;
    linux,code = <108>;
    label = "down";
    gpios = <&gpio3 16 0x1>;
    gpio-key,wakeup;
    autorepeat;
    };
    button@5 {
    debounce_interval = <50>;
    linux,code = <28>;
    label = "enter";
    gpios = <&gpio0 3 0x1>;
    gpio-key,wakeup;
    };
    };
    };

    &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";
    };

    &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 {
    uart1_pins: pinmux_uart1_pins {
    pinctrl-single,pins = <
    0x180 (PIN_INPUT_PULLUP | MUX_MODE0) /* uart1_rxd.uart1_rxd */
    0x184 (PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* uart1_txd.uart1_txd */
    >;
    };

    lcd_pins_default: lcd_pins_default {
    pinctrl-single,pins = <
    0xa0 (PIN_OUTPUT | MUX_MODE0) /* lcd_data0.lcd_data0 */
    0xa4 (PIN_OUTPUT | MUX_MODE0) /* lcd_data1.lcd_data1 */
    0xa8 (PIN_OUTPUT | MUX_MODE0) /* lcd_data2.lcd_data2 */
    0xac (PIN_OUTPUT | MUX_MODE0) /* lcd_data3.lcd_data3 */
    0xb0 (PIN_OUTPUT | MUX_MODE0) /* lcd_data4.lcd_data4 */
    0xb4 (PIN_OUTPUT | MUX_MODE0) /* lcd_data5.lcd_data5 */
    0xb8 (PIN_OUTPUT | MUX_MODE0) /* lcd_data6.lcd_data6 */
    0xbc (PIN_OUTPUT | MUX_MODE0) /* lcd_data7.lcd_data7 */
    0xc0 (PIN_OUTPUT | MUX_MODE0) /* lcd_data8.lcd_data8 */
    0xc4 (PIN_OUTPUT | MUX_MODE0) /* lcd_data9.lcd_data9 */
    0xc8 (PIN_OUTPUT | MUX_MODE0) /* lcd_data10.lcd_data10 */
    0xcc (PIN_OUTPUT | MUX_MODE0) /* lcd_data11.lcd_data11 */
    0xd0 (PIN_OUTPUT | MUX_MODE0) /* lcd_data12.lcd_data12 */
    0xd4 (PIN_OUTPUT | MUX_MODE0) /* lcd_data13.lcd_data13 */
    0xd8 (PIN_OUTPUT | MUX_MODE0) /* lcd_data14.lcd_data14 */
    0xdc (PIN_OUTPUT | MUX_MODE0) /* lcd_data15.lcd_data15 */
    0xe0 (PIN_OUTPUT | MUX_MODE0) /* lcd_vsync.lcd_vsync */
    0xe4 (PIN_OUTPUT | MUX_MODE0) /* lcd_hsync.lcd_hsync */
    0xe8 (PIN_OUTPUT | MUX_MODE0) /* lcd_pclk.lcd_pclk */
    0xec (PIN_OUTPUT | MUX_MODE0) /* lcd_ac_bias_en.lcd_ac_bias_en */
    0x1a4 (PIN_OUTPUT_PULLUP | MUX_MODE7) /* mcasp0_fsr.gpio3[19] (lcd_disen) */
    >;
    };
    lcd_pins_sleep: lcd_pins_sleep {
    pinctrl-single,pins = <
    0xa0 (PULL_DISABLE | MUX_MODE7) /* lcd_data0.lcd_data0 */
    0xa4 (PULL_DISABLE | MUX_MODE7) /* lcd_data1.lcd_data1 */
    0xa8 (PULL_DISABLE | MUX_MODE7) /* lcd_data2.lcd_data2 */
    0xac (PULL_DISABLE | MUX_MODE7) /* lcd_data3.lcd_data3 */
    0xb0 (PULL_DISABLE | MUX_MODE7) /* lcd_data4.lcd_data4 */
    0xb4 (PULL_DISABLE | MUX_MODE7) /* lcd_data5.lcd_data5 */
    0xb8 (PULL_DISABLE | MUX_MODE7) /* lcd_data6.lcd_data6 */
    0xbc (PULL_DISABLE | MUX_MODE7) /* lcd_data7.lcd_data7 */
    0xc0 (PULL_DISABLE | MUX_MODE7) /* lcd_data8.lcd_data8 */
    0xc4 (PULL_DISABLE | MUX_MODE7) /* lcd_data9.lcd_data9 */
    0xc8 (PULL_DISABLE | MUX_MODE7) /* lcd_data10.lcd_data10 */
    0xcc (PULL_DISABLE | MUX_MODE7) /* lcd_data11.lcd_data11 */
    0xd0 (PULL_DISABLE | MUX_MODE7) /* lcd_data12.lcd_data12 */
    0xd4 (PULL_DISABLE | MUX_MODE7) /* lcd_data13.lcd_data13 */
    0xd8 (PULL_DISABLE | MUX_MODE7) /* lcd_data14.lcd_data14 */
    0xdc (PULL_DISABLE | MUX_MODE7) /* lcd_data15.lcd_data15 */
    0xe0 (PIN_INPUT_PULLDOWN | MUX_MODE7) /* lcd_vsync.lcd_vsync */
    0xe4 (PIN_INPUT_PULLDOWN | MUX_MODE7) /* lcd_hsync.lcd_hsync */
    0xe8 (PIN_INPUT_PULLDOWN | MUX_MODE7) /* lcd_pclk.lcd_pclk */
    0xec (PIN_INPUT_PULLDOWN | MUX_MODE7) /* lcd_ac_bias_en.lcd_ac_bias_en */
    >;
    };
    pwm_bl_pins: pinmux_pwm_bl_pins {
    pinctrl-single,pins = <
    0x48 0x06 /* gpmc_a2.ehrpwm1a, OMAP_MUX_MODE6 | AM33XX_PIN_OUTPUT */
    >;
    };
    nxp_hdmi_bonelt_off_pins: nxp_hdmi_bonelt_off_pins {
    pinctrl-single,pins = <
    0x1b0 0x03 /* xdma_event_intr0, OMAP_MUX_MODE3 | AM33XX_PIN_OUTPUT */
    >;
    };
    mcasp0_pins: mcasp0_pins {
    pinctrl-single,pins = <
    AM33XX_IOPAD(0x9ac, PIN_INPUT_PULLUP | MUX_MODE0) /* mcasp0_ahcklx.mcasp0_ahclkx */
    AM33XX_IOPAD(0x99c, PIN_OUTPUT_PULLDOWN | MUX_MODE2) /* mcasp0_ahclkr.mcasp0_axr2*/
    AM33XX_IOPAD(0x994, PIN_OUTPUT_PULLUP | MUX_MODE0) /* mcasp0_fsx.mcasp0_fsx */
    AM33XX_IOPAD(0x990, PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* mcasp0_aclkx.mcasp0_aclkx */
    AM33XX_IOPAD(0x86c, PIN_OUTPUT_PULLDOWN | MUX_MODE7) /* gpmc_a11.GPIO1_27 */
    >;
    };
    bone_lcd7_cape_keys_pins_default: pinmux_bone_lcd7_cape_keys_pins_default {
    pinctrl-single,pins = <
    0x154 ( PIN_INPUT | MUX_MODE7 ) /* (B17) spi0_d0.gpio0[3] - enter */

    0x40 ( PIN_INPUT | MUX_MODE7 ) /* (R13) gpmc_a0.gpio1[16] - left */
    0x44 ( PIN_INPUT | MUX_MODE7 ) /* (V14) gpmc_a1.gpio1[17] - right */
    0x4c ( PIN_INPUT | MUX_MODE7 ) /* (T14) gpmc_a3.gpio1[19] - up */

    0x198 ( PIN_INPUT | MUX_MODE7 ) /* (D12) mcasp0_axr0.gpio3[16] - down */
    >;
    };
    };

    &uart1 {
    pinctrl-names = "default";
    pinctrl-0 = <&uart1_pins>;

    status = "okay";
    };

    &epwmss1 {
    status = "okay";
    ehrpwm1: pwm@48302200 {
    status = "okay";
    pinctrl-names = "default";
    pinctrl-0 = <&pwm_bl_pins>;
    };
    };


    &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 */
    0 0 1 0
    >;
    tx-num-evt = <32>;
    rx-num-evt = <32>;
    };

    &tscadc {
    status = "okay";

    adc {
    ti,adc-channels = <4 5 6 7>;

    };
    tsc {
    compatible = "ti,am3359-tsc";
    ti,wires = <4>;
    ti,x-plate-resistance = <200>;
    ti,coordinate-readouts = <5>;
    ti,wire-config = <0x00 0x11 0x22 0x33>;
    ti,charge-delay = <0x400>;

    };
    };

    &lcdc {
    compatible = "ti,am33xx-tilcdc";
    status = "okay";

    /* If you want to get 24 bit RGB and 16 BGR mode instead of
    * current 16 bit RGB and 24 BGR modes, set the propety
    * below to "crossed" and uncomment the video-ports -property
    * in tda19988 node.
    */
    blue-and-red-wiring = "straight";

    port {
    lcdc_0: endpoint@0 {
    remote-endpoint = <&hdmi_0>;
    };
    };
    };

    &i2c0 {
    tda19988: tda19988 {
    compatible = "nxp,tda998x";
    reg = <0x70>;

    pinctrl-names = "default", "off";
    pinctrl-0 = <&lcd_pins_default>;
    pinctrl-1 = <&nxp_hdmi_bonelt_off_pins>;

    /* Convert 24bit BGR to RGB, e.g. cross red and blue wiring */
    /* video-ports = <0x234501>; */

    #sound-dai-cells = <0>;
    audio-ports = < AFMT_I2S 0x03>;

    ports {
    port@0 {
    hdmi_0: endpoint@0 {
    remote-endpoint = <&lcdc_0>;
    };
    };
    };
    };
    };

    &rtc {
    system-power-controller;
    };

    &sgx {
    status = "okay";
    };

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

    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 = "TI BeagleBone Black";
    simple-audio-card,format = "i2s";
    simple-audio-card,bitclock-master = <&dailink0_master>;
    simple-audio-card,frame-master = <&dailink0_master>;

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

    };
    };