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/BEAGLEBK: SPI configuration issue

Part Number: BEAGLEBK


Tool/software: Linux

Hello,

I am using an ST7789V based LCD with the BeagleBone Black.  I'm using an Arago platform with the 4.9.59 Kernel from the TI-SDK 4.02.

The ST7789V requires configuration over SPI before it will accept RGB signals from the Sitara.

I have the ST7789V kernel driver built and loaded.  It reports:

[   10.776839] fb_st7789v: module is from the staging directory, the quality is unknown, you have been warned.
[   10.952039] fb_st7789v spi1.0: buswidth is not set
[   11.089247] fb_st7789v: probe of spi1.0 failed with error -22

However, it should be using SPI0 on the BeagleBone's P9 Connector.  My device tree looks like this:

&am33xx_pinmux {
        spi0_pins: spi0_pins {
                pinctrl-single,pins = <
                        0x150 (PIN_INPUT_PULLUP | MUX_MODE0)    /* P9.22, spi0_sclk */
                        0x154 (PIN_INPUT_PULLUP | MUX_MODE0)    /* P9.21, spi0_d0 (miso) */
                        0x158 (PIN_OUTPUT_PULLUP | MUX_MODE0)   /* P9.18, spi0_d1 (mosi) */
                        0x15c (PIN_OUTPUT_PULLUP | MUX_MODE0)   /* P9.17, spi0_cs0 */
                >;
        };
};

&spi0 {
        #address-cells = <1>;
        #size-cells = <0>;
        
        status = "okay";
        pinctrl-names = "default";
        pinctrl-0 = <&spi0_pins>;

        panel@0 {
                compatible = "sitronix,st7789v";
                reg = <0>;
                reset-gpios = <&gpio1 28 GPIO_ACTIVE_LOW>;
                spi-max-frequency = <100000>;
                spi-cpol;
                spi-cpha;
        };
};

That largely comes from the documentation here:

github.com/.../sitronix,st7789v.txt

I've tried rapidly loading and unloading the fb_st7789v driver and see no traffic on the SPI0 pins using a scope.

Why is the kernel looking at SPI1.0 instead of SPI0.0 ?

Thanks,

Matt

  • Hi Matt,

    Can you share your full boot up log (not just part of it) for analysis? You can put it in txt file and attach here. Please attach also your DTS file.

    Regards,
    Pavel
  • Hi Pavel,

    Please see attached...

    /dts-v1/;
    
    #include "am33xx.dtsi"
    #include "am335x-bone-common.dtsi"
    
    / {
    	model = "TI AM335x BeagleBone Black";
    	compatible = "ti,am335x-bone-black", "ti,am335x-bone", "ti,am33xx";
    };
    
    &am33xx_pinmux {
            bb_lcd_pwm_backlight_pins: pinmux_bb_lcd_pwm_backlight_pins {
    	        pinctrl-single,pins = <
    	                0x48 0x06       /* gpmc_a2.ehrpwm1a, OMAP_MUX_MODE6 | AM33XX_PIN_OUTPUT */
    		>;
    	};
    									
    
            lcd_pins: lcd_pins {
    		pinctrl-single,pins = <
    			0xa0 (PIN_OUTPUT | MUX_MODE0)            /* lcd_data0 */
    			0xa4 (PIN_OUTPUT | MUX_MODE0)            /* lcd_data1 */
    			0xa8 (PIN_OUTPUT | MUX_MODE0)            /* lcd_data2 */
    			0xac (PIN_OUTPUT | MUX_MODE0)            /* lcd_data3 */
    			0xb0 (PIN_OUTPUT | MUX_MODE0)            /* lcd_data4 */
    			0xb4 (PIN_OUTPUT | MUX_MODE0)            /* lcd_data5 */
    			0xb8 (PIN_OUTPUT | MUX_MODE0)            /* lcd_data6 */
    			0xbc (PIN_OUTPUT | MUX_MODE0)            /* lcd_data7 */
    			0xc0 (PIN_OUTPUT | MUX_MODE0)            /* lcd_data8 */
    			0xc4 (PIN_OUTPUT | MUX_MODE0)            /* lcd_data9 */
    			0xc8 (PIN_OUTPUT | MUX_MODE0)            /* lcd_data10 */
    			0xcc (PIN_OUTPUT | MUX_MODE0)            /* lcd_data11 */
    			0xd0 (PIN_OUTPUT | MUX_MODE0)            /* lcd_data12 */
    			0xd4 (PIN_OUTPUT | MUX_MODE0)            /* lcd_data13 */
    			0xd8 (PIN_OUTPUT | MUX_MODE0)            /* lcd_data14 */
    			0xdc (PIN_OUTPUT | MUX_MODE0)            /* lcd_data15 */
    			0x3c (PIN_OUTPUT | MUX_MODE0)            /* lcd_data16 */
    			0x38 (PIN_OUTPUT | MUX_MODE0)            /* lcd_data17 */
    			0xe0 (PIN_OUTPUT_PULLDOWN | MUX_MODE0)   /* lcd_vsync */
    			0xe4 (PIN_OUTPUT_PULLDOWN | MUX_MODE0)   /* lcd_hsync */
    			0xe8 (PIN_OUTPUT_PULLDOWN | MUX_MODE0)   /* lcd_pclk */
    			0xec (PIN_OUTPUT_PULLDOWN | MUX_MODE0)   /* lcd_ac_bias_en */
    		>;
    	};
    	spi0_pins: spi0_pins {
    	        pinctrl-single,pins = <
    		        0x150 (PIN_INPUT_PULLUP | MUX_MODE0)    /* P9.22, spi0_sclk */
    			0x154 (PIN_INPUT_PULLUP | MUX_MODE0)    /* P9.21, spi0_d0 (miso) */
    			0x158 (PIN_OUTPUT_PULLUP | MUX_MODE0)   /* P9.18, spi0_d1 (mosi) */
    			0x15c (PIN_OUTPUT_PULLUP | MUX_MODE0)   /* P9.17, spi0_cs0 */
    		>;
    	};
    	lcdreset_pins: lcdreset_pins {
    	        pinctrl-single,pins = <
    			0x78 (PIN_OUTPUT_PULLUP | MUX_MODE7)    /* P9.12, gpio1_28 reset */
    		>;
    	};
    };
    
    &spi0 {
            #address-cells = <1>;
            #size-cells = <0>;
    	
            status = "okay";
    	pinctrl-names = "default";
    	pinctrl-0 = <&spi0_pins>;
    
    	panel@0 {
    		compatible = "sitronix,st7789v";
    		reg = <0>;
    		reset-gpios = <&gpio1 28 GPIO_ACTIVE_LOW>;
    		spi-max-frequency = <100000>;
    		spi-cpol;
    		spi-cpha;
    	};
    };
    
    &lcdc {
    	status = "okay";
    };
    
    &sgx {
    	status = "okay";
    };
    
    &epwmss1 {
            status = "okay";
    };
    
    &ehrpwm1 {
            pinctrl-names = "default";
    	pinctrl-0 = <&bb_lcd_pwm_backlight_pins>;
    	status = "okay";
    };
    			
    
    / {
    
    
    	lcd0: display {
    		status = "okay";
    		compatible = "ti,tilcdc,panel";
    		label = "lcd";
    		pinctrl-names = "default";
    		pinctrl-0 = <&lcd_pins>;
    
    		panel-info {
    			ac-bias           = <255>;
    			ac-bias-intrpt    = <0>;
    			dma-burst-sz      = <16>;
    			bpp               = <24>;
    			fdd               = <0x80>;
    			sync-edge         = <0>;
    			sync-ctrl         = <1>;
    			raster-order      = <0>;
    			fifo-th           = <0>;
    		};
    
    		display-timings {
    			native-mode = <&timing0>;
    			timing0: 320x240 {
    				clock-frequency = <9200000>;
    				hactive = <320>;
    				vactive = <240>;
    				hfront-porch = <8>;
    				hback-porch = <7>;
    				hsync-len = <8>;
    				vback-porch = <2>;
    				vfront-porch = <3>;
    				vsync-len = <4>;
    				hsync-active = <0>;
    				vsync-active = <0>;
    				de-active = <1>;
    				pixelclk-active = <0>;
    			};
    		};
    	};
    
            fb {
    		compatible = "ti,am33xx-tilcdc";
    		reg = <0x4830e000 0x1000>;
    		interrupt-parent = <&intc>;
    		interrupts = <36>;
    		ti,hwmods = "lcdc";
    	};
    
            backlight {
                    status = "okay";
                    compatible = "pwm-backlight";
                    pwms = <&ehrpwm1 0 500000>;
                    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 = <100>;
            };
    
    };
    
    &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>;
    	};
    };
    
    &rtc {
    	system-power-controller;
    };
    
    

    [    0.000000] Booting Linux on physical CPU 0x0
    [    0.000000] Linux version 4.9.59-innov8 (oe-user@oe-host) (gcc version 7.2.1 20171011 (Linaro GCC 7.2-2017.11) ) #1 PREEMPT Mon Apr 16 23:53:50 UTC 2018
    [    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] OF: fdt:Machine model: TI AM335x BeagleBone Black
    [    0.000000] efi: Getting EFI parameters from FDT:
    [    0.000000] efi: UEFI not found.
    [    0.000000] cma: Reserved 48 MiB at 0x9d000000
    [    0.000000] Memory policy: Data cache writeback
    [    0.000000] On node 0 totalpages: 131072
    [    0.000000] free_area_init_node: node 0, pgdat c0c451cc, node_mem_map dcb61000
    [    0.000000]   Normal zone: 1152 pages used for memmap
    [    0.000000]   Normal zone: 0 pages reserved
    [    0.000000]   Normal zone: 131072 pages, LIFO batch:31
    [    0.000000] CPU: All CPU(s) started in SVC mode.
    [    0.000000] AM335X ES2.1 (sgx neon)
    [    0.000000] pcpu-alloc: s0 r0 d32768 u32768 alloc=1*32768
    [    0.000000] pcpu-alloc: [0] 0 
    [    0.000000] Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 129920
    [    0.000000] Kernel command line: console=ttyO0,115200n8 consoleblank=0 root=/dev/mmcblk0p2 ro 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: 457960K/524288K available (7168K kernel code, 286K rwdata, 2444K rodata, 1024K init, 288K bss, 17176K reserved, 49152K cma-reserved, 0K highmem)
    [    0.000000] Virtual kernel memory layout:
                       vector  : 0xffff0000 - 0xffff1000   (   4 kB)
                       fixmap  : 0xffc00000 - 0xfff00000   (3072 kB)
                       vmalloc : 0xe0800000 - 0xff800000   ( 496 MB)
                       lowmem  : 0xc0000000 - 0xe0000000   ( 512 MB)
                       pkmap   : 0xbfe00000 - 0xc0000000   (   2 MB)
                       modules : 0xbf000000 - 0xbfe00000   (  14 MB)
                         .text : 0xc0008000 - 0xc0800000   (8160 kB)
                         .init : 0xc0b00000 - 0xc0c00000   (1024 kB)
                         .data : 0xc0c00000 - 0xc0c479e8   ( 287 kB)
                          .bss : 0xc0c479e8 - 0xc0c8fa34   ( 289 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.000029] clocksource: timer1: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 79635851949 ns
    [    0.000038] OMAP clocksource: timer1 at 24000000 Hz
    [    0.000189] clocksource_probe: no matching clocksources found
    [    0.000355] Console: colour dummy device 80x30
    [    0.000380] WARNING: Your 'console=ttyO0' has been replaced by 'ttyS0'
    [    0.000386] This ensures that you still see kernel messages. Please
    [    0.000391] update your kernel commandline.
    [    0.000411] Calibrating delay loop... 996.14 BogoMIPS (lpj=4980736)
    [    0.089226] pid_max: default: 32768 minimum: 301
    [    0.089319] Security Framework initialized
    [    0.089353] Mount-cache hash table entries: 1024 (order: 0, 4096 bytes)
    [    0.089362] Mountpoint-cache hash table entries: 1024 (order: 0, 4096 bytes)
    [    0.090079] CPU: Testing write buffer coherency: ok
    [    0.090428] Setting up static identity map for 0x80100000 - 0x80100060
    [    0.091177] EFI services will not be available.
    [    0.092329] devtmpfs: initialized
    [    0.102296] VFP support v0.3: implementor 41 architecture 3 part 30 variant c rev 3
    [    0.102624] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604462750000 ns
    [    0.102647] futex hash table entries: 256 (order: -1, 3072 bytes)
    [    0.106150] pinctrl core: initialized pinctrl subsystem
    [    0.107262] NET: Registered protocol family 16
    [    0.108937] DMA: preallocated 256 KiB pool for atomic coherent allocations
    [    0.121704] omap_hwmod: debugss: _wait_target_disable failed
    [    0.199216] cpuidle: using governor ladder
    [    0.229205] cpuidle: using governor menu
    [    0.232960] gpio gpiochip0: (gpio): added GPIO chardev (254:0)
    [    0.233305] gpiochip_setup_dev: registered GPIOs 0 to 31 on device: gpiochip0 (gpio)
    [    0.234545] OMAP GPIO hardware version 0.1
    [    0.235313] gpio gpiochip1: (gpio): added GPIO chardev (254:1)
    [    0.235611] gpiochip_setup_dev: registered GPIOs 32 to 63 on device: gpiochip1 (gpio)
    [    0.237329] gpio gpiochip2: (gpio): added GPIO chardev (254:2)
    [    0.237688] gpiochip_setup_dev: registered GPIOs 64 to 95 on device: gpiochip2 (gpio)
    [    0.239503] gpio gpiochip3: (gpio): added GPIO chardev (254:3)
    [    0.239793] gpiochip_setup_dev: registered GPIOs 96 to 127 on device: gpiochip3 (gpio)
    [    0.248394] No ATAGs?
    [    0.248419] hw-breakpoint: debug architecture 0x4 unsupported.
    [    0.286391] edma 49000000.edma: TI EDMA DMA engine driver
    [    0.286702] of_get_named_gpiod_flags: can't parse 'gpio' property of node '/fixedregulator0[0]'
    [    0.289438] omap_i2c 44e0b000.i2c: could not find pctldev for node /ocp/l4_wkup@44c00000/scm@210000/pinmux@800/pinmux_i2c0_pins, deferring probe
    [    0.289491] omap_i2c 4819c000.i2c: could not find pctldev for node /ocp/l4_wkup@44c00000/scm@210000/pinmux@800/pinmux_i2c2_pins, deferring probe
    [    0.289610] media: Linux media interface: v0.10
    [    0.289664] Linux video capture interface: v2.00
    [    0.289701] pps_core: LinuxPPS API ver. 1 registered
    [    0.289708] pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti <giometti@linux.it>
    [    0.289729] PTP clock support registered
    [    0.289771] EDAC MC: Ver: 3.0.0
    [    0.290756] omap-mailbox 480c8000.mailbox: omap mailbox rev 0x400
    [    0.291076] Advanced Linux Sound Architecture Driver Initialized.
    [    0.292201] clocksource: Switched to clocksource timer1
    [    0.301272] NET: Registered protocol family 2
    [    0.301943] TCP established hash table entries: 4096 (order: 2, 16384 bytes)
    [    0.301987] TCP bind hash table entries: 4096 (order: 2, 16384 bytes)
    [    0.302025] TCP: Hash tables configured (established 4096 bind 4096)
    [    0.302091] UDP hash table entries: 256 (order: 0, 4096 bytes)
    [    0.302108] UDP-Lite hash table entries: 256 (order: 0, 4096 bytes)
    [    0.302297] NET: Registered protocol family 1
    [    0.302694] RPC: Registered named UNIX socket transport module.
    [    0.302705] RPC: Registered udp transport module.
    [    0.302711] RPC: Registered tcp transport module.
    [    0.302717] RPC: Registered tcp NFSv4.1 backchannel transport module.
    [    0.302729] PCI: CLS 0 bytes, default 64
    [    0.303567] hw perfevents: enabled with armv7_cortex_a8 PMU driver, 5 counters available
    [    0.305663] workingset: timestamp_bits=14 max_order=17 bucket_order=3
    [    0.312461] squashfs: version 4.0 (2009/01/31) Phillip Lougher
    [    0.313302] NFS: Registering the id_resolver key type
    [    0.313342] Key type id_resolver registered
    [    0.313348] Key type id_legacy registered
    [    0.313389] ntfs: driver 2.1.32 [Flags: R/O].
    [    0.317896] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 246)
    [    0.317917] io scheduler noop registered
    [    0.317924] io scheduler deadline registered
    [    0.318070] io scheduler cfq registered (default)
    [    0.319314] pinctrl-single 44e10800.pinmux: 142 pins at pa f9e10800 size 568
    [    0.321966] pwm-backlight backlight: GPIO lookup for consumer enable
    [    0.321977] pwm-backlight backlight: using device tree for GPIO lookup
    [    0.321987] of_get_named_gpiod_flags: can't parse 'enable-gpios' property of node '/backlight[0]'
    [    0.321993] of_get_named_gpiod_flags: can't parse 'enable-gpio' property of node '/backlight[0]'
    [    0.321998] pwm-backlight backlight: using lookup tables for GPIO lookup
    [    0.322005] pwm-backlight backlight: lookup for GPIO enable failed
    [    0.322024] backlight supply power not found, using dummy regulator
    [    0.322149] OF: /backlight: arguments longer than property
    [    0.322163] pwm-backlight backlight: unable to request PWM
    [    0.322399] pwm-backlight: probe of backlight failed with error -22
    [    0.374996] Serial: 8250/16550 driver, 10 ports, IRQ sharing disabled
    [    0.378345] 44e09000.serial: ttyS0 at MMIO 0x44e09000 (irq = 158, base_baud = 3000000) is a 8250
    [    1.000929] console [ttyS0] enabled
    [    1.006086] omap_rng 48310000.rng: OMAP Random Number Generator ver. 20
    [    1.012918] [drm] Initialized
    [    1.016744] panel display: GPIO lookup for consumer enable
    [    1.016752] panel display: using device tree for GPIO lookup
    [    1.016763] of_get_named_gpiod_flags: can't parse 'enable-gpios' property of node '/display[0]'
    [    1.016768] of_get_named_gpiod_flags: can't parse 'enable-gpio' property of node '/display[0]'
    [    1.016773] panel display: using lookup tables for GPIO lookup
    [    1.016780] panel display: lookup for GPIO enable failed
    [    1.017630] [drm] Supports vblank timestamp caching Rev 2 (21.10.2013).
    [    1.024351] [drm] No driver support for vblank timestamp query.
    [    1.045947] Console: switching to colour frame buffer device 40x30
    [    1.052864] tilcdc 4830e000.lcdc: fb0:  frame buffer device
    [    1.083194] ------------[ cut here ]------------
    [    1.087858] WARNING: CPU: 0 PID: 1 at /src/tisdk/build/arago-tmp-external-linaro-toolchain/work-shared/beagle-dens2.8/kernel-source/arch/arm/mach-omap2/omap_hwmod.c:2136 _enable+0x270/0x2e0
    [    1.104789] omap_hwmod: lcdc: enabled state can only be entered from initialized, idle, or disabled state
    [    1.114392] Modules linked in:
    [    1.117468] CPU: 0 PID: 1 Comm: swapper Not tainted 4.9.59-innov8 #1
    [    1.123844] Hardware name: Generic AM33XX (Flattened Device Tree)
    [    1.129958] Backtrace: 
    [    1.132437] [<c010b5f0>] (dump_backtrace) from [<c010b8cc>] (show_stack+0x18/0x1c)
    [    1.140040]  r7:00000009 r6:00000000 r5:c0993ab4 r4:dc061bf0
    [    1.145728] [<c010b8b4>] (show_stack) from [<c03d0170>] (dump_stack+0x24/0x28)
    [    1.152990] [<c03d014c>] (dump_stack) from [<c012b270>] (__warn+0xe8/0x100)
    [    1.159982] [<c012b188>] (__warn) from [<c012b2c8>] (warn_slowpath_fmt+0x40/0x48)
    [    1.167496]  r9:00000004 r8:c011d9ec r7:00000000 r6:dc140ec0 r5:a0000013 r4:c0993cd4
    [    1.175272] [<c012b28c>] (warn_slowpath_fmt) from [<c011bd80>] (_enable+0x270/0x2e0)
    [    1.183045]  r3:c099562c r2:c0993cd4
    [    1.186631]  r4:c0c08c94
    [    1.189173] [<c011bb10>] (_enable) from [<c011c588>] (omap_hwmod_enable+0x40/0x88)
    [    1.196774]  r7:00000000 r6:dc140ec0 r5:a0000013 r4:ffffe000
    [    1.202458] [<c011c548>] (omap_hwmod_enable) from [<c011d998>] (omap_device_enable+0x48/0x9c)
    [    1.211016]  r5:00000000 r4:00000001
    [    1.214605] [<c011d950>] (omap_device_enable) from [<c011da04>] (_od_runtime_resume+0x18/0x4c)
    [    1.223252]  r7:00000000 r6:c011d9ec r5:00000000 r4:dc142810
    [    1.228948] [<c011d9ec>] (_od_runtime_resume) from [<c0533ff8>] (__rpm_callback+0x198/0x26c)
    [    1.237417]  r5:00000000 r4:dc142810
    [    1.241008] [<c0533e60>] (__rpm_callback) from [<c05340f4>] (rpm_callback+0x28/0x88)
    [    1.248784]  r10:c0159710 r9:00000004 r8:c011d9ec r7:00000000 r6:c0c13e00 r5:c0c302b0
    [    1.256643]  r4:dc142810
    [    1.259187] [<c05340cc>] (rpm_callback) from [<c0533b3c>] (rpm_resume+0x50c/0x794)
    [    1.266787]  r7:00000000 r6:c0c13e00 r5:c0c302b0 r4:dc142810
    [    1.272471] [<c0533630>] (rpm_resume) from [<c0533e20>] (__pm_runtime_resume+0x5c/0x9c)
    [    1.280509]  r10:dcb60cbc r9:00000000 r8:dc142800 r7:00000000 r6:dc399310 r5:60000013
    [    1.288368]  r4:ffffe000
    [    1.290920] [<c0533dc4>] (__pm_runtime_resume) from [<c0521224>] (tilcdc_init.constprop.2+0x214/0x658)
    [    1.300263]  r5:dc142810 r4:dc39a800
    [    1.303856] [<c0521010>] (tilcdc_init.constprop.2) from [<c05216c4>] (tilcdc_pdev_probe+0x5c/0x80)
    [    1.312853]  r10:c0c47a00 r9:00000000 r8:00000000 r7:fffffdfb r6:c0c2fc60 r5:ffffffed
    [    1.320713]  r4:dc142810
    [    1.323265] [<c0521668>] (tilcdc_pdev_probe) from [<c052b7c8>] (platform_drv_probe+0x58/0xb4)
    [    1.331822]  r4:dc142810
    [    1.334367] [<c052b770>] (platform_drv_probe) from [<c0529bac>] (driver_probe_device+0x1e4/0x2d0)
    [    1.343276]  r7:c0c2fc60 r6:00000000 r5:c0c85308 r4:dc142810
    [    1.348959] [<c05299c8>] (driver_probe_device) from [<c0529d44>] (__driver_attach+0xac/0xb0)
    [    1.357433]  r9:000000bc r8:c0b3b830 r7:00000000 r6:dc142844 r5:c0c2fc60 r4:dc142810
    [    1.365210] [<c0529c98>] (__driver_attach) from [<c0527d50>] (bus_for_each_dev+0x54/0xa4)
    [    1.373420]  r7:00000000 r6:c0529c98 r5:c0c2fc60 r4:00000000
    [    1.379104] [<c0527cfc>] (bus_for_each_dev) from [<c0529594>] (driver_attach+0x24/0x28)
    [    1.387140]  r6:c0c30438 r5:dc38d500 r4:c0c2fc60
    [    1.391778] [<c0529570>] (driver_attach) from [<c052915c>] (bus_add_driver+0x190/0x214)
    [    1.399816] [<c0528fcc>] (bus_add_driver) from [<c052a6f8>] (driver_register+0x80/0xfc)
    [    1.407853]  r7:c0c47a00 r6:c0b27e94 r5:00000000 r4:c0c2fc60
    [    1.413537] [<c052a678>] (driver_register) from [<c052b720>] (__platform_driver_register+0x48/0x50)
    [    1.422619]  r5:00000000 r4:c0c30438
    [    1.426214] [<c052b6d8>] (__platform_driver_register) from [<c0b27ed0>] (tilcdc_drm_init+0x3c/0x40)
    [    1.435294]  r5:00000000 r4:ffffe000
    [    1.438884] [<c0b27e94>] (tilcdc_drm_init) from [<c0101704>] (do_one_initcall+0x4c/0x180)
    [    1.447103] [<c01016b8>] (do_one_initcall) from [<c0b00e88>] (kernel_init_freeable+0x14c/0x1ec)
    [    1.455838]  r8:c0b3b830 r7:c0c47a00 r6:00000007 r5:c0b4b480 r4:c0a61214
    [    1.462572] [<c0b00d3c>] (kernel_init_freeable) from [<c07e5184>] (kernel_init+0x10/0x110)
    [    1.470873]  r10:00000000 r9:00000000 r8:00000000 r7:00000000 r6:00000000 r5:c07e5174
    [    1.478731]  r4:00000000
    [    1.481275] [<c07e5174>] (kernel_init) from [<c0107bf8>] (ret_from_fork+0x14/0x3c)
    [    1.488872]  r5:c07e5174 r4:00000000
    [    1.492467] ---[ end trace 5870f14c1ca57918 ]---
    [    1.497283] tilcdc 4830e000.fb: use pm_runtime_put_sync_suspend() in driver?
    [    1.504620] [drm] Supports vblank timestamp caching Rev 2 (21.10.2013).
    [    1.511300] [drm] No driver support for vblank timestamp query.
    [    1.517363] genirq: Flags mismatch irq 177. 00000000 (tilcdc) vs. 00000000 (tilcdc)
    [    1.525100] tilcdc 4830e000.fb: failed to install IRQ handler
    [    1.531070] tilcdc: probe of 4830e000.fb failed with error -16
    [    1.548804] brd: module loaded
    [    1.557767] loop: module loaded
    [    1.564216] libphy: Fixed MDIO Bus: probed
    [    1.642238] davinci_mdio 4a101000.mdio: davinci mdio revision 1.6
    [    1.648375] davinci_mdio 4a101000.mdio: detected phy mask fffffffe
    [    1.655433] libphy: 4a101000.mdio: probed
    [    1.659532] davinci_mdio 4a101000.mdio: phy[0]: device 4a101000.mdio:00, driver SMSC LAN8710/LAN8720
    [    1.669432] cpsw 4a100000.ethernet: Detected MACID = e8:eb:11:2c:1c:37
    [    1.676205] cpsw 4a100000.ethernet: device node lookup for pps timer failed
    [    1.683358] cpsw 4a100000.ethernet: cpts: overflow check period 500 (jiffies)
    [    1.692084] mousedev: PS/2 mouse device common for all mice
    [    1.698273] i2c /dev entries driver
    [    1.703558] cpuidle: enable-method property 'ti,am3352' found operations
    [    1.711142] omap_hsmmc 48060000.mmc: GPIO lookup for consumer cd
    [    1.711151] omap_hsmmc 48060000.mmc: using device tree for GPIO lookup
    [    1.711178] of_get_named_gpiod_flags: parsed 'cd-gpios' property of node '/ocp/mmc@48060000[0]' - status (0)
    [    1.711250] omap_hsmmc 48060000.mmc: Got CD GPIO
    [    1.716036] omap_hsmmc 48060000.mmc: GPIO lookup for consumer wp
    [    1.716041] omap_hsmmc 48060000.mmc: using device tree for GPIO lookup
    [    1.716050] of_get_named_gpiod_flags: can't parse 'wp-gpios' property of node '/ocp/mmc@48060000[0]'
    [    1.716056] of_get_named_gpiod_flags: can't parse 'wp-gpio' property of node '/ocp/mmc@48060000[0]'
    [    1.716060] omap_hsmmc 48060000.mmc: using lookup tables for GPIO lookup
    [    1.716068] omap_hsmmc 48060000.mmc: lookup for GPIO wp failed
    [    1.772800] omap_hsmmc 481d8000.mmc: GPIO lookup for consumer cd
    [    1.772811] omap_hsmmc 481d8000.mmc: using device tree for GPIO lookup
    [    1.772897] of_get_named_gpiod_flags: can't parse 'cd-gpios' property of node '/ocp/mmc@481d8000[0]'
    [    1.772903] of_get_named_gpiod_flags: can't parse 'cd-gpio' property of node '/ocp/mmc@481d8000[0]'
    [    1.772909] omap_hsmmc 481d8000.mmc: using lookup tables for GPIO lookup
    [    1.772915] omap_hsmmc 481d8000.mmc: lookup for GPIO cd failed
    [    1.772924] omap_hsmmc 481d8000.mmc: GPIO lookup for consumer wp
    [    1.772929] omap_hsmmc 481d8000.mmc: using device tree for GPIO lookup
    [    1.772934] of_get_named_gpiod_flags: can't parse 'wp-gpios' property of node '/ocp/mmc@481d8000[0]'
    [    1.772938] of_get_named_gpiod_flags: can't parse 'wp-gpio' property of node '/ocp/mmc@481d8000[0]'
    [    1.772943] omap_hsmmc 481d8000.mmc: using lookup tables for GPIO lookup
    [    1.772947] omap_hsmmc 481d8000.mmc: lookup for GPIO wp failed
    [    1.817499] mmc0: host does not support reading read-only switch, assuming write-enable
    [    1.825662] mmc0: new SDHC card at address 0001
    [    1.830819] mmcblk0: mmc0:0001 SD8GB 7.28 GiB 
    [    1.835930] of_get_named_gpiod_flags: parsed 'gpios' property of node '/leds/led2[0]' - status (0)
    [    1.836154] of_get_named_gpiod_flags: parsed 'gpios' property of node '/leds/led3[0]' - status (0)
    [    1.836274] of_get_named_gpiod_flags: parsed 'gpios' property of node '/leds/led4[0]' - status (0)
    [    1.836375] of_get_named_gpiod_flags: parsed 'gpios' property of node '/leds/led5[0]' - status (0)
    [    1.836770] ledtrig-cpu: registered to indicate activity on CPUs
    [    1.838656] NET: Registered protocol family 10
    [    1.846087] sit: IPv6, IPv4 and MPLS over IPv4 tunneling driver
    [    1.846788] NET: Registered protocol family 17
    [    1.847034] Key type dns_resolver registered
    [    1.847253] omap_voltage_late_init: Voltage driver support not added
    [    1.880592]  mmcblk0: p1 p2
    [    1.913314] random: fast init done
    [    1.923323] tps65217 0-0024: TPS65217 ID 0xe version 1.2
    [    1.929276] at24 0-0050: 32768 byte 24c256 EEPROM, writable, 1 bytes/write
    [    1.936340] omap_i2c 44e0b000.i2c: bus 0 rev0.11 at 400 kHz
    [    1.957329] mmc1: new high speed MMC card at address 0001
    [    1.963417] mmcblk1: mmc1:0001 M62704 3.56 GiB 
    [    1.968259] mmcblk1boot0: mmc1:0001 M62704 partition 1 2.00 MiB
    [    1.974588] mmcblk1boot1: mmc1:0001 M62704 partition 2 2.00 MiB
    [    1.986079]  mmcblk1: p1
    [    2.063201] omap_i2c 4819c000.i2c: bus 2 rev0.11 at 100 kHz
    [    2.070859] hctosys: unable to open rtc device (rtc0)
    [    2.076577] ALSA device list:
    [    2.079565]   No soundcards found.
    [    2.086816] EXT4-fs (mmcblk0p2): INFO: recovery required on readonly filesystem
    [    2.094372] EXT4-fs (mmcblk0p2): write access will be enabled during recovery
    [    2.248428] EXT4-fs (mmcblk0p2): recovery complete
    [    2.262226] EXT4-fs (mmcblk0p2): mounted filesystem with ordered data mode. Opts: (null)
    [    2.270459] VFS: Mounted root (ext4 filesystem) readonly on device 179:2.
    [    2.285895] devtmpfs: mounted
    [    2.290381] Freeing unused kernel memory: 1024K
    [    2.861215] systemd[1]: System time before build time, advancing clock.
    [    2.962936] systemd[1]: systemd 234 running in system mode. (+PAM -AUDIT -SELINUX +IMA -APPARMOR +SMACK +SYSVINIT +UTMP -LIBCRYPTSETUP -GCRYPT -GNUTLS +ACL +XZ -LZ4 -SECCOMP +BLKID -ELFUTILS +KMOD -IDN2 -IDN default-hierarchy=hybrid)
    [    2.985485] systemd[1]: Detected architecture arm.
    [    3.024085] systemd[1]: Set hostname to <vip>.
    [    3.764690] systemd[1]: Started Forward Password Requests to Wall Directory Watch.
    [    3.805575] systemd[1]: Created slice System Slice.
    [    3.833807] systemd[1]: Listening on Network Service Netlink Socket.
    [    3.884187] systemd[1]: Listening on Process Core Dump Socket.
    [    3.971553] systemd[1]: Listening on Journal Socket (/dev/log).
    [    4.004349] systemd[1]: Created slice system-getty.slice.
    [    4.032826] systemd[1]: Listening on udev Kernel Socket.
    [    4.461923] cryptodev: loading out-of-tree module taints kernel.
    [    4.486638] cryptodev: driver 1.9 loaded.
    [    4.940859] EXT4-fs (mmcblk0p2): re-mounted. Opts: (null)
    [    5.188900] systemd-journald[109]: Received request to flush runtime journal from PID 1
    [    7.061260] rtc rtc0: 44e3e000.rtc: dev (253:0)
    [    7.061298] omap_rtc 44e3e000.rtc: rtc core: registered 44e3e000.rtc as rtc0
    [    7.195309] fb_st7789v: module is from the staging directory, the quality is unknown, you have been warned.
    [    7.245486] omap_wdt: OMAP Watchdog Timer Rev 0x01: initial timeout 60 sec
    [    7.423552] fb_st7789v spi1.0: buswidth is not set
    [    7.578923] fb_st7789v: probe of spi1.0 failed with error -22
    [    8.114654] omap-sham 53100000.sham: hw accel on OMAP rev 4.3
    [    8.291463] omap-aes 53500000.aes: OMAP AES hw accel rev: 3.2
    [    8.392882] remoteproc remoteproc0: wkup_m3 is available
    [    8.412428] omap-aes 53500000.aes: will run requests pump with realtime priority
    [    8.423636] wkup_m3_ipc 44e11324.wkup_m3_ipc: could not get rproc handle
    [    8.449722] PM: Cannot get wkup_m3_ipc handle
    [    8.481807] wkup_m3_ipc 44e11324.wkup_m3_ipc: could not get rproc handle
    [    8.482030] PM: Cannot get wkup_m3_ipc handle
    [    9.038301] PM: Cannot get wkup_m3_ipc handle
    [    9.047445] remoteproc remoteproc0: powering up wkup_m3
    [    9.071673] remoteproc remoteproc0: Booting fw image am335x-pm-firmware.elf, size 224620
    [    9.071932] remoteproc remoteproc0: remote processor wkup_m3 is now up
    [    9.071953] wkup_m3_ipc 44e11324.wkup_m3_ipc: CM3 Firmware Version = 0x192
    [    9.640328] NET: Registered protocol family 15
    [    9.846088] net eth0: initializing cpsw version 1.12 (0)
    [    9.851450] cpsw 4a100000.ethernet: initialized cpsw ale version 1.4
    [   10.151990] cpsw 4a100000.ethernet: ALE Table size 1024
    [   10.463035] SMSC LAN8710/LAN8720 4a101000.mdio:00: attached PHY driver [SMSC LAN8710/LAN8720] (mii_bus:phy_addr=4a101000.mdio:00, irq=-1)
    [   10.747947] cpts ptp bc clkid 0
    [   10.814083] random: crng init done
    [   10.914160] IPv6: ADDRCONF(NETDEV_UP): eth0: link is not ready
    [   11.344224] Initializing XFRM netlink socket
    [   11.556524] FAT-fs (mmcblk0p1): Volume was not properly unmounted. Some data may be corrupt. Please run fsck.
    [   12.803113] cpsw 4a100000.ethernet eth0: Link is Up - 100Mbps/Full - flow control rx/tx
    [   12.869126] IPv6: ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready
    [   15.618299] PM: bootloader does not support rtc-only!
    [   15.692559] am335x-phy-driver 47401300.usb-phy: GPIO lookup for consumer reset
    [   15.692575] am335x-phy-driver 47401300.usb-phy: using device tree for GPIO lookup
    [   15.692590] of_get_named_gpiod_flags: can't parse 'reset-gpios' property of node '/ocp/usb@47400000/usb-phy@47401300[0]'
    [   15.692597] of_get_named_gpiod_flags: can't parse 'reset-gpio' property of node '/ocp/usb@47400000/usb-phy@47401300[0]'
    [   15.692602] am335x-phy-driver 47401300.usb-phy: using lookup tables for GPIO lookup
    [   15.692610] am335x-phy-driver 47401300.usb-phy: lookup for GPIO reset failed
    [   15.692617] am335x-phy-driver 47401300.usb-phy: GPIO lookup for consumer vbus-detect
    [   15.692622] am335x-phy-driver 47401300.usb-phy: using device tree for GPIO lookup
    [   15.692627] of_get_named_gpiod_flags: can't parse 'vbus-detect-gpios' property of node '/ocp/usb@47400000/usb-phy@47401300[0]'
    [   15.692632] of_get_named_gpiod_flags: can't parse 'vbus-detect-gpio' property of node '/ocp/usb@47400000/usb-phy@47401300[0]'
    [   15.692637] am335x-phy-driver 47401300.usb-phy: using lookup tables for GPIO lookup
    [   15.692641] am335x-phy-driver 47401300.usb-phy: lookup for GPIO vbus-detect failed
    [   15.692725] 47401300.usb-phy supply vcc not found, using dummy regulator
    [   15.710440] usbcore: registered new interface driver usbfs
    [   15.710505] usbcore: registered new interface driver hub
    [   15.752491] usbcore: registered new device driver usb
    [   15.988898] am335x-phy-driver 47401b00.usb-phy: GPIO lookup for consumer reset
    [   15.988916] am335x-phy-driver 47401b00.usb-phy: using device tree for GPIO lookup
    [   15.988928] of_get_named_gpiod_flags: can't parse 'reset-gpios' property of node '/ocp/usb@47400000/usb-phy@47401b00[0]'
    [   15.988935] of_get_named_gpiod_flags: can't parse 'reset-gpio' property of node '/ocp/usb@47400000/usb-phy@47401b00[0]'
    [   15.988940] am335x-phy-driver 47401b00.usb-phy: using lookup tables for GPIO lookup
    [   15.988947] am335x-phy-driver 47401b00.usb-phy: lookup for GPIO reset failed
    [   15.988956] am335x-phy-driver 47401b00.usb-phy: GPIO lookup for consumer vbus-detect
    [   15.988960] am335x-phy-driver 47401b00.usb-phy: using device tree for GPIO lookup
    [   15.988966] of_get_named_gpiod_flags: can't parse 'vbus-detect-gpios' property of node '/ocp/usb@47400000/usb-phy@47401b00[0]'
    [   15.988971] of_get_named_gpiod_flags: can't parse 'vbus-detect-gpio' property of node '/ocp/usb@47400000/usb-phy@47401b00[0]'
    [   15.988975] am335x-phy-driver 47401b00.usb-phy: using lookup tables for GPIO lookup
    [   15.988980] am335x-phy-driver 47401b00.usb-phy: lookup for GPIO vbus-detect failed
    [   15.989054] 47401b00.usb-phy supply vcc not found, using dummy regulator
    [   16.130725] musb-hdrc musb-hdrc.1: MUSB HDRC host driver
    [   16.185492] musb-hdrc musb-hdrc.1: new USB bus registered, assigned bus number 1
    [   16.255108] hub 1-0:1.0: USB hub found
    [   16.295863] hub 1-0:1.0: 1 port detected
    [   16.391815] ti-pruss 4a300000.pruss: creating PRU cores and other child platform devices
    [   16.479159] irq: no irq domain found for /ocp/pruss_soc_bus@4a326000/pruss@4a300000/intc@4a320000 !
    [   16.570732] irq: no irq domain found for /ocp/pruss_soc_bus@4a326000/pruss@4a300000/intc@4a320000 !
    [   16.797862] remoteproc remoteproc1: 4a334000.pru0 is available
    [   16.842101] pru-rproc 4a334000.pru0: PRU rproc node /ocp/pruss_soc_bus@4a326000/pruss@4a300000/pru@4a334000 probed successfully
    [   16.909288] remoteproc remoteproc2: 4a338000.pru1 is available
    [   16.932758] pru-rproc 4a338000.pru1: PRU rproc node /ocp/pruss_soc_bus@4a326000/pruss@4a300000/pru@4a338000 probed successfully
    

    2330.config.txt

  • Matt,

    Check your SPI0 pinmux settings, verify the corresponding Control Module registers have the correct values. Check these from user space with devmem2 tool or omapconf tool.

    I see also you configure the driver to be build as external module:

    CONFIG_FB_TFT_ST7789V=m

    How exactly you then load it in kernel? I do not see modprobe/inmod commands in your log file.

    Regards,
    Pavel