ST1633 Touch screen on PB(ish) board.

150 views
Skip to first unread message

Dave

unread,
Apr 8, 2019, 2:53:58 AM4/8/19
to BeagleBoard
Trying to get an ST1633 touch screen working with a PB derived board. 
I had to jump to Linux 5.1-rc3 (cross building with bb-kernel) to get the sitronix driver patched with st1633 support. 

I have CONFIG_TOUCHSCREEN_ST1232 enabled in .config. 

I have I2C2 working on the board - I can use 
i2cdetect -y -r 2
to find i2c devices that I breadboard onto I2C2 for testing

I can not seem to detect the ST1633 when connected to the PB board, 
But I can detect it if I bread board it to another Linux box. 
I am guessing at the moment that the st1633 reset line may be in the wrong state. 

I am trying to make sure I have the TS.RES set correctly. 
I have verified that I have the right pin by setting it to a gpio_led in the device tree overlay, breadboarding an LED to it and I can toggle the LED from /sys/

Currently I have the devicetree pinctl as 

pinctrl_st1633: pinmux_pinctrl_st1633 {
pinctrl-single,pins = <
                                /* (B13) mcasp0_fsx   GPIO111 GPIO3_15 LCD.TS.INT */
AM33XX_IOPAD(0x0994, PIN_INPUT_PULLDOWN | MUX_MODE7)
/* (A13) mcasp0_aclkx GPIO110 GPIO3_14 LCD.TS.RES */
AM33XX_IOPAD(0x0990, PIN_OUTPUT_PULLUP | MUX_MODE7)
>;

I have the st1633 setup as 

fragment@6 {
target = <&i2c2>;
__overlay__ {
status = "okay";
pinctrl-names = "default";
pinctrl-0 = <&pb_i2c2_pins>;

/* this is the configuration part */
clock-frequency = <100000>;
#address-cells = <1>;
#size-cells = <0>;

            sitronix_ts@55 {
status = "okay";
                                compatible = "sitronix,st1633";
                      reg = <0x55>;
                
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_st1633>;

interrupt-parent = <&gpio3>;
                                interrupts = <15 0>;
                                reset-gpios = <&gpio3 14 GPIO_ACTIVE_LOW>;

touchscreen-size-x = <272>;
touchscreen-size-y = <480>;
touchscreen-swapped-x-y;
};
};
};

But when linux boots I am not seeing anything in the logs that suggested in even tried to load the sitronix driver. 

Any ideas ?






 




amf

unread,
Apr 8, 2019, 10:51:40 AM4/8/19
to BeagleBoard
is CONFIG_TOUCHSCREEN_ST1232  configured as built in or a module of linux,
if it's a module, then use modprobe <driver name> and see if it loads

Dave

unread,
Apr 8, 2019, 11:56:21 PM4/8/19
to BeagleBoard
Built-in 
But I will change it. 
I might get more messages as a module. 

Dave

unread,
Apr 13, 2019, 6:16:22 AM4/13/19
to BeagleBoard
I am building st1232.c as a module 
it is now getting loaded correctly by the device tree above. 
It completes the st1232_probe without error.

but the touch screen is not working
I beleive I am not getting any interrupts when I touch the display. 

I am assuming that 
interrupt-parent = <&gpio3>;
interrupts = <15 0>;

is correct for gpio3_15

I am also presuming that INPUT_PULLDOWN is the correct configuration for GPIO3_15

Dave

unread,
May 9, 2019, 1:59:24 AM5/9/19
to BeagleBoard
I was able to get this working - it required using the Linux 5.1 Kernel. 

Hanah anees

unread,
Sep 20, 2019, 11:24:16 PM9/20/19
to BeagleBoard
Just curious how is the PB talking to display controller? spi?
Reply all
Reply to author
Forward
0 new messages