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.

AM3354: 5-wire touchscreen

Part Number: AM3354

p { margin-bottom: 0.1in; line-height: 120%; }a:link { }

I am trying to integrate a 5-wire touch screen with my custom board based on BBB. The processor is AM3354BZCZ60.  I am using the ti-processor-sdk-linux-am335x-evm-03.01.00.06 SDK. The Linux kernel is 4.4.19-gdb0b54cdad. I have added the following to the device tree (am335x-bonrblack.dts):

/* Set up for 5-wire touch screen */
&tscadc {
        status = "okay";
        tsc {
                ti,wires = <5>;
                ti,x-plate-resistance = <129>;  /* measured between pins UL & UR, and between pins LL & LR. */
                ti,coordinate-readouts = <5>;
                ti,wire-config = <0x00 0x11 0x22 0x33>;
        ti,charge-delay = <0x400>;
        };

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

See whole DT attached:

/*
 * 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.
 *
 * Modified by RZ
 *  v1.3	12/07/2016 added pinmuxing for CAN support. RZ
 *  v1.4	01/11/2017 added pinmuxing for 24-bit LCD. RZ
 *  v1.5	01/13/2017 added code to keep LCD control signals high after u-boot. RZ
 *  v1.6	01/20/2017 added bindings for tilcdc DRM generic panel output driver and back light driver. RZ
 *  v1.7	01/31/2017 fix pwm backlight frequency. RZ
 *  v1.8	02/09/2017 adds touch screen. RZ
 *
 */
/dts-v1/;

#include "am33xx.dtsi"
#include "am335x-bone-common.dtsi"
#include <dt-bindings/display/tda998x.h>
#include <dt-bindings/pwm/pwm.h>	/* added v1.6 RZ ... */

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

	/* added v1.6 RZ ... */

	/* Backlight entry */
	backlight {
		compatible = "pwm-backlight";
		pwms = <&ecap0 0 10000000 PWM_POLARITY_INVERTED>;	/* v1.7 was <&ecap0 0 50000 0> RZ ... */
		brightness-levels = <0 51 53 56 62 75 101 152 255>;
		default-brightness-level = <7>;		/* range from 0 to 8 */
	};

	/* Settings for LCD: */
	/* Densitron LCD Module 84-0266-000T Product Specification */
	panel {
		compatible = "ti,tilcdc,panel";
		status = "okay";
		pinctrl-names = "default";
		pinctrl-0 = <&lcdc_pins>;

		panel-info {
			ac-bias           = <255>;
			ac-bias-intrpt    = <0>;
			dma-burst-sz      = <16>;
			bpp               = <24>;	/* bits per pixel */
			fdd               = <0x80>;
			sync-edge         = <1>;	/* v1.6, was <0>, 0=rising 1=falling */
			sync-ctrl         = <1>;
			raster-order      = <0>;
			fifo-th           = <0>;
		};
		display-timings {
			native-mode = <&timing0>;
			timing0: 1280x800 {
				hactive         = <1280>;	/* Horizontal display area */
				vactive         = <800>;	/* Vertical display area */
				hback-porch     = <80>;		/* Horizontal Back Porch */
				hfront-porch    = <60>;		/* Horizontal Front Porch */
				hsync-len       = <20>;		/* Horizontal sync pulse width */
				vback-porch     = <10>;		/* Vertical Back Porch */
				vfront-porch    = <10>;		/* Vertical Front Porch */
				vsync-len       = <3>;		/* Vertical sync pulse width */
				clock-frequency = <71100000>;	/* Clock Frequency 71.1 MHh */
				hsync-active    = <0>;
				vsync-active    = <0>;
			};
		};
	};
	/* ... end add */
};

&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 {
	lcdc_pins: lcdc_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 */
			/* added v1.4 RZ ... */
			0x3c ( PIN_OUTPUT | MUX_MODE1 ) /* (U13) gpmc_ad15.lcd_data16 */
			0x38 ( PIN_OUTPUT | MUX_MODE1 ) /* (V13) gpmc_ad14.lcd_data17 */
			0x34 ( PIN_OUTPUT | MUX_MODE1 ) /* (R12) gpmc_ad13.lcd_data18 */
			0x30 ( PIN_OUTPUT | MUX_MODE1 ) /* (T12) gpmc_ad12.lcd_data19 */
			0x2c ( PIN_OUTPUT | MUX_MODE1 ) /* (U12) gpmc_ad11.lcd_data20 */
			0x28 ( PIN_OUTPUT | MUX_MODE1 ) /* (T11) gpmc_ad10.lcd_data21 */
			0x24 ( PIN_OUTPUT | MUX_MODE1 ) /* (T10) gpmc_ad9.lcd_data22 */
			0x20 ( PIN_OUTPUT | MUX_MODE1 ) /* (U10) gpmc_ad8.lcd_data23 */
			/* ... MAGicALL end add */
			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 */
		>;
	};

	/* added v1.4 RZ ... */
	lcd_cntrl_pins_default: lcd_cntrl_pins_default {
		pinctrl-single,pins = <
			0x90 ( PIN_OUTPUT | MUX_MODE7 ) /* (R7) gpmc_advn_ale.gpio2[2] (BL_EN) */
			0x94 ( PIN_OUTPUT | MUX_MODE7 ) /* (T7) gpmc_oen_ren.gpio2[3]  (LCD_EN)*/
			0x98 ( PIN_OUTPUT | MUX_MODE7 ) /* (U6) gpmc_wen.gpio2[4]      (R_FB)*/
			0x9c ( PIN_OUTPUT | MUX_MODE7 ) /* (T6) gpmc_be0n_cle.gpio2[5] (NOT_PWR_DN)*/
		>;
	};
	/* ... end add */

	/* added v1.6 RZ ... */
	/* LCD Backlight */
	ecap0_pins: backlight_pins {
		pinctrl-single,pins = <
			0x164 ( PIN_OUTPUT | MUX_MODE0 )	/* (C18) eCAP0_in_PWM0_out.eCAP0_in_PWM0_out MODE0 */
		>;
	};
	/* ... end add */

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

	/* added v1.3 RZ ... */
	dcan1_pins_default: dcan1_pins_default {
		pinctrl-single,pins = <
			0x180 0x12  /* (D16) uart1_rxd.d_can1_tx, SLEWCTRL_FAST | INPUT_PULLUP | MODE2 */
			0x184 0x32  /* (D15) uart1_txd.d_can1_rx, SLEWCTRL_FAST | RECV_ENABLE | INPUT_PULLUP | MODE2 */
		>;
	};
	/* ... end add */

};

/* added v1.3 RZ ... */
&dcan1 {
	status = "okay";
	pinctrl-names = "default";
	pinctrl-0 = <&dcan1_pins_default>;
};
/* end add */

/* modified v1.6 RZ ... */
&lcdc {
	status = "okay";
	/* port {
		lcdc_0: endpoint@0 {
			remote-endpoint = <&hdmi_0>;
		};
	}; */
};
/* end modify */

/* added v1.8 RZ ... */
/* Set up for 5-wire touch screen */
&tscadc {
        status = "okay";
        tsc {
                ti,wires = <5>;
                ti,x-plate-resistance = <129>;  /* measured between pins UL & UR, and between pins LL & LR. */
                ti,coordinate-readouts = <5>;
                ti,wire-config = <0x00 0x11 0x22 0x33>;
		ti,charge-delay = <0x400>;
        };

        /*adc {
                ti,adc-channels = <5 6 7>;
        };*/
};
/* ... end add */

/* added v1.5 RZ ... */
&gpio2 {
	status = "okay";
	compatible = "ti,omap4-gpio";
	gpio-controller;
	#gpio-cells = <2>;

	lcd_cntrl_bl_en {
		gpios = <2 GPIO_ACTIVE_HIGH>;
		output-high;
	};

	lcd_cntrl_lcd_en {
		gpios = <3 GPIO_ACTIVE_HIGH>;
		output-high;
	};

	lcd_cntrl_r_fb {
		gpios = <4 GPIO_ACTIVE_HIGH>;
		output-high;
	};

	lcd_cntrl_not_pwr_dn {
		gpios = <5 GPIO_ACTIVE_HIGH>;
		output-high;
	};
};
/* ... end add */

/* removed v1.6 ... 
&i2c0 {
	tda19988: tda19988 {
		compatible = "nxp,tda998x";
		reg = <0x70>;

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

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

		ports {
			port@0 {
				hdmi_0: endpoint@0 {
					remote-endpoint = <&lcdc_0>;
				};
			};
		};
	};
}
... end remove */

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


/* added v1.6 RZ ... */
/* Set up PWM for backlight */
&epwmss0 {
	status = "okay";
	ecap0: ecap@48300100 {
		status = "okay";
		pinctrl-names = "default";
		pinctrl-0 = <&ecap0_pins>;
	};
};
/* ... end add */

/ {

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

	/* removed v1.6 RZ ... 
	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>;
		};
	};
	... end remove */
};

The touch screen seems to be working along the x-axis, but not long the y-axis.

The output from the evtest utility shows ABS_X and ABS_Y to have about the same value regardless of were the screen is touched.

See abridged output from evtest utility attached:

root@am335x-evm:~# evtest
No device specified, trying to scan all of /dev/input/event*
Available devices:
/dev/input/event0:      ti-tsc
Select the device event number [0-0]: 0
Input driver version is 1.0.1
Input device ID: bus 0x0 vendor 0x0 product 0x0 version 0x0
Input device name: "ti-tsc"
Supported events:
  Event type 0 (EV_SYN)
  Event type 1 (EV_KEY)
    Event code 330 (BTN_TOUCH)
  Event type 3 (EV_ABS)
    Event code 0 (ABS_X)
      Value   1240
      Min        0
      Max     4095
    Event code 1 (ABS_Y)
      Value    338
      Min        0
      Max     4095
    Event code 24 (ABS_PRESSURE)
      Value      0
      Min        0
      Max     4095
Properties:
Testing ... (interrupt to exit)
[touch upper left (UL) corner]
Event: time 1475531758.234509, type 3 (EV_ABS), code 0 (ABS_X), value 3731
Event: time 1475531758.234509, type 3 (EV_ABS), code 1 (ABS_Y), value 3697
Event: time 1475531758.234509, type 3 (EV_ABS), code 24 (ABS_PRESSURE), value 477
Event: time 1475531758.234509, type 1 (EV_KEY), code 330 (BTN_TOUCH), value 1
Event: time 1475531758.234509, -------------- SYN_REPORT ------------
Event: time 1475531758.236452, type 3 (EV_ABS), code 0 (ABS_X), value 3737
Event: time 1475531758.236452, type 3 (EV_ABS), code 1 (ABS_Y), value 3737
Event: time 1475531758.236452, -------------- SYN_REPORT ------------
...
Event: time 1475531758.274989, type 3 (EV_ABS), code 0 (ABS_X), value 3609
Event: time 1475531758.274989, type 3 (EV_ABS), code 1 (ABS_Y), value 3693
Event: time 1475531758.274989, -------------- SYN_REPORT ------------
Event: time 1475531758.275342, type 1 (EV_KEY), code 330 (BTN_TOUCH), value 0
Event: time 1475531758.275342, type 3 (EV_ABS), code 24 (ABS_PRESSURE), value 0
Event: time 1475531758.275342, -------------- SYN_REPORT ------------
[touch upper right (UR) corner]
Event: time 1475531761.112869, type 3 (EV_ABS), code 0 (ABS_X), value 329
Event: time 1475531761.112869, type 3 (EV_ABS), code 1 (ABS_Y), value 358
Event: time 1475531761.112869, type 3 (EV_ABS), code 24 (ABS_PRESSURE), value 484
Event: time 1475531761.112869, type 1 (EV_KEY), code 330 (BTN_TOUCH), value 1
Event: time 1475531761.112869, -------------- SYN_REPORT ------------
Event: time 1475531761.114792, type 3 (EV_ABS), code 0 (ABS_X), value 325
Event: time 1475531761.114792, type 3 (EV_ABS), code 1 (ABS_Y), value 326
Event: time 1475531761.114792, -------------- SYN_REPORT ------------
...
Event: time 1475531761.165011, type 3 (EV_ABS), code 0 (ABS_X), value 437
Event: time 1475531761.165011, type 3 (EV_ABS), code 1 (ABS_Y), value 343
Event: time 1475531761.165011, type 3 (EV_ABS), code 24 (ABS_PRESSURE), value 485
Event: time 1475531761.165011, -------------- SYN_REPORT ------------
Event: time 1475531761.165340, type 1 (EV_KEY), code 330 (BTN_TOUCH), value 0
Event: time 1475531761.165340, type 3 (EV_ABS), code 24 (ABS_PRESSURE), value 0
Event: time 1475531761.165340, -------------- SYN_REPORT ------------
[touch lower left (LL) corner]
Event: time 1475531763.775724, type 3 (EV_ABS), code 0 (ABS_X), value 3743
Event: time 1475531763.775724, type 3 (EV_ABS), code 1 (ABS_Y), value 3767
Event: time 1475531763.775724, type 3 (EV_ABS), code 24 (ABS_PRESSURE), value 477
Event: time 1475531763.775724, type 1 (EV_KEY), code 330 (BTN_TOUCH), value 1
Event: time 1475531763.775724, -------------- SYN_REPORT ------------
Event: time 1475531763.777648, type 3 (EV_ABS), code 0 (ABS_X), value 3737
Event: time 1475531763.777648, type 3 (EV_ABS), code 1 (ABS_Y), value 3737
Event: time 1475531763.777648, -------------- SYN_REPORT ------------
...
Event: time 1475531763.823991, type 3 (EV_ABS), code 0 (ABS_X), value 3735
Event: time 1475531763.823991, type 3 (EV_ABS), code 1 (ABS_Y), value 3733
Event: time 1475531763.823991, -------------- SYN_REPORT ------------
Event: time 1475531763.825911, type 3 (EV_ABS), code 0 (ABS_X), value 3702
Event: time 1475531763.825911, -------------- SYN_REPORT ------------
Event: time 1475531763.826231, type 1 (EV_KEY), code 330 (BTN_TOUCH), value 0
Event: time 1475531763.826231, type 3 (EV_ABS), code 24 (ABS_PRESSURE), value 0
Event: time 1475531763.826231, -------------- SYN_REPORT ------------
[touch lower right (LR) corner]
Event: time 1475531766.079706, type 3 (EV_ABS), code 0 (ABS_X), value 326
Event: time 1475531766.079706, type 3 (EV_ABS), code 1 (ABS_Y), value 324
Event: time 1475531766.079706, type 3 (EV_ABS), code 24 (ABS_PRESSURE), value 485
Event: time 1475531766.079706, type 1 (EV_KEY), code 330 (BTN_TOUCH), value 1
Event: time 1475531766.079706, -------------- SYN_REPORT ------------
Event: time 1475531766.081596, type 3 (EV_ABS), code 0 (ABS_X), value 353
Event: time 1475531766.081596, type 3 (EV_ABS), code 1 (ABS_Y), value 351
Event: time 1475531766.081596, type 3 (EV_ABS), code 24 (ABS_PRESSURE), value 484
Event: time 1475531766.081596, -------------- SYN_REPORT ------------
...
Event: time 1475531766.122190, type 3 (EV_ABS), code 0 (ABS_X), value 363
Event: time 1475531766.122190, type 3 (EV_ABS), code 1 (ABS_Y), value 362
Event: time 1475531766.122190, -------------- SYN_REPORT ------------
Event: time 1475531766.122500, type 1 (EV_KEY), code 330 (BTN_TOUCH), value 0
Event: time 1475531766.122500, type 3 (EV_ABS), code 24 (ABS_PRESSURE), value 0
Event: time 1475531766.122500, -------------- SYN_REPORT ------------

In the attached file, I have indicated in brackets [ ] where the screen was being touched. "..." indicates where data was removed for clarity.

In the following image Chanel-1 is AIN0 (UL), Chanel-2 is AIN1 (UR), Chanel-4 is AIN2 (LL), and Chanel-3 is AIN3 (LR):

p { margin-bottom: 0.1in; line-height: 120%; }a:link { }

I think it looks like the 2-ohm pull-up/pull-down resistors are not switching correctly. What is the expected sequence?

The following appears in the serial output during boot:

[    8.043284] input: ti-tsc as /devices/platform/ocp/44e0d000.tscadc/TI-am335x-tsc/input/input0

See the serial output during the whole boot process attached:

U-Boot SPL 2016.05-00118-gabc6b2a-dirty (Jan 23 2017 - 19:42:12)
MAGicALL: Entered board.c(v1.4):am33xx_spl_board_init()
  MAGicALL: Entering mux-magicall.c:enable_lcd_cntrl_pin_mux()
    MAGicALL: Entered mux-magicall.c:enable_lcd_cntrl_pin_mux
    MAGicALL: Leaving mux-magicall.c:enable_lcd_cntrl_pin_mux
MAGicALL: Leaving board.c:am33xx_spl_board_init()
Trying to boot from MMC2
Card did not respond to voltage select!
*** Warning - MMC init failed, using default environment

reading u-boot.img
reading u-boot.img


U-Boot 2016.05-00118-gabc6b2a-dirty (Jan 23 2017 - 19:42:12 -0800)

       Watchdog enabled
I2C:   ready
DRAM:  512 MiB
MMC:   OMAP SD/MMC: 0, OMAP SD/MMC: 1
*** Warning - bad CRC, using default environment

<ethaddr> not set. Validating first E-fuse MAC
Net:   cpsw, usb_ether
Press SPACE to abort autoboot in 2 seconds
Card did not respond to voltage select!
Card did not respond to voltage select!
Card did not respond to voltage select!
Card did not respond to voltage select!
Card did not respond to voltage select!
switch to partitions #0, OK
mmc1(part 0) is current device
Scanning mmc 1:1...
switch to partitions #0, OK
mmc1(part 0) is current device
SD/MMC found on device 1
switch to partitions #0, OK
mmc1(part 0) is current device
SD/MMC found on device 1
reading boot.scr
** Unable to read file boot.scr **
reading uEnv.txt
** Unable to read file uEnv.txt **
3441456 bytes read in 236 ms (13.9 MiB/s)
37873 bytes read in 32 ms (1.1 MiB/s)
Kernel image @ 0x82000000 [ 0x000000 - 0x348330 ]
## Flattened Device Tree blob at 88000000
   Booting using the fdt blob at 0x88000000
   Loading Device Tree to 8fff3000, end 8ffff3f0 ... OK

Starting kernel ...

[    0.000000] Booting Linux on physical CPU 0x0
[    0.000000] Initializing cgroup subsys cpu
[    0.000000] Initializing cgroup subsys cpuacct
[    0.000000] Linux version 4.4.19-gdb0b54cdad (root@ronz-TMP453-M) (gcc version 4.8.4 (Ubuntu/Linaro 4.8.4-2ubuntu1~14.04.1) ) #1 PREEMPT Tue Jan 31 13:55:28 PST 2017
[    0.000000] CPU: ARMv7 Processor [413fc082] revision 2 (ARMv7), cr=10c5387d
[    0.000000] CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing instruction cache
[    0.000000] Machine model: TI AM335x BeagleBone Black
[    0.000000] cma: Reserved 24 MiB at 0x9e800000
[    0.000000] Memory policy: Data cache writeback
[    0.000000] CPU: All CPU(s) started in SVC mode.
[    0.000000] AM335X ES2.1 (sgx neon )
[    0.000000] Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 129920
[    0.000000] Kernel command line: console=ttyO0,115200n8 root=PARTUUID=d8c7d61c-02 rw rootfstype=ext4 rootwait
[    0.000000] PID hash table entries: 2048 (order: 1, 8192 bytes)
[    0.000000] Dentry cache hash table entries: 65536 (order: 6, 262144 bytes)
[    0.000000] Inode-cache hash table entries: 32768 (order: 5, 131072 bytes)
[    0.000000] Memory: 484732K/524288K available (6499K kernel code, 314K rwdata, 2328K rodata, 276K init, 265K bss, 14980K reserved, 24576K cma-reserved, 0K highmem)
[    0.000000] Virtual kernel memory layout:
[    0.000000]     vector  : 0xffff0000 - 0xffff1000   (   4 kB)
[    0.000000]     fixmap  : 0xffc00000 - 0xfff00000   (3072 kB)
[    0.000000]     vmalloc : 0xe0800000 - 0xff800000   ( 496 MB)
[    0.000000]     lowmem  : 0xc0000000 - 0xe0000000   ( 512 MB)
[    0.000000]     pkmap   : 0xbfe00000 - 0xc0000000   (   2 MB)
[    0.000000]     modules : 0xbf000000 - 0xbfe00000   (  14 MB)
[    0.000000]       .text : 0xc0008000 - 0xc08a6fd4   (8828 kB)
[    0.000000]       .init : 0xc08a7000 - 0xc08ec000   ( 276 kB)
[    0.000000]       .data : 0xc08ec000 - 0xc093abb8   ( 315 kB)
[    0.000000]        .bss : 0xc093abb8 - 0xc097d3b0   ( 266 kB)
[    0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=1, Nodes=1
[    0.000000] Preemptible hierarchical RCU implementation.
[    0.000000]  Build-time adjustment of leaf fanout to 32.
[    0.000000] NR_IRQS:16 nr_irqs:16 16
[    0.000000] IRQ: Found an INTC at 0xfa200000 (revision 5.0) with 128 interrupts
[    0.000000] OMAP clockevent source: timer2 at 24000000 Hz
[    0.000013] sched_clock: 32 bits at 24MHz, resolution 41ns, wraps every 89478484971ns
[    0.000033] clocksource: timer1: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 79635851949 ns
[    0.000042] OMAP clocksource: timer1 at 24000000 Hz
[    0.000193] clocksource_probe: no matching clocksources found
[    0.000348] Console: colour dummy device 80x30
[    0.000372] WARNING: Your 'console=ttyO0' has been replaced by 'ttyS0'
[    0.000377] This ensures that you still see kernel messages. Please
[    0.000382] update your kernel commandline.
[    0.000397] Calibrating delay loop... 996.14 BogoMIPS (lpj=4980736)
[    0.089206] pid_max: default: 32768 minimum: 301
[    0.089312] Mount-cache hash table entries: 1024 (order: 0, 4096 bytes)
[    0.089324] Mountpoint-cache hash table entries: 1024 (order: 0, 4096 bytes)
[    0.089931] Initializing cgroup subsys io
[    0.089961] Initializing cgroup subsys memory
[    0.089995] Initializing cgroup subsys devices
[    0.090009] Initializing cgroup subsys freezer
[    0.090022] Initializing cgroup subsys perf_event
[    0.090033] Initializing cgroup subsys pids
[    0.090057] CPU: Testing write buffer coherency: ok
[    0.090429] Setting up static identity map for 0x80008200 - 0x80008258
[    0.092226] devtmpfs: initialized
[    0.102424] VFP support v0.3: implementor 41 architecture 3 part 30 variant c rev 3
[    0.115004] omap_hwmod: debugss: _wait_target_disable failed
[    0.169673] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604462750000 ns
[    0.171553] pinctrl core: initialized pinctrl subsystem
[    0.172656] NET: Registered protocol family 16
[    0.174490] DMA: preallocated 256 KiB pool for atomic coherent allocations
[    0.199199] cpuidle: using governor ladder
[    0.229186] cpuidle: using governor menu
[    0.232953] OMAP GPIO hardware version 0.1
[    0.242056] hw-breakpoint: debug architecture 0x4 unsupported.
[    0.276192] edma 49000000.edma: TI EDMA DMA engine driver
[    0.279440] omap_i2c 44e0b000.i2c: could not find pctldev for node /ocp/l4_wkup@44c00000/scm@210000/pinmux@800/pinmux_i2c0_pins, deferring probe
[    0.279496] omap_i2c 4819c000.i2c: could not find pctldev for node /ocp/l4_wkup@44c00000/scm@210000/pinmux@800/pinmux_i2c2_pins, deferring probe
[    0.279620] media: Linux media interface: v0.10
[    0.279675] Linux video capture interface: v2.00
[    0.279739] pps_core: LinuxPPS API ver. 1 registered
[    0.279747] pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti <giometti@linux.it>
[    0.279772] PTP clock support registered
[    0.279818] EDAC MC: Ver: 3.0.0
[    0.280821] omap-mailbox 480c8000.mailbox: omap mailbox rev 0x400
[    0.281117] Advanced Linux Sound Architecture Driver Initialized.
[    0.282134] clocksource: Switched to clocksource timer1
[    0.291312] NET: Registered protocol family 2
[    0.291992] TCP established hash table entries: 4096 (order: 2, 16384 bytes)
[    0.292038] TCP bind hash table entries: 4096 (order: 2, 16384 bytes)
[    0.292076] TCP: Hash tables configured (established 4096 bind 4096)
[    0.292202] UDP hash table entries: 256 (order: 0, 4096 bytes)
[    0.292220] UDP-Lite hash table entries: 256 (order: 0, 4096 bytes)
[    0.292356] NET: Registered protocol family 1
[    0.292725] RPC: Registered named UNIX socket transport module.
[    0.292739] RPC: Registered udp transport module.
[    0.292745] RPC: Registered tcp transport module.
[    0.292750] RPC: Registered tcp NFSv4.1 backchannel transport module.
[    0.293601] hw perfevents: enabled with armv7_cortex_a8 PMU driver, 5 counters available
[    0.295294] futex hash table entries: 256 (order: -1, 3072 bytes)
[    0.302034] squashfs: version 4.0 (2009/01/31) Phillip Lougher
[    0.302965] NFS: Registering the id_resolver key type
[    0.303034] Key type id_resolver registered
[    0.303041] Key type id_legacy registered
[    0.303117] ntfs: driver 2.1.32 [Flags: R/O].
[    0.306254] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 248)
[    0.306285] io scheduler noop registered
[    0.306299] io scheduler deadline registered
[    0.306422] io scheduler cfq registered (default)
[    0.307619] pinctrl-single 44e10800.pinmux: 142 pins at pa f9e10800 size 568
[    0.310243] backlight supply power not found, using dummy regulator
[    0.361482] Serial: 8250/16550 driver, 10 ports, IRQ sharing disabled
[    0.365158] 44e09000.serial: ttyS0 at MMIO 0x44e09000 (irq = 158, base_baud = 3000000) is a 8250
[    0.979541] console [ttyS0] enabled
[    0.983982] [drm] Initialized drm 1.1.0 20060810
[    0.990829] [drm] Supports vblank timestamp caching Rev 2 (21.10.2013).
[    0.997592] [drm] No driver support for vblank timestamp query.
[    1.029496] Console: switching to colour frame buffer device 160x50
[    1.052755] tilcdc 4830e000.lcdc: fb0:  frame buffer device
[    1.082156] [drm] Initialized tilcdc 1.0.0 20121205 on minor 0
[    1.094111] loop: module loaded
[    1.099411] libphy: Fixed MDIO Bus: probed
[    1.162170] davinci_mdio 4a101000.mdio: davinci mdio revision 1.6
[    1.168308] davinci_mdio 4a101000.mdio: detected phy mask fffffffe
[    1.175266] libphy: 4a101000.mdio: probed
[    1.179349] davinci_mdio 4a101000.mdio: phy[0]: device 4a101000.mdio:00, driver SMSC LAN8710/LAN8720
[    1.189223] cpsw 4a100000.ethernet: Detected MACID = 84:eb:18:e7:dc:99
[    1.197583] mousedev: PS/2 mouse device common for all mice
[    1.203905] i2c /dev entries driver
[    1.208339] cpuidle: enable-method property 'ti,am3352' found operations
[    1.215959] omap_hsmmc 48060000.mmc: Got CD GPIO
[    1.293606] ledtrig-cpu: registered to indicate activity on CPUs
[    1.306090] NET: Registered protocol family 10
[    1.311991] sit: IPv6 over IPv4 tunneling driver
[    1.317671] NET: Registered protocol family 17
[    1.323628] Key type dns_resolver registered
[    1.330129] omap_voltage_late_init: Voltage driver support not added
[    1.359387] tps65217 0-0024: TPS65217 ID 0xe version 1.2
[    1.365105] at24 0-0050: 32768 byte 24c256 EEPROM, writable, 1 bytes/write
[    1.372087] mmc1: MAN_BKOPS_EN bit is not set
[    1.376535] omap_i2c 44e0b000.i2c: bus 0 rev0.11 at 400 kHz
[    1.383483] at24 2-0054: 32768 byte 24c256 EEPROM, writable, 1 bytes/write
[    1.390609] at24 2-0055: 32768 byte 24c256 EEPROM, writable, 1 bytes/write
[    1.397894] at24 2-0056: 32768 byte 24c256 EEPROM, writable, 1 bytes/write
[    1.405121] at24 2-0057: 32768 byte 24c256 EEPROM, writable, 1 bytes/write
[    1.412186] mmc1: new high speed MMC card at address 0001
[    1.417919] omap_i2c 4819c000.i2c: bus 2 rev0.11 at 100 kHz
[    1.423850] mmcblk0: mmc1:0001 Q2J54A 3.64 GiB 
[    1.429604] cpufreq: cpufreq_online: CPU0: Running at unlisted freq: 1000000 KHz
[    1.437341] mmcblk0boot0: mmc1:0001 Q2J54A partition 1 2.00 MiB
[    1.443502] cpu cpu0: dev_pm_opp_domain_set_rate: failed to find current OPP for freq 1000000000 (-34)
[    1.453100] mmcblk0boot1: mmc1:0001 Q2J54A partition 2 2.00 MiB
[    1.460503]  mmcblk0: p1 p2
[    1.478109] cpufreq: cpufreq_online: CPU0: Unlisted initial frequency changed to: 600000 KHz
[    1.487618] hctosys: unable to open rtc device (rtc0)
[    1.497541] ALSA device list:
[    1.500557]   No soundcards found.
[    1.525785] EXT4-fs (mmcblk0p2): mounted filesystem with ordered data mode. Opts: (null)
[    1.534127] VFS: Mounted root (ext4 filesystem) on device 179:2.
[    1.544860] devtmpfs: mounted
[    1.548335] Freeing unused kernel memory: 276K (c08a7000 - c08ec000)
[    1.554766] This architecture does not have kernel memory protection.
[    1.713443] systemd[1]: System time before build time, advancing clock.
[    1.753740] random: systemd: uninitialized urandom read (16 bytes read, 13 bits of entropy available)
[    1.768610] random: systemd: uninitialized urandom read (16 bytes read, 13 bits of entropy available)
[    1.792014] systemd[1]: systemd 229 running in system mode. (+PAM -AUDIT -SELINUX +IMA -APPARMOR +SMACK +SYSVINIT +UTMP -LIBCRYPTSETUP -GCRYPT +GNUTLS +ACL +XZ -LZ4 -SECCOMP +BLKID -ELFUTILS +KMOD -IDN)
[    1.811386] systemd[1]: Detected architecture arm.

Welcome to Arago 2016.08!

[    1.833707] systemd[1]: Set hostname to <am335x-evm>.
[    1.920602] random: systemd-gpt-aut: uninitialized urandom read (16 bytes read, 16 bits of entropy available)
[    1.951636] random: systemd-sysv-ge: uninitialized urandom read (16 bytes read, 16 bits of entropy available)
[    1.972393] random: systemd-gpt-aut: uninitialized urandom read (16 bytes read, 16 bits of entropy available)
[    1.989156] random: systemd-sysv-ge: uninitialized urandom read (16 bytes read, 17 bits of entropy available)
[    2.029010] random: systemd-sysv-ge: uninitialized urandom read (16 bytes read, 19 bits of entropy available)
[    2.098641] random: systemd: uninitialized urandom read (16 bytes read, 22 bits of entropy available)
[    2.108933] random: systemd: uninitialized urandom read (16 bytes read, 22 bits of entropy available)
[    2.120425] random: systemd: uninitialized urandom read (16 bytes read, 22 bits of entropy available)
[    2.283267] systemd[1]: [/lib/systemd/system/gadget-init.service:15] Unknown lvalue 'ExecStopPre' in section 'Service'
[    2.576971] systemd[1]: basic.target: Found ordering cycle on basic.target/start
[    2.584686] systemd[1]: basic.target: Found dependency on sysinit.target/start
[    2.591984] systemd[1]: basic.target: Found dependency on alignment.service/start
[    2.599696] systemd[1]: basic.target: Found dependency on basic.target/start
[    2.606908] systemd[1]: basic.target: Breaking ordering cycle by deleting job alignment.service/start
[    2.616257] systemd[1]: alignment.service: Job alignment.service/start deleted to break ordering cycle starting with basic.target/start
[ SKIP ] Ordering cycle found, skipping alignment.service
[    2.663134] systemd[1]: Created slice User and Session Slice.
[  OK  ] Created slice User and Session Slice.
[    2.693004] systemd[1]: Listening on Journal Socket (/dev/log).
[  OK  ] Listening on Journal Socket (/dev/log).
[    2.723387] systemd[1]: Listening on Network Service Netlink Socket.
[  OK  ] Listening on Network Service Netlink Socket.
[    2.754256] systemd[1]: Created slice System Slice.
[  OK  ] Created slice System Slice.
[    2.782748] systemd[1]: Reached target Slices.
[  OK  ] Reached target Slices.
[    2.803047] systemd[1]: Listening on udev Control Socket.
[  OK  ] Listening on udev Control Socket.
[    2.832596] systemd[1]: Reached target Swap.
[  OK  ] Reached target Swap.
[    2.854469] systemd[1]: Created slice system-serial\x2dgetty.slice.
[  OK  ] Created slice system-serial\x2dgetty.slice.
[    2.882930] systemd[1]: Listening on udev Kernel Socket.
[  OK  ] Listening on udev Kernel Socket.
[    2.913090] systemd[1]: Started Dispatch Password Requests to Console Directory Watch.
[  OK  ] Started Dispatch Password Requests to Console Directory Watch.
[    2.943009] systemd[1]: Listening on Journal Socket.
[  OK  ] Listening on Journal Socket.
[    2.973863] systemd[1]: tmp.mount: Directory /tmp to mount over is not empty, mounting anyway.
[    2.992802] systemd[1]: Mounting Temporary Directory...
         Mounting Temporary Directory...
[    3.073908] systemd[1]: Starting Create list of required static device nodes for the current kernel...
         Starting Create list of required st... nodes for the current kernel...
[    3.182710] systemd[1]: Starting Load Kernel Modules...
         Starting Load Kernel Modules...
[    3.254650] systemd[1]: Mounting Debug File System...
         Mounting Debug File System...
[    3.302809] cryptodev: driver 1.8 loaded.
[    3.314498] systemd[1]: Mounting POSIX Message Queue File System...
         Mounting POSIX Message Queue File System...
[    3.388195] systemd[1]: Starting Setup Virtual Console...
         Starting Setup Virtual Console...
[    3.442925] systemd[1]: Listening on Syslog Socket.
[  OK  ] Listening on Syslog Socket.
[    3.472963] systemd[1]: Listening on /dev/initctl Compatibility Named Pipe.
[  OK  ] Listening on /dev/initctl Compatibility Named Pipe.
[    3.508065] systemd[1]: Starting Remount Root and Kernel File Systems...
         Starting Remount Root and Kernel File Systems...
[    3.554919] systemd[1]: Created slice system-getty.slice.
[  OK  ] Created slice system-getty.slice.
[    3.608893] EXT4-fs (mmcblk0p2): re-mounted. Opts: (null)
[    3.616420] systemd[1]: Started Forward Password Requests to Wall Directory Watch.
[  OK  ] Started Forward Password Requests to Wall Directory Watch.
[    3.652712] systemd[1]: Reached target Paths.
[  OK  ] Reached target Paths.
[    3.673391] systemd[1]: Reached target Remote File Systems.
[  OK  ] Reached target Remote File Systems.
[    3.708139] systemd[1]: Starting Journal Service...
         Starting Journal Service...
[    3.814162] systemd[1]: Mounted Debug File System.
[  OK  ] Mounted Debug File System.
[    3.842936] systemd[1]: Mounted POSIX Message Queue File System.
[  OK  ] Mounted POSIX Message Queue File System.
[    3.862405] systemd[1]: Mounted Temporary Directory.
[  OK  ] Mounted Temporary Directory.
[    3.896116] systemd[1]: Started Create list of required static device nodes for the current kernel.
[  OK  ] Started Create list of required sta...ce nodes for the current kernel.
[    3.945126] systemd[1]: Started Load Kernel Modules.
[  OK  ] Started Load Kernel Modules.
[    3.976206] systemd[1]: Started Setup Virtual Console.
[  OK  ] Started Setup Virtual Console.
[    4.005334] systemd[1]: Started Remount Root and Kernel File Systems.
[  OK  ] Started Remount Root and Kernel File Systems.
[    4.033990] systemd[1]: Started Journal Service.
[  OK  ] Started Journal Service.
         Starting udev Coldplug all Devices...
         Starting Flush Journal to Persistent Storage...
         Starting Apply Kernel Variables...
         Starting Create Static Device Nodes in /dev...
[  OK  ] Started Apply Kernel Variables.
[  OK  ] Started Create Static Device Nodes in /dev.
[    5.601708] systemd-journald[107]: Received request to flush runtime journal from PID 1
[  OK  ] Started Flush Journal to Persistent Storage.
[  OK  ] Reached target Local File Systems (Pre).
         Mounting /var/volatile...
         Mounting /media/ram...
         Starting udev Kernel Device Manager...
[  OK  ] Mounted /var/volatile.
[  OK  ] Mounted /media/ram.
[  OK  ] Started udev Kernel Device Manager.
[  OK  ] Started udev Coldplug all Devices.
[    7.879966] omap_wdt: OMAP Watchdog Timer Rev 0x01: initial timeout 60 sec
[    7.905244] TI-am335x-tsc TI-am335x-tsc: ti,charge-delay not specified
[    7.977883] omap_rtc 44e3e000.rtc: rtc core: registered 44e3e000.rtc as rtc0
[    8.015375] input: ti-tsc as /devices/platform/ocp/44e0d000.tscadc/TI-am335x-tsc/input/input0
[    8.047771] 47401300.usb-phy supply vcc not found, using dummy regulator
[  OK  ] Created slice system-systemd\x2dbacklight.slice.[    8.165069] 47401b00.usb-phy supply vcc not found, using dummy regulator

         Starting Load/Save Screen Backlight...htness of backlight:backlight...
[    8.324950] CAN device driver interface
[  OK  ] Reached target Local File Systems.
         Starting Create Volatile Files and Directories...
[    8.524320] c_can_platform 481d0000.can: c_can_platform device registered (regs=fa1d0000, irq=164)
         Starting Load/Save Random Seed...
[  OK  ] Started Load/Save Screen Backlight Brightness of backlight:backlight.
[    8.874417] omap_rng 48310000.rng: OMAP Random Number Generator ver. 20
[  OK  ] Started Load/Save Random Seed.
[  OK  ] Started Create Volatile Files and Directories.
[  OK  ] Found device /dev/ttyS0.
[    9.394676] omap-sham 53100000.sham: hw accel on OMAP rev 4.3
[    9.654490]  remoteproc0: wkup_m3 is available
[    9.658987]  remoteproc0: Note: remoteproc is still under development and considered experimental.
[    9.822528]  remoteproc0: THE BINARY FORMAT IS NOT YET FINALIZED, and backward compatibility isn't yet guaranteed.
[   10.099864]  remoteproc0: powering up wkup_m3
[   10.137459]  remoteproc0: Booting fw image am335x-pm-firmware.elf, size 217148
[   10.218778]  remoteproc0: remote processor wkup_m3 is now up
[   10.218804] wkup_m3_ipc 44e11324.wkup_m3_ipc: CM3 Firmware Version = 0x191
[   10.285533] omap-aes 53500000.aes: OMAP AES hw accel rev: 3.2
[   10.751562] omap_hwmod: pruss: _wait_target_ready failed: -16
[   10.825136] ti-pruss 4a300000.pruss: couldn't enable pruss
[   10.884290] ti-pruss: probe of 4a300000.pruss failed with error -16
[   10.903107] [drm] Initialized pvr 1.14.3699939 20110701 on minor 1
[   10.949998] PM: bootloader does not support rtc-only!
[  OK  ] Found device /dev/ttyS3.
[   12.351859] FAT-fs (mmcblk0p1): Volume was not properly unmounted. Some data may be corrupt. Please run fsck.
[  OK  ] Listening on Load/Save RF Kill Switch Status /dev/rfkill Watch.
         Starting Update UTMP about System Boot/Shutdown...
         Starting Network Time Synchronization...
[  OK  ] Found device /dev/mmcblk0p1.
[  OK  ] Started Network Time Synchronization.
[  OK  ] Started Update UTMP about System Boot/Shutdown.
[   15.533985] usbcore: registered new interface driver usbfs
[   15.539632] usbcore: registered new interface driver hub
[   15.653204] usbcore: registered new device driver usb
[   15.862966] musb-hdrc musb-hdrc.1.auto: MUSB HDRC host driver
[   15.868792] musb-hdrc musb-hdrc.1.auto: new USB bus registered, assigned bus number 1
[   15.960573] hub 1-0:1.0: USB hub found
[   15.986979] hub 1-0:1.0: 1 port detected
         Starting Synchronize System and HW clocks...
[  OK  ] Reached target System Time Synchronized.
[  OK  ] Started Synchronize System and HW clocks.
[  OK  ] Reached target System Initialization.
[  OK  ] Listening on Avahi mDNS/DNS-SD Stack Activation Socket.
[  OK  ] Started Daily Cleanup of Temporary Directories.
[  OK  ] Reached target Timers.
[  OK  ] Listening on RPCbind Server Activation Socket.
[  OK  ] Listening on dropbear.socket.
[  OK  ] Listening on D-Bus System Message Bus Socket.
[  OK  ] Reached target Sockets.
[  OK  ] Reached target Basic System.
         Starting Start USB gadget...
         Starting Login Service...
[   17.376084] random: nonblocking pool is initialized
         Starting Permit User Sessions...
         Starting Avahi mDNS/DNS-SD Stack...
[  OK  ] Started System Logging Service.
         Starting Print notice about GPLv3 packages...
         Starting uim-sysfs.service...
[  OK  ] Started Kernel Logging Service.
         Starting Telephony service...
[  OK  ] Started strongSwan IPsec IKEv1/IKEv2 daemon using ipsec.conf.
[  OK  ] Started D-Bus System Message Bus.
[   18.243496] using random self ethernet address
[   18.265667] using random host ethernet address
[   18.319071] using host ethernet address: 84:EB:18:E7:DC:9B
[   18.367297] using random self ethernet address
[   18.372690] using random host ethernet address
[   18.377183] using host ethernet address: 84:EB:18:E7:DC:9B
[   18.467766] usb0: HOST MAC 84:eb:18:e7:dc:9b
[   18.506462] usb0: MAC 26:d8:ed:d4:ce:a0
[   18.609841] Mass Storage Function, version: 2009/09/11
[   18.642521] LUN: removable file: (no medium)
[   18.689097] LUN: removable read only file: /dev/mmcblk0p1
[   18.736560] Number of LUNs=1
[   18.760738] g_multi gadget: Multifunction Composite Gadget
[   18.806404] g_multi gadget: g_multi ready
[   19.248636] NET: Registered protocol family 15
[  OK  ] Started Avahi mDNS/DNS-SD Stack.
[  OK  ] Started Telephony service.
         Starting Network Service...
[   19.423418] Bluetooth: Core ver 2.21
[   19.427158] NET: Registered protocol family 31
[   19.431653] Bluetooth: HCI device and connection manager initialized
[  OK  ] Started Permit User Sessions.
[   19.592419] Bluetooth: HCI socket layer initialized
[   19.624413] Bluetooth: L2CAP socket layer initialized
[   19.629575] Bluetooth: SCO socket layer initialized
[   19.634751] IPv6: ADDRCONF(NETDEV_UP): usb0: link is not ready
[  OK  ] Started Network Service.
[  OK  ] Found device /dev/ttyGS0.
[  OK  ] Started Start USB gadget.
[   20.309888] net eth0: initializing cpsw version 1.12 (0)
[   20.353222] net eth0: initialized cpsw ale version 1.4
[   20.376359] Initializing XFRM netlink socket
[   20.394313] net eth0: ALE Table size 1024
[   20.449370] net eth0: phy found : id is : 0x7c0f1
[   20.493404] libphy: PHY 4a101000.mdio:01 not found
[   20.531023] net eth0: phy "4a101000.mdio:01" not found on slave 1, err -19
[   20.636336] IPv6: ADDRCONF(NETDEV_UP): eth0: link is not ready
[  OK  ] Reached target Network.
         Starting Lightning Fast Webserver With Light System Requirements...
         Starting Network Name Resolution...
         Mounting Configuration File System...
[  OK  ] Started Serial Getty on ttyS3.
[  OK  ] Started Serial Getty on ttyS0.
[  OK  ] Started Getty on tty1.
[  OK  ] Started Serial Getty on ttyGS0.
[  OK  ] Mounted Configuration File System.
[  OK  ] Started Network Name Resolution.
[  OK  ] Started Lightning Fast Webserver With Light System Requirements.
[  OK  ] Started Login Service.
[  OK  ] Started uim-sysfs.service.
***************************************************************
***************************************************************
NOTICE: This file system contains the following GPLv3 packages:
        autoconf
        binutils
        bison-dev
        bison
        cpp-symlinks
        cpp
        dosfstools
        g++-symlinks
        g++
        gawk-dev
        gawk
        gcc-symlinks
        gcc
        gdb
        gdbserver
        gstreamer1.0-libav
        hidapi
        libcairo-perf-utils
        libgmp10
        libidn11
        libmpc3
        libmpfr4
        make
        nettle
        swig-dev
        swig

If you do not wish to distribute GPLv3 components please remove
the above packages prior to distribution.  This can be done using
the opkg remove command.  i.e.:
    opkg remove <package>
Where <package> is the name printed in the list above

NOTE: If the package is a dependency of another package you
      will be notified of the dependent packages.  You should
      use the --force-removal-of-dependent-packages option to
      also remove the dependent packages as well
***************************************************************
***************************************************************
[  OK  ] Started Print notice about GPLv3 packages.
         Starting rc.pvr.service...
[   28.188583] PVR_K: UM DDK-(3699939) and KM DDK-(3699939) match. [ OK ]
[  OK  ] Started rc.pvr.service.
         Starting telnetd.service...
[  OK  ] Started telnetd.service.
         Starting busybox-udhcpd.service...
         Starting thttpd.service...
         Starting magicall-lcd-pwr-seq-on.service...
[  OK  ] Started busybox-udhcpd.service.
[  OK  ] Started thttpd.service.
[  OK  ] Started magicall-lcd-pwr-seq-on.service.
         Starting rng-tools.service...
[  OK  ] Started rng-tools.service.
         Starting parse-ip.service...
         Starting thermal-zone-init.service...
[  OK  ] Started thermal-zone-init.service.
[  OK  ] Started parse-ip.service.

 _____                    _____           _         _   
|  _  |___ ___ ___ ___   |  _  |___ ___  |_|___ ___| |_ 
|     |  _| .'| . | . |  |   __|  _| . | | | -_|  _|  _|
|__|__|_| |__,|_  |___|  |__|  |_| |___|_| |___|___|_|  
              |___|                    |___|            

Arago Project http://arago-project.org am335x-evm ttyS0

Arago 2016.08 am335x-evm ttyS0

am335x-evm login: 
CTRL-A Z for help | 

p { margin-bottom: 0.1in; line-height: 120%; }a:link { }

What am I missing? Is the DT correct? Does the kernel configuration need to be modified from what is supplied with the SDK?

  • The software team have been notified. They will respond here.
  • Hi Ron,

    As you describe the connection between the tscadc & LCD:
    In the following image Chanel-1 is AIN0 (UL), Chanel-2 is AIN1 (UR), Chanel-4 is AIN2 (LL), and Chanel-3 is AIN3 (LR):


    I think you need to modify the wire-config parameter in your dts. See the description of this parameter in the Documentation/devicetree/bindings/input/touchscreen/ti-tsc-adc.txt file:
    ti,wire-config: Different boards could have a different order for
    connecting wires on touchscreen. We need to provide an
    8 bit number where in the 1st four bits represent the
    analog lines and the next 4 bits represent positive/
    negative terminal on that input line. Notations to
    represent the input lines and terminals resoectively
    is as follows:
    AIN0 = 0, AIN1 = 1 and so on till AIN7 = 7.
    XP = 0, XN = 1, YP = 2, YN = 3.

    Also try playing with the lcd clock, i.e. experiment with lower or higher clock speed.

    Best Regards,
    Yordan
  • Thank you for your reply.

    I believe that my wire-config parameters are correct.

    ti,wire-config = <0x00 0x11 0x22 0x33>;

    0x00 → 1st 4-bits=0 → AIN0 → 2nd 4-bits=0 → XP → upper left corner (UL) → Channel-1 on o'scope.

    0x11 → 1st 4-bits=1 → AIN1 → 2nd 4-bits=1 → XN → upper right corner (UR) → Channel-2 on o'scope.

    0x22 → 1st 4-bits=2 → AIN2 → 2nd 4-bits=2 → YP → lower left corner (LL) → Channel-4 on o'scope.

    0x33 → 1st 4-bits=3 → AIN3 → 2nd 4-bits=3 → YN → lower right corner (LR) → Channel-3 on o'scope.

    The line “In the following image Chanel-1 is AIN0 (UL), Chanel-2 is AIN1 (UR), Chanel-4 is AIN2 (LL), and Chanel-3 is AIN3 (LR):” dose not describe the connection between the tscadc and the LCD. Rather, it maps the signals shown on the oscilloscope image to the AIN signals. Am I misunderstanding the meaning of XP, XN, YP, & YN? I thing that the wiring is correct. If I monitor AIN4 (wiper) and press on the UL corner of the LCD, I see the pattern shown in the posted o'scope image for Channel-1. Similarly, pressing on the UR, LL, and LR corners gives the patterns for Channels-2, 4, and 3 respectively.

    The LCD clock frequency is 71.1 MHz. This is recommended by the manufacturer (Densitron). Densirton specifies a range from 68.9 to 73.4 MHz. I fear that going to far out of that range will be detrimental to the image quality, but I will give it a try.

    Update: I have tried LCD clock frequencies from 40 to 80 MHz with no change in the performance of the touch screen.

  • p { margin-bottom: 0.1in; line-height: 120%; }

    I tried different wire-config parameters expecting to see the signals at AIN0 thru AIN3 shift, but they did not. Then I ran evtest for different wire-config parameters. Again there was no change in the output from evtest. These are the parameters I tried:

    ti,wire-config = <0x00 0x11 0x22 0x33>;

    ti,wire-config = <0x10 0x01 0x22 0x33>;

    ti,wire-config = <0x01 0x10 0x22 0x33>;

    ti,wire-config = <0x20 0x11 0x02 0x33>;

    ti,wire-config = <0x10 0x21 0x32 0x03>;

    ti,wire-config = <0x01 0x12 0x23 0x30>;

    Then I tried changing wiring to the touchscreen. By changing the wiring I could change which corners were relatively high and which corners were relatively low, but regardless of wiring or where the screen is touch the ABS_X and ABS_Y values reported by evtest are the same.

    Do I not understand what ABS_X and ABS_Y are? I think that when touching one corner they should both be low, in another corner both high, and in the other corners ABS_X and ABS_Y should be different. Is this correct?

    Could the driver be corrupt? I think that the driver is “.../linux.../drivers/input/touchscreen/ti_am335x_tsc.c”. Is this correct? Can I get a fresh copy without downloading the whole SDK?

    Any ideas?

  • ti_am335x_tsc.c driver did not change between kernel 4.4.19 (TISDK03.01.00.06) & kernel 4.4.41 (latest TISDK03.02.00.05). If you want a fresh copy of the driver, you can download latest sdk & copy the .c file in their source tree.

    ABS_X and ABS_Y values are derived from the kernel value, see static irqreturn_t titsc_irq(int irq, void *dev):

                if (z <= MAX_12BIT) {

                    input_report_abs(input_dev, ABS_X, x);

                    input_report_abs(input_dev, ABS_Y, y);

                    input_report_abs(input_dev, ABS_PRESSURE, z);

                    input_report_key(input_dev, BTN_TOUCH, 1);

                    input_sync(input_dev);

                }

    Another suggestion that comes to my mind (I've used this when debugging adc drivers) is to change the x_plate resistance in dts. I have no universal solution here, they should experiment (with lower & higher values) to see which will improve the touchscreen behavior.

    Also they can change the formula for calculating the pressure, in my experience I've used:

                                                                                            eqn (1)

    instead of what is currently implemented in the driver:

    Unfortunately I can't reproduce their issue on my boards, so I am not sure how helpful I will be.

    Best Regards,

    Yordan

    Yordan,

    In your email, when you say “… I can't reproduce their issue on my boards ...”, do you mean that your board integrated with a 5-wire touch panel works as expected; or do you mean that you do not have the equipment to reproduce the issue (i.e.  5-wire touch panel)?

     I am now using a fresh copy of TI's latest SDK (ti-processor-sdk-linux-am335x-evm-03.03.00.04). The results are the same (X and Y values always change together regardless of where the panel is touched).

     I tried different values of x_plate resistance (20, 50, 100, 200, 300, and 400 Ohms).

     For some unknown reason, your formula for calculating the pressure did not download with the e-mail. I do not think that the problem is with the pressure calculation. The system is able to detect when I touch and release the panel. When I touch the panel, evtest starts reporting values. When I stop touching the panel, evtest stops reporting values.

     I have tried different “wire-config” values. I have tried 40 different combinations. In 37 cases the results were that when touching the upper left (UL) or lower left (LL) corners of the panel, both the X and Y values were high (about 3800). When touching the upper right (UR) or lower right (LR) corners, both the X and Y values were low (about 500). In the other three cases, when touching the UL or LL corners, there is no response.  When touching the UR or LR corners, the response is the same as the other 37 cases (both the X and Y values were low). The “wire-config” values I tried were:

    <0x00 0x11 0x22 0x33>, <0x01 0x10 0x22 0x33>, <0x00 0x12 0x21 0x33>, <0x02 0x10 0x21 0x33>, <0x01 0x12 0x20 0x33>, <0x02 0x11 0x20 0x33>, <0x00 0x11 0x23 0x32>, <0x01 0x10 0x23 0x32>, <0x00 0x13 0x21 0x32>, <0x03 0x10 0x21 0x32>, <0x01 0x13 0x20 0x32>, <0x03 0x11 0x20 0x32>, <0x00 0x12 0x23 0x31>, <0x02 0x10 0x23 0x31>, <0x00 0x13 0x22 0x31>, <0x03 0x10 0x22 0x31>, <0x02 0x13 0x20 0x31>, <0x03 0x12 0x20 0x31>, <0x01 0x12 0x23 0x30>, <0x02 0x11 0x23 0x30>, <0x01 0x13 0x22 0x30>, <0x03 0x11 0x22 0x30>, <0x02 0x13 0x21 0x30>, <0x03 0x12 0x21 0x30>, <0x10 0x03 0x21 0x32>, <0x00 0x23 0x11 0x32>, <0x20 0x03 0x11 0x32>, <0x10 0x23 0x01 0x32>, <0x20 0x13 0x01 0x32>, <0x00 0x13 0x31 0x22>, <0x10 0x03 0x31 0x22>, <0x00 0x33 0x11 0x22>, <0x30 0x03 0x11 0x22>, <0x10 0x33 0x01 0x22>, <0x30 0x13 0x01 0x22>, <0x00 0x23 0x31 0x12>, <0x20 0x03 0x31 0x12>, <0x00 0x33 0x21 0x12>, <0x30 0x03 0x21 0x12>, <0x20 0x33 0x01 0x12>.

    The three that resulted in no response when touching the UL or LL corners were: <0x00 0x13 0x21 0x32>, <0x00 0x13 0x22 0x31>, <0x00 0x13 0x31 0x22>.

     I used J-tag to look at how the registers are set. I think that Registers STEPCONFIG5 thru STEPCONFIG9 hold the setup for the five X readings. Their value is 0X002401F2. Registers STEPCONFIG12 thru STEPCONFIG16 hold the setup for the five Y readings. Their value is 0X002001F2. I might have which are the X and which are the Y reversed.

     Ron Zander

  • Hi Ron,

    I can't reproduce their issue on my boards

    I don't have a board with a 5-wire touch display... so it is impossible for me to reporduce this.

    For some unknown reason, your formula for calculating the pressure did not download with the e-mail.

    Here it is:

    In the past I've implemented it in the code as follows: 

    press1 = ts->x_plate_ohm * x;
    press1 /= 4096;
    press1 *= 4096 - z1;
    press1 /= z1;
    press2 = ts->y_plate_ohm;
    press2 *= 4096 - y;
    press2 /= 4096;
    pressure = press1 - press2;

    x & y are the values returned from the read coordinates function... 

    Do you have a reference TI design at your disposal to compare the results from evtest?

    Best Regards,
    Yordan 

  • Yordan,
    Thank you for your reply.
    When is TI going to get you a 5-wire resistive touch panel so we can resolve this?
    This is probably just terminology, but I notice that the equation for pressure references an x-plate and y-plate. Unlike 4-wire, in 5-wire x and y are on the same plate.
    I do not have a reference TI design. Our board is based on BBB design. The 5-wire touch panel interface is directly to AIN0 thru AIN4 (AIN0=UL, AIN1=UR, AIN2=LL, AIN3=LR, AIN4=WIPER).
  • Ron,

    Can you apply these two patches and let us know if your Y-coordinate starts working:
    www.spinics.net/.../msg110646.html
    www.spinics.net/.../msg110645.html

    Jason Reeder
  • Jason,

    Thank you.

    Apparently the patches were made for a earlier version the driver. The patch utility could only match up some of the code to automatically make the updates. So we went in and did it the old fashioned way: edited the driver manually while looking at the patch file changes. Then compile, look at errors, edit, fix, compile, etc... until the kernel built successfully. Now the X and Y values are different and correspond to where the touch panel is touched.

    Ron

  • Ron,

    In  an  effort to mainline the fixes for our 5-wire touchscreen support, a developer in my group has asked if you could try out the attached kernel and see if your touchscreen continues to work.

    Thanks for any help in upstreaming this fix.

    Jason

    /cfs-file/__key/communityserver-discussions-components-files/791/zImage

  • Hi Sir

    have you verified above patches can support 5-wire touch feature and work normally ?

    BTW , have you update the solutions to mainline ?

    BR
    Yimin
  • I replaced the kernel we are using with the one you provided. Testing with evtest showed that the X-Y coordinates are now correct.

    There are other problems with the driver. When I lift my finger from the touch module, both X and Y coordinates go high. Also there is a long delay between the time I lift my finger and when evtest stops displaying more data. There is a post at: https://e2e.ti.com/support/arm/sitara_arm/f/791/p/319613/1298838 - that addresses a number of touch screen issues. As long as you are working on the driver you may find something there worth incorporating.

  • Ron, thanks for confirming that the zImage corrected the X-Y coordinates issue.

    Is there anything in the post that you linked to that corrects the two problems that you mentioned? If not we may need to start a new E2E thread to track them.

    Jason Reeder
  • We have not corrected the other two problems. Any assistance will be appreciated.

  • Here are the responses from the developer:

    Ron Zander said:
    When I lift my finger from the touch module, both X and Y coordinates go high

    I am not aware of this problem in particular and I don't see this issue on my 4-wire touch module available with am335x evm.

    Does this happen at every touch release? Is it always the last reported evtest event for which both X and Y go high?

    Resistive touch screen is a bit sensitive to noise. I highly recommend using stylus for testing and to make sure that touch module is fitted firmly and does not move on removing stylus from the screen.

    Also since, resistive touchscreens are prone to noise, it is expected that userspace does some pre-processing/filtering before using the raw events from touch driver(evtest does not do any filtering). Filtering would eliminate such one off wrong values.

    Ron Zander said:
    Also there is a long delay between the time I lift my finger and when evtest stops displaying more data.

    This is expected. evtest printing to console cannot keep up with the rate at which Touch driver is reporting events. Hence, there would be a backlog of prints to be dumped to console even after lifting finger from touch module.

    Ron Zander said:
    There is a post at: https://e2e.ti.com/support/arm/sitara_arm/f/791/p/319613/1298838 - that addresses a number of touch screen issues. As long as you are working on the driver you may find something there worth incorporating.

    The issues reported in above thread that you mentioned lead to a substantial rework of the am335x touchscreen driver. All those issues should be addressed in the driver (IIRC, those patches were part of kernel v4.4+ which should be there in the version of the Proc SDK that you are using).

    Jason Reeder