Debian GNU/Linux 8
BeagleBoard.org Debian Image 2015-12-07
root@beaglebone:~# cat /etc/debian_version
8.2
root@beaglebone:~# uname -a
Linux beaglebone 4.1.13-ti-r35 #1 SMP PREEMPT Thu Dec 3 20:56:01 UTC 2015 armv7l GNU/Linux
root@beaglebone:~# echo BB-SPIDEV1 > /sys/devices/platform/bone_capemgr/slots
root@beaglebone:~# cat /sys/devices/platform/bone_capemgr/slots
0: PF---- -1
1: PF---- -1
2: PF---- -1
3: PF---- -1
4: P-O-L- 0 Override Board Name,00A0,Override Manuf,BB-SPIDEV1
root@beaglebone:~# modprobe fbtft_device busnum=1 name=adafruit18 debug=7 verbose=3 gpios=dc:48,reset:60
-
-
Save pdp7/df367e27d90e1f1779736e6b91328b06 to your computer and use it in GitHub Desktop.
pdp7
commented
Aug 25, 2016
root@beaglebone:~# ls -ltar /dev/spidev1*
crw-rw---- 1 root spi 153, 0 Aug 25 04:47 /dev/spidev1.1
Debian 8.5 (2016-08-14) and Linux 4.4.16-ti-r38
root@beaglebone:~# echo BB-SPIDEV1 > /sys/devices/platform/bone_capemgr/slots
root@beaglebone:~# ls -ltar /dev/spidev2.*
crw-rw---- 1 root spi 153, 1 Aug 25 05:01 /dev/spidev2.1
crw-rw---- 1 root spi 153, 0 Aug 25 05:01 /dev/spidev2.0
root@beaglebone:~#
fbtft adafruit18 OK: Upgraded Debian 8.2 image to 8.5 via apt-get upgrade
[ 64.549219] bone_capemgr bone_capemgr: part_number 'BB-SPIDEV1', version 'N/A'
[ 64.549308] bone_capemgr bone_capemgr: slot #4: override
[ 64.549357] bone_capemgr bone_capemgr: Using override eeprom data at slot 4
[ 64.549408] bone_capemgr bone_capemgr: slot #4: 'Override Board Name,00A0,Override Manuf,BB-SPIDEV1'
[ 64.780625] bone_capemgr bone_capemgr: slot #4: dtbo 'BB-SPIDEV1-00A0.dtbo' loaded; overlay id #0
[ 101.345636] fbtft: module is from the staging directory, the quality is unknown, you have been warned.
[ 101.375225] fbtft_device: module is from the staging directory, the quality is unknown, you have been warned.
[ 101.378840] spidev spi1.1: spidev spi1.1 16000kHz 8 bits mode=0x00
[ 101.378899] spidev spi1.0: spidev spi1.0 16000kHz 8 bits mode=0x01
[ 101.391595] spidev spi1.0: Deleting spi1.0
[ 101.395430] fbtft_device: GPIOS used by 'adafruit18':
[ 101.395482] fbtft_device: 'dc' = GPIO48
[ 101.395510] fbtft_device: 'reset' = GPIO60
[ 101.395561] spidev spi1.1: spidev spi1.1 16000kHz 8 bits mode=0x00
[ 101.395603] spi spi1.0: fb_st7735r spi1.0 32000kHz 8 bits mode=0x00
[ 101.429151] fb_st7735r: module is from the staging directory, the quality is unknown, you have been warned.
[ 102.357474] Console: switching to colour frame buffer device 16x20
[ 102.357810] graphics fb0: fb_st7735r frame buffer, 128x160, 40 KiB video memory, 4 KiB DMA buffer memory, fps=20, spi1.0 at 32 MHz
root@beaglebone:~# cat /sys/devices/platform/bone_capemgr/slots
0: PF---- -1
1: PF---- -1
2: PF---- -1
3: PF---- -1
4: P-O-L- 0 Override Board Name,00A0,Override Manuf,BB-SPIDEV1
root@beaglebone:~# ls -ltar /dev/spidev1.1
crw-rw---- 1 root spi 153, 0 Aug 25 06:36 /dev/spidev1.1
root@beaglebone:~# uname -a
Linux beaglebone 4.1.13-ti-r35 #1 SMP PREEMPT Thu Dec 3 20:56:01 UTC 2015 armv7l GNU/Linux
root@beaglebone:~# cat /etc/debian_version
8.5
root@beaglebone:~#
Big difference is /dev/spidev1 versus /dev/spidev2
OK
Linux 4.1.13-ti-r39
BAD
root@beaglebone:# uname -a# ls -ltar^C
Linux beaglebone 4.1.15-ti-r43 #1 SMP PREEMPT Thu Jan 21 22:33:31 UTC 2016 armv7l GNU/Linux
root@beaglebone:
root@beaglebone:# echo BB-SPIDEV1 > /sys/devices/platform/bone_capemgr/slots# ls -ltar /dev/spi*
root@beaglebone:
crw-rw---- 1 root spi 153, 0 Aug 25 08:03 /dev/spidev2.0
crw-rw---- 1 root spi 153, 1 Aug 25 08:03 /dev/spidev2.1
root@beaglebone:~#
OK - Linux beaglebone 4.1.14-bone17
root@beaglebone:~# modprobe fbtft_device busnum=1 verbose=3 name=adafruit18 gpios=dc:48,reset:60
root@beaglebone:~#
root@beaglebone:~# uname -a
Linux beaglebone 4.1.14-bone17 #1 Thu Dec 10 23:08:42 UTC 2015 armv7l GNU/Linux
[ 81.187455] bone_capemgr bone_capemgr: part_number 'BB-SPIDEV1', version 'N/A'
[ 81.187515] bone_capemgr bone_capemgr: slot #4: override
[ 81.187554] bone_capemgr bone_capemgr: Using override eeprom data at slot 4
[ 81.187598] bone_capemgr bone_capemgr: slot #4: 'Override Board Name,00A0,Override Manuf,BB-SPIDEV1'
[ 81.225051] bone_capemgr bone_capemgr: slot #4: dtbo 'BB-SPIDEV1-00A0.dtbo' loaded; overlay id #0
[ 81.249247] spi spi1.1: not using DMA for McSPI
[ 81.249749] spi spi1.0: not using DMA for McSPI
[ 95.506228] fbtft: module is from the staging directory, the quality is unknown, you have been warned.
[ 95.521180] fbtft_device: module is from the staging directory, the quality is unknown, you have been warned.
[ 95.524282] spidev spi1.1: spidev spi1.1 16000kHz 8 bits mode=0x00
[ 95.524325] spidev spi1.0: spidev spi1.0 16000kHz 8 bits mode=0x01
[ 95.524494] spidev spi1.0: Deleting spi1.0
[ 95.535442] spi spi1.0: not using DMA for McSPI
[ 95.535847] fbtft_device: GPIOS used by 'adafruit18':
[ 95.535870] fbtft_device: 'dc' = GPIO48
[ 95.535887] fbtft_device: 'reset' = GPIO60
[ 95.535923] spidev spi1.1: spidev spi1.1 16000kHz 8 bits mode=0x00
[ 95.535953] spi spi1.0: fb_st7735r spi1.0 32000kHz 8 bits mode=0x00
[ 95.571235] fb_st7735r: module is from the staging directory, the quality is unknown, you have been warned.
[ 96.503485] Console: switching to colour frame buffer device 16x20
[ 96.503859] graphics fb0: fb_st7735r frame buffer, 128x160, 40 KiB video memory, 4 KiB DMA buffer memory, fps=20, spi1.0 at 32 MHz
root@beaglebone:~#
BAD Linux 4.4.15-bone11
Linux beaglebone 4.4.15-bone11 #1 Sun Jul 17 13:24:37 UTC 2016 armv7l GNU/Linux
[ 448.974803] bone_capemgr bone_capemgr: part_number 'BB-SPIDEV1', version 'N/A'
[ 448.974867] bone_capemgr bone_capemgr: slot #4: override
[ 448.974906] bone_capemgr bone_capemgr: Using override eeprom data at slot 4
[ 448.974949] bone_capemgr bone_capemgr: slot #4: 'Override Board Name,00A0,Override Manuf,BB-SPIDEV1'
[ 449.014847] bone_capemgr bone_capemgr: slot #4: dtbo 'BB-SPIDEV1-00A0.dtbo' loaded; overlay id #0
[ 476.110087] fbtft: module is from the staging directory, the quality is unknown, you have been warned.
[ 476.131578] fbtft_device: module is from the staging directory, the quality is unknown, you have been warned.
[ 476.151069] spidev spi2.0: spidev spi2.0 16000kHz 8 bits mode=0x01
[ 476.151121] spidev spi2.1: spidev spi2.1 16000kHz 8 bits mode=0x00
[ 476.152237] fbtft_device: GPIOS used by 'adafruit18':
[ 476.152262] fbtft_device: 'dc' = GPIO48
[ 476.152281] fbtft_device: 'reset' = GPIO60
[ 476.152314] spidev spi2.0: spidev spi2.0 16000kHz 8 bits mode=0x01
[ 476.152343] spidev spi2.1: spidev spi2.1 16000kHz 8 bits mode=0x00
[ 476.152372] spi spi1.0: fb_st7735r spi1.0 32000kHz 8 bits mode=0x00
[ 476.181251] fb_st7735r: module is from the staging directory, the quality is unknown, you have been warned.
[ 477.090483] Console: switching to colour frame buffer device 16x20
[ 477.090922] graphics fb0: fb_st7735r frame buffer, 128x160, 40 KiB video memory, 4 KiB DMA buffer memory, fps=20, spi1.0 at 32 MHz
root@beaglebone:~# ls -ltar /dev/spi*
crw-rw---- 1 root spi 153, 0 Aug 26 07:57 /dev/spidev2.0
crw-rw---- 1 root spi 153, 1 Aug 26 07:57 /dev/spidev2.1
FAIL Linux 4.1.30-bone23
Compiled on my skylake nuc from bb-kernel repo
[ 48.963244] bone_capemgr bone_capemgr: part_number 'BB-SPIDEV1', version 'N/A'
[ 48.963306] bone_capemgr bone_capemgr: slot #4: override
[ 48.963344] bone_capemgr bone_capemgr: Using override eeprom data at slot 4
[ 48.963387] bone_capemgr bone_capemgr: slot #4: 'Override Board Name,00A0,Override Manuf,BB-SPIDEV1'
[ 49.001690] bone_capemgr bone_capemgr: slot #4: dtbo 'BB-SPIDEV1-00A0.dtbo' loaded; overlay id #0
[ 57.838702] fbtft: module is from the staging directory, the quality is unknown, you have been warned.
[ 57.857461] fbtft_device: module is from the staging directory, the quality is unknown, you have been warned.
[ 57.860648] spidev spi2.0: spidev spi2.0 16000kHz 8 bits mode=0x01
[ 57.860694] spidev spi2.1: spidev spi2.1 16000kHz 8 bits mode=0x00
[ 57.861505] fbtft_device: GPIOS used by 'adafruit18':
[ 57.861532] fbtft_device: 'dc' = GPIO48
[ 57.861550] fbtft_device: 'reset' = GPIO60
[ 57.861585] spidev spi2.0: spidev spi2.0 16000kHz 8 bits mode=0x01
[ 57.861614] spidev spi2.1: spidev spi2.1 16000kHz 8 bits mode=0x00
[ 57.861644] spi spi1.0: fb_st7735r spi1.0 32000kHz 8 bits mode=0x00
[ 57.895791] fb_st7735r: module is from the staging directory, the quality is unknown, you have been warned.
[ 58.830729] Console: switching to colour frame buffer device 16x20
[ 58.831023] graphics fb0: fb_st7735r frame buffer, 128x160, 40 KiB video memory, 4 KiB DMA buffer memory, fps=20, spi1.0 at 32 MHz
root@beaglebone:~# uname -a
Linux beaglebone 4.1.30-bone23 #1 Fri Aug 26 03:24:22 CDT 2016 armv7l GNU/Linux
You don't need to build fbtft as it is included in the 4.1+ kernels.
However, I've noticed a problem wherein the SPI1 ends up as /dev/spidev2.x instead of /dev/spidev1.x. This seems to prevent fbtft from working. I'm still investigating the issue.
Linux 4.1.14-bone17 is OK. Linux 4.4.15-bone11 is not. I'm trying to determine the difference.
OK: Linux 4.1.14-bone17 compiled by me
root@beaglebone:~# fbi -d /dev/fb0 -T 1 -a BorisTux_w_Logo.png
using "DejaVu Sans Mono-16", pixelsize=16.67 file=/usr/share/fonts/truetype/dejavu/DejaVuSansMono.ttf
root@beaglebone:~# uname -a
Linux beaglebone 4.1.14-bone17 #1 Fri Aug 26 04:14:01 CDT 2016 armv7l GNU/Linux
root@beaglebone:~# modinfo fbtft
filename: /lib/modules/4.1.14-bone17/kernel/drivers/staging/fbtft/fbtft.ko
license: GPL
depends:
staging: Y
intree: Y
vermagic: 4.1.14-bone17 mod_unload modversions ARMv7 thumb2 p2v8
parm: debug:override device debug level (ulong)
parm: dma:Use DMA buffer (bool)
root@beaglebone:~# ls -ltar /dev/spi*
crw-rw---- 1 root spi 153, 0 Aug 27 04:43 /dev/spidev1.1
root@beaglebone:~#
OK Linux 4.1.14-bone17
Linux beaglebone 4.1.14-bone17 #1 Fri Aug 26 04:14:01 CDT 2016
compiled with my debug printout
root@beaglebone:~# modprobe fbtft_device busnum=1 verbose=3 debug=7 name=adafruit18 gpios=dc:48,reset:60
root@beaglebone:~# dmesg
[ 127.276627] fbtft: module is from the staging directory, the quality is unknown, you have been warned.
[ 127.297944] fbtft_device: module is from the staging directory, the quality is unknown, you have been warned.
[ 127.301111] fbtft_device: fbtft_device.c: call pr_spi_devices()
[ 127.307327] spidev spi1.1: spi_device_found spidev spi1.1 16000kHz 8 bits mode=0x00
[ 127.307365] spidev spi1.0: spi_device_found spidev spi1.0 16000kHz 8 bits mode=0x01
[ 127.307385] fbtft_device: fbtft_device.c: call pr_p_devices: list of 'fb' platform device)
[ 127.315898] fbtft_device: name=list lists all supported displays
[ 127.322142] fbtft_device: fbtft_device.c: custom=0
[ 127.327199] fbtft_device: if (displays[i].spi)
[ 127.331691] fbtft_device: fbtft_device_spi_device_register(spi);
[ 127.337810] fbtft_device: fbtft_device_spi_device_register(): spi=bf8dc0d0
[ 127.344790] fbtft_device: fbtft_device_spi_device_register(): master=dcd8a000
[ 127.351989] fbtft_device: fbtft_device_spi_device_register(): fbtft_device_spi_delete()
[ 127.360107] fbtft_device: fbtft_device_spi_delete()
[ 127.365084] fbtft_device: fbtft_device_spi_delete(): bus_find_device_by_name: dev=dcfcbe00
[ 127.373457] fbtft_device: fbtft_device_spi_delete(): bus_find_device_by_name: verbose=3
[ 127.381576] spidev spi1.0: Deleting spi1.0
[ 127.381594] fbtft_device: fbtft_device_spi_delete(): device_del(dev)
[ 127.412362] fbtft_device: fbtft_device_spi_device_register(): spi_new_device()
[ 127.420291] spi spi1.0: not using DMA for McSPI
[ 127.427572] fbtft_device: fbtft_device_spi_device_register(): spi_new_device(): spi_device=dc03d800
[ 127.436918] fbtft_device: fbtft_device_spi_device_register(): put_device()
[ 127.443949] fbtft_device: fbtft_device_spi_device_register(spi): ret=0
[ 127.450561] fbtft_device: found=true; break;
[ 127.454929] fbtft_device: if (verbose && pdata && pdata->gpios
[ 127.460931] fbtft_device: GPIOS used by 'adafruit18':
[ 127.460951] fbtft_device: 'dc' = GPIO48
[ 127.460969] fbtft_device: 'reset' = GPIO60
[ 127.461013] spidev spi1.1: spi_device_found spidev spi1.1 16000kHz 8 bits mode=0x00
[ 127.461046] spi spi1.0: spi_device_found fb_st7735r spi1.0 32000kHz 8 bits mode=0x00
[ 127.476880] fb_st7735r: module is from the staging directory, the quality is unknown, you have been warned.
[ 127.479556] fb_st7735r spi1.0: fbtft_gamma_parse_str() str=
[ 127.479579] fb_st7735r spi1.0: 02 1c 07 12 37 32 29 2d 29 25 2B 39 00 01 03 10
03 1d 07 06 2E 2C 29 2D 2E 2E 37 3F 00 00 02 10
[ 127.479634] fb_st7735r spi1.0: fbtft_request_gpios_match('dc')
[ 127.479665] fb_st7735r spi1.0: fbtft_request_gpios: 'dc' = GPIO48
[ 127.479676] fb_st7735r spi1.0: fbtft_request_gpios_match('reset')
[ 127.479694] fb_st7735r spi1.0: fbtft_request_gpios: 'reset' = GPIO60
[ 127.479705] fb_st7735r spi1.0: fbtft_verify_gpios()
[ 127.479720] fb_st7735r spi1.0: fbtft_reset()
[ 127.599604] fb_st7735r spi1.0: init: write(0x01)
[ 127.599625] fb_st7735r spi1.0: fbtft_write_reg8_bus8: 01
[ 127.599640] fb_st7735r spi1.0: fbtft_write_spi(len=1): 01
[ 127.615380] fb_st7735r spi1.0: init: mdelay(150)
[ 127.765122] fb_st7735r spi1.0: init: write(0x11)
[ 127.765143] fb_st7735r spi1.0: fbtft_write_reg8_bus8: 11
[ 127.765162] fb_st7735r spi1.0: fbtft_write_spi(len=1): 11
[ 127.769372] fb_st7735r spi1.0: init: mdelay(500)
[ 128.268336] fb_st7735r spi1.0: init: write(0xB1) 0x01 0x2C 0x2D
[ 128.268355] fb_st7735r spi1.0: fbtft_write_reg8_bus8: b1 01 2c 2d
[ 128.268371] fb_st7735r spi1.0: fbtft_write_spi(len=1): b1
[ 128.274709] fb_st7735r spi1.0: fbtft_write_spi(len=3): 01 2c 2d
[ 128.274763] fb_st7735r spi1.0: init: write(0xB2) 0x01 0x2C 0x2D
[ 128.274780] fb_st7735r spi1.0: fbtft_write_reg8_bus8: b2 01 2c 2d
[ 128.274793] fb_st7735r spi1.0: fbtft_write_spi(len=1): b2
[ 128.274824] fb_st7735r spi1.0: fbtft_write_spi(len=3): 01 2c 2d
[ 128.274859] fb_st7735r spi1.0: init: write(0xB3) 0x01 0x2C 0x2D 0x01 0x2C 0x2D
[ 128.274872] fb_st7735r spi1.0: fbtft_write_reg8_bus8: b3 01 2c 2d 01 2c 2d
[ 128.274884] fb_st7735r spi1.0: fbtft_write_spi(len=1): b3
[ 128.274914] fb_st7735r spi1.0: fbtft_write_spi(len=6): 01 2c 2d 01 2c 2d
[ 128.274946] fb_st7735r spi1.0: init: write(0xB4) 0x07
[ 128.274958] fb_st7735r spi1.0: fbtft_write_reg8_bus8: b4 07
[ 128.274971] fb_st7735r spi1.0: fbtft_write_spi(len=1): b4
[ 128.275000] fb_st7735r spi1.0: fbtft_write_spi(len=1): 07
[ 128.275030] fb_st7735r spi1.0: init: write(0xC0) 0xA2 0x02 0x84
[ 128.275043] fb_st7735r spi1.0: fbtft_write_reg8_bus8: c0 a2 02 84
[ 128.275055] fb_st7735r spi1.0: fbtft_write_spi(len=1): c0
[ 128.275084] fb_st7735r spi1.0: fbtft_write_spi(len=3): a2 02 84
[ 128.275114] fb_st7735r spi1.0: init: write(0xC1) 0xC5
[ 128.275126] fb_st7735r spi1.0: fbtft_write_reg8_bus8: c1 c5
[ 128.275138] fb_st7735r spi1.0: fbtft_write_spi(len=1): c1
[ 128.275166] fb_st7735r spi1.0: fbtft_write_spi(len=1): c5
[ 128.275196] fb_st7735r spi1.0: init: write(0xC2) 0x0A 0x00
[ 128.275208] fb_st7735r spi1.0: fbtft_write_reg8_bus8: c2 0a 00
[ 128.275220] fb_st7735r spi1.0: fbtft_write_spi(len=1): c2
[ 128.275249] fb_st7735r spi1.0: fbtft_write_spi(len=2): 0a 00
[ 128.275279] fb_st7735r spi1.0: init: write(0xC3) 0x8A 0x2A
[ 128.275291] fb_st7735r spi1.0: fbtft_write_reg8_bus8: c3 8a 2a
[ 128.275304] fb_st7735r spi1.0: fbtft_write_spi(len=1): c3
[ 128.275332] fb_st7735r spi1.0: fbtft_write_spi(len=2): 8a 2a
[ 128.275363] fb_st7735r spi1.0: init: write(0xC4) 0x8A 0xEE
[ 128.275375] fb_st7735r spi1.0: fbtft_write_reg8_bus8: c4 8a ee
[ 128.275387] fb_st7735r spi1.0: fbtft_write_spi(len=1): c4
[ 128.275416] fb_st7735r spi1.0: fbtft_write_spi(len=2): 8a ee
[ 128.275445] fb_st7735r spi1.0: init: write(0xC5) 0x0E
[ 128.275456] fb_st7735r spi1.0: fbtft_write_reg8_bus8: c5 0e
[ 128.275469] fb_st7735r spi1.0: fbtft_write_spi(len=1): c5
[ 128.275497] fb_st7735r spi1.0: fbtft_write_spi(len=1): 0e
[ 128.275525] fb_st7735r spi1.0: init: write(0x20)
[ 128.275536] fb_st7735r spi1.0: fbtft_write_reg8_bus8: 20
[ 128.275548] fb_st7735r spi1.0: fbtft_write_spi(len=1): 20
[ 128.275577] fb_st7735r spi1.0: init: write(0x3A) 0x05
[ 128.275589] fb_st7735r spi1.0: fbtft_write_reg8_bus8: 3a 05
[ 128.275601] fb_st7735r spi1.0: fbtft_write_spi(len=1): 3a
[ 128.275630] fb_st7735r spi1.0: fbtft_write_spi(len=1): 05
[ 128.275657] fb_st7735r spi1.0: init: write(0x29)
[ 128.275669] fb_st7735r spi1.0: fbtft_write_reg8_bus8: 29
[ 128.275681] fb_st7735r spi1.0: fbtft_write_spi(len=1): 29
[ 128.275708] fb_st7735r spi1.0: init: mdelay(100)
[ 128.375552] fb_st7735r spi1.0: init: write(0x13)
[ 128.375565] fb_st7735r spi1.0: fbtft_write_reg8_bus8: 13
[ 128.375577] fb_st7735r spi1.0: fbtft_write_spi(len=1): 13
[ 128.435801] fb_st7735r spi1.0: init: mdelay(10)
[ 128.445964] fb_st7735r spi1.0: fbtft_write_reg8_bus8: 36 c0
[ 128.445986] fb_st7735r spi1.0: fbtft_write_spi(len=1): 36
[ 128.449127] fb_st7735r spi1.0: fbtft_write_spi(len=1): c0
[ 128.449172] fb_st7735r spi1.0: fbtft_update_display(start_line=0, end_line=159)
[ 128.449186] fb_st7735r spi1.0: fbtft_write_reg8_bus8: 2a 00 00 00 7f
[ 128.449199] fb_st7735r spi1.0: fbtft_write_spi(len=1): 2a
[ 128.449231] fb_st7735r spi1.0: fbtft_write_spi(len=4): 00 00 00 7f
[ 128.449261] fb_st7735r spi1.0: fbtft_write_reg8_bus8: 2b 00 00 00 9f
[ 128.449275] fb_st7735r spi1.0: fbtft_write_spi(len=1): 2b
[ 128.449304] fb_st7735r spi1.0: fbtft_write_spi(len=4): 00 00 00 9f
[ 128.449334] fb_st7735r spi1.0: fbtft_write_reg8_bus8: 2c
[ 128.449347] fb_st7735r spi1.0: fbtft_write_spi(len=1): 2c
[ 128.449377] fb_st7735r spi1.0: fbtft_write_vmem16_bus8(offset=0, len=40960)
Diff:
eewiki.net: [user@localhost:~$ export kernel_version=4.1.14-bone17]
-----------------------------
[pdp7@skylake bb-kernel]$
CHK include/generated/bounds.h
CHK include/generated/asm-offsets.h
CALL scripts/checksyscalls.sh
CHK include/generated/compile.h
CHK kernel/config_data.h
CC [M] drivers/staging/fbtft/fbtft_device.o
Kernel: arch/arm/boot/Image is ready
Building modules, stage 2.
Kernel: arch/arm/boot/zImage is ready
MODPOST 2255 modules
CC drivers/staging/fbtft/fbtft_device.mod.o
LD [M] drivers/staging/fbtft/fbtft_device.ko
-----------------------------
make -j4 ARCH=arm LOCALVERSION=-bone17 CROSS_COMPILE="/home/pdp7/dev/beagle/bb-kernel/dl/gcc-linaro-4.9-2015.05-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-" dtbs
-----------------------------
CHK include/config/kernel.release
CHK include/generated/uapi/linux/version.h
CHK include/generated/utsrelease.h
make[1]: 'include/generated/mach-types.h' is up to date.
CHK include/generated/bounds.h
CHK include/generated/asm-offsets.h
CALL scripts/checksyscalls.sh
-----------------------------
‘arch/arm/boot/zImage’ -> ‘/home/pdp7/dev/beagle/bb-kernel/deploy/4.1.14-bone17.zImage’
‘.config’ -> ‘/home/pdp7/dev/beagle/bb-kernel/deploy/config-4.1.14-bone17’
-rwxrwxr-x. 1 pdp7 pdp7 6.6M leq 27 01:02 /home/pdp7/dev/beagle/bb-kernel/deploy/4.1.14-bone17.zImage
-----------------------------
Building modules archive...
Compressing 4.1.14-bone17-modules.tar.gz...
-rw-rw-r--. 1 pdp7 pdp7 20M leq 27 01:02 /home/pdp7/dev/beagle/bb-kernel/deploy/4.1.14-bone17-modules.tar.gz
-----------------------------
Building firmware archive...
Compressing 4.1.14-bone17-firmware.tar.gz...
-rw-rw-r--. 1 pdp7 pdp7 1.2M leq 27 01:02 /home/pdp7/dev/beagle/bb-kernel/deploy/4.1.14-bone17-firmware.tar.gz
-----------------------------
Building dtbs archive...
scripts/Makefile.dtbinst:42: target 'am335x-boneblack-overlay.dtb' given more than once in the same rule
Compressing 4.1.14-bone17-dtbs.tar.gz...
-rw-rw-r--. 1 pdp7 pdp7 257K leq 27 01:02 /home/pdp7/dev/beagle/bb-kernel/deploy/4.1.14-bone17-dtbs.tar.gz
-----------------------------
Script Complete
eewiki.net: [user@localhost:~$ export kernel_version=4.1.14-bone17]
-----------------------------
[pdp7@skylake bb-kernel]$ git diff
[pdp7@skylake bb-kernel]$ cd KERNEL/
[pdp7@skylake KERNEL]$ git diff
diff --git a/drivers/staging/fbtft/fbtft_device.c b/drivers/staging/fbtft/fbtft_device.c
index 071f79b..cf14b3d 100644
--- a/drivers/staging/fbtft/fbtft_device.c
+++ b/drivers/staging/fbtft/fbtft_device.c
@@ -1289,7 +1289,7 @@ static int spi_device_found(struct device *dev, void *data)
{
struct spi_device *spi = container_of(dev, struct spi_device, dev);
- dev_info(dev, "%s %s %dkHz %d bits mode=0x%02X\n", spi->modalias,
+ dev_info(dev, "spi_device_found %s %s %dkHz %d bits mode=0x%02X\n", spi->modalias,
dev_name(dev), spi->max_speed_hz / 1000, spi->bits_per_word,
spi->mode);
@@ -1298,8 +1298,9 @@ static int spi_device_found(struct device *dev, void *data)
static void pr_spi_devices(void)
{
- pr_debug("SPI devices registered:\n");
+ pr_debug("pr_spi_devices: SPI devices registered:\n");
bus_for_each_dev(&spi_bus_type, NULL, NULL, spi_device_found);
+ pr_debug("pr_spi_devices: return\n");
}
static int p_device_found(struct device *dev, void *data)
@@ -1325,13 +1326,15 @@ static void fbtft_device_spi_delete(struct spi_master *master, unsigned cs)
{
struct device *dev;
char str[32];
-
+ pr_err("fbtft_device_spi_delete()\n");
snprintf(str, sizeof(str), "%s.%u", dev_name(&master->dev), cs);
dev = bus_find_device_by_name(&spi_bus_type, NULL, str);
+ pr_err("fbtft_device_spi_delete(): bus_find_device_by_name: dev=%p\n", dev);
+ pr_err("fbtft_device_spi_delete(): bus_find_device_by_name: verbose=%d\n", verbose);
if (dev) {
- if (verbose)
- dev_info(dev, "Deleting %s\n", str);
+ dev_info(dev, "Deleting %s\n", str);
+ pr_err("fbtft_device_spi_delete(): device_del(dev)\n");
device_del(dev);
}
}
@@ -1340,15 +1343,21 @@ static int fbtft_device_spi_device_register(struct spi_board_info *spi)
{
struct spi_master *master;
+ pr_err("fbtft_device_spi_device_register(): spi=%p\n", spi);
master = spi_busnum_to_master(spi->bus_num);
+ pr_err("fbtft_device_spi_device_register(): master=%p\n", master);
if (!master) {
pr_err("spi_busnum_to_master(%d) returned NULL\n",
spi->bus_num);
return -EINVAL;
}
/* make sure it's available */
+ pr_err("fbtft_device_spi_device_register(): fbtft_device_spi_delete()\n");
fbtft_device_spi_delete(master, spi->chip_select);
+ pr_err("fbtft_device_spi_device_register(): spi_new_device()\n");
spi_device = spi_new_device(master, spi);
+ pr_err("fbtft_device_spi_device_register(): spi_new_device(): spi_device=%p\n", spi_device);
+ pr_err("fbtft_device_spi_device_register(): put_device()\n");
put_device(&master->dev);
if (!spi_device) {
dev_err(&master->dev, "spi_new_device() returned NULL\n");
@@ -1359,6 +1368,9 @@ static int fbtft_device_spi_device_register(struct spi_board_info *spi)
#else
static int fbtft_device_spi_device_register(struct spi_board_info *spi)
{
+ pr_err("fbtft_device_spi_device_register(): MODULE not defined\n");
+ pr_err("fbtft_device_spi_device_register(): spi=%p\n", spi);
+ pr_err("fbtft_device_spi_device_register(): return spi_register_board_info(spi, 1);\n");
return spi_register_board_info(spi, 1);
}
#endif
@@ -1421,13 +1433,13 @@ static int __init fbtft_device_init(void)
if (fbtft_device_param_gpios[0].name[0])
gpio = fbtft_device_param_gpios;
- if (verbose > 2)
- pr_spi_devices(); /* print list of registered SPI devices */
+ pr_err("fbtft_device.c: call pr_spi_devices()\n");
+ pr_spi_devices(); /* print list of registered SPI devices */
- if (verbose > 2)
- pr_p_devices(); /* print list of 'fb' platform devices */
+ pr_err("fbtft_device.c: call pr_p_devices: list of 'fb' platform device)\n");
+ pr_p_devices(); /* print list of 'fb' platform devices */
- pr_debug("name='%s', busnum=%d, cs=%d\n", name, busnum, cs);
+ pr_debug("fbtft_device.c: name='%s', busnum=%d, cs=%d\n", name, busnum, cs);
if (rotate > 0 && rotate < 4) {
rotate = (4 - rotate) * 90;
@@ -1441,6 +1453,7 @@ static int __init fbtft_device_init(void)
}
/* name=list lists all supported displays */
+ pr_err(" name=list lists all supported displays \n");
if (strncmp(name, "list", FBTFT_GPIO_NAME_SIZE) == 0) {
pr_info("Supported displays:\n");
@@ -1449,6 +1462,7 @@ static int __init fbtft_device_init(void)
return -ECANCELED;
}
+ pr_err("fbtft_device.c: custom=%d\n", custom);
if (custom) {
i = ARRAY_SIZE(displays) - 1;
displays[i].name = name;
@@ -1505,20 +1519,26 @@ static int __init fbtft_device_init(void)
pdata->display.backlight = 1;
}
+ pr_err("if (displays[i].spi)\n");
if (displays[i].spi) {
+ pr_err("fbtft_device_spi_device_register(spi);\n");
ret = fbtft_device_spi_device_register(spi);
+ pr_err("fbtft_device_spi_device_register(spi): ret=%d\n", ret);
if (ret) {
pr_err("failed to register SPI device\n");
return ret;
}
} else {
+ pr_err("platform_device_register()\n");
ret = platform_device_register(p_device);
+ pr_err("platform_device_register(): ret=%d\n", ret);
if (ret < 0) {
pr_err("platform_device_register() returned %d\n",
ret);
return ret;
}
}
+ pr_err("found=true; break;\n");
found = true;
break;
}
@@ -1528,8 +1548,9 @@ static int __init fbtft_device_init(void)
pr_err("display not supported: '%s'\n", name);
return -EINVAL;
}
-
- if (verbose && pdata && pdata->gpios) {
+
+ pr_err(" if (verbose && pdata && pdata->gpios\n");
+ if (verbose && pdata && pdata->gpios) {
gpio = pdata->gpios;
pr_info("GPIOS used by '%s':\n", name);
found = false;
OK - Linux 4.1.15-bone17 (compiled by me)
root@beaglebone:~# ls -latr /dev/spidev1.1
crw-rw---- 1 root spi 153, 0 Aug 27 07:01 /dev/spidev1.1
root@beaglebone:~# uname -a
Linux beaglebone 4.1.15-bone17 #1 Sat Aug 27 01:54:43 CDT 2016 armv7l GNU/Linux
root@beaglebone:~# dmesg|head
[ 160.339594] fbtft: module is from the staging directory, the quality is unknown, you have been warned.
[ 160.359156] fbtft_device: module is from the staging directory, the quality is unknown, you have been warned.
[ 160.364319] spidev spi1.1: spidev spi1.1 16000kHz 8 bits mode=0x00
[ 160.364367] spidev spi1.0: spidev spi1.0 16000kHz 8 bits mode=0x01
[ 160.364554] spidev spi1.0: Deleting spi1.0
[ 160.367839] spi spi1.0: not using DMA for McSPI
[ 160.368244] fbtft_device: GPIOS used by 'adafruit18':
[ 160.368266] fbtft_device: 'dc' = GPIO48
[ 160.368284] fbtft_device: 'reset' = GPIO60
[ 160.368319] spidev spi1.1: spidev spi1.1 16000kHz 8 bits mode=0x00
root@beaglebone:~#
spidev spi2.0 vs. spi1.0: fb_st7735r
Linux beaglebone 4.4.16-ti-r38 #1 SMP Wed Aug 3 17:12:46 UTC 2016 armv7l GNU/Linux
[ 47.551857] bone_capemgr bone_capemgr: slot #4: override
[ 47.551873] bone_capemgr bone_capemgr: Using override eeprom data at slot 4
[ 47.551889] bone_capemgr bone_capemgr: slot #4: 'Override Board Name,00A0,Override Manuf,BB-SPIDEV1'
[ 47.565578] bone_capemgr bone_capemgr: slot #4: dtbo 'BB-SPIDEV1-00A0.dtbo' loaded; overlay id #0
[ 56.770723] fbtft: module is from the staging directory, the quality is unknown, you have been warned.
[ 56.788951] fbtft_device: module is from the staging directory, the quality is unknown, you have been warned.
[ 56.797210] spidev spi2.0: spidev spi2.0 16000kHz 8 bits mode=0x01
[ 56.797271] spidev spi2.1: spidev spi2.1 16000kHz 8 bits mode=0x00
[ 56.798653] fbtft_device: GPIOS used by 'adafruit18':
[ 56.798684] fbtft_device: 'dc' = GPIO48
[ 56.798706] fbtft_device: 'reset' = GPIO60
[ 56.798745] spidev spi2.0: spidev spi2.0 16000kHz 8 bits mode=0x01
[ 56.798779] spidev spi2.1: spidev spi2.1 16000kHz 8 bits mode=0x00
[ 56.798813] spi spi1.0: fb_st7735r spi1.0 32000kHz 8 bits mode=0x00
[ 56.929495] fb_st7735r: module is from the staging directory, the quality is unknown, you have been warned.
[ 57.868115] Console: switching to colour frame buffer device 16x20
[ 57.868430] graphics fb0: fb_st7735r frame buffer, 128x160, 40 KiB video memory, 4 KiB DMA buffer memory, fps=20, spi1.0 at 32 MHz
Bad linux-image-4.1.29-bone22 dpkg
root@beaglebone:~# uname -a
Linux beaglebone 4.1.29-bone22 #1 Fri Aug 5 10:18:54 UTC 2016 armv7l GNU/Linux
root@beaglebone:~# ls -ltar /dev/spi^C
root@beaglebone:~# echo BB-SPIDEV1 > /sys/devices/platform/bone_capemgr/slots
root@beaglebone:~# ls -ltar /dev/spidev2.^C
root@beaglebone:~#
MISSING Linux 4.2.5-bone2
root@beaglebone:~# ls -ltar /dev/spidev1.*
crw-rw---- 1 root spi 153, 0 Aug 27 08:24 /dev/spidev1.1
crw-rw---- 1 root spi 153, 1 Aug 27 08:24 /dev/spidev1.0
root@beaglebone:~# modprobe fbtft_device busnum=1 name=adafruit18 verbose=3 gpios=dc:48,reset:60
modprobe: FATAL: Module fbtft_device not found.
root@beaglebone:~# uname -a
Linux beaglebone 4.2.5-bone2 #1 Wed Oct 28 22:54:54 UTC 2015 armv7l GNU/Linux
root@beaglebone:~#
BAD Linux 4.4.19-bone13
root@beaglebone:~# ls -ltar /dev/spidev2.*
crw-rw---- 1 root spi 153, 1 Aug 27 08:35 /dev/spidev2.1
crw-rw---- 1 root spi 153, 0 Aug 27 08:35 /dev/spidev2.0
root@beaglebone:~# uname -a
Linux beaglebone 4.4.19-bone13 #1 Sat Aug 27 02:33:52 CDT 2016 armv7l GNU/Linux
root@beaglebone:~#
root@beaglebone:~# modprobe fbtft_device busnum=1 verbose=3 name=adafruit18 gpios=dc:48,reset:60
root@beaglebone:~# dmesg
[ 87.378178] bone_capemgr bone_capemgr: part_number 'BB-SPIDEV1', version 'N/A'
[ 87.378242] bone_capemgr bone_capemgr: slot #4: override
[ 87.378281] bone_capemgr bone_capemgr: Using override eeprom data at slot 4
[ 87.378322] bone_capemgr bone_capemgr: slot #4: 'Override Board Name,00A0,Override Manuf,BB-SPIDEV1'
[ 87.407002] bone_capemgr bone_capemgr: slot #4: dtbo 'BB-SPIDEV1-00A0.dtbo' loaded; overlay id #0
[ 126.593159] fbtft: module is from the staging directory, the quality is unknown, you have been warned.
[ 126.615857] fbtft_device: module is from the staging directory, the quality is unknown, you have been warned.
[ 126.621292] spidev spi2.0: spidev spi2.0 16000kHz 8 bits mode=0x01
[ 126.621340] spidev spi2.1: spidev spi2.1 16000kHz 8 bits mode=0x00
[ 126.622456] fbtft_device: GPIOS used by 'adafruit18':
[ 126.622480] fbtft_device: 'dc' = GPIO48
[ 126.622498] fbtft_device: 'reset' = GPIO60
[ 126.622533] spidev spi2.0: spidev spi2.0 16000kHz 8 bits mode=0x01
[ 126.622565] spidev spi2.1: spidev spi2.1 16000kHz 8 bits mode=0x00
[ 126.622594] spi spi1.0: fb_st7735r spi1.0 32000kHz 8 bits mode=0x00
[ 126.656152] fb_st7735r: module is from the staging directory, the quality is unknown, you have been warned.
[ 127.588015] Console: switching to colour frame buffer device 16x20
[ 127.588306] graphics fb0: fb_st7735r frame buffer, 128x160, 40 KiB video memory, 4 KiB DMA buffer memory, fps=20, spi1.0 at 32 MHz
root@beaglebone:~#
BAD - Linux 4.4.19-bone13
Linux beaglebone 4.4.19-bone13 #2 Sat Aug 27 03:47:23 CDT 2016 armv7l GNU/Linux
[ 37.111311] bone_capemgr bone_capemgr: part_number 'BB-SPIDEV1', version 'N/A'
[ 37.111377] bone_capemgr bone_capemgr: slot #4: override
[ 37.111416] bone_capemgr bone_capemgr: Using override eeprom data at slot 4
[ 37.111458] bone_capemgr bone_capemgr: slot #4: 'Override Board Name,00A0,Override Manuf,BB-SPIDEV1'
[ 37.154911] bone_capemgr bone_capemgr: slot #4: dtbo 'BB-SPIDEV1-00A0.dtbo' loaded; overlay id #0
root@beaglebone:~# modprobe fbtft_device busnum=1 verbose=3 name=adafruit18 gpios=dc:48,reset:60
root@beaglebone:~# dmesg
[ 49.937106] fbtft: module is from the staging directory, the quality is unknown, you have been warned.
[ 49.959818] fbtft_device: module is from the staging directory, the quality is unknown, you have been warned.
[ 49.963152] spidev spi2.0: spidev spi2.0 16000kHz 8 bits mode=0x01
[ 49.963197] spidev spi2.1: spidev spi2.1 16000kHz 8 bits mode=0x00
[ 49.963363] fbtft_device: fbtft_device_spi_delete(): spi_busnum_to_master()
[ 49.970595] fbtft_device: fbtft_device_spi_delete(): spi->bus_num=1
[ 49.976990] fbtft_device: fbtft_device_spi_delete(): master=ddf65c00
[ 49.983403] fbtft_device: fbtft_device_spi_delete()
[ 49.988393] fbtft_device: fbtft_device_spi_delete(): dev= (null)
[ 49.994582] fbtft_device: fbtft_device_spi_delete(): fbtft_device_spi_delete()
[ 50.018932] fbtft_device: fbtft_device_spi_delete(): spi_new_device(): spi_device=dba05800
[ 50.027422] fbtft_device: fbtft_device_spi_delete(): put_device()
[ 50.033936] fbtft_device: GPIOS used by 'adafruit18':
[ 50.033962] fbtft_device: 'dc' = GPIO48
[ 50.033980] fbtft_device: 'reset' = GPIO60
[ 50.034026] spidev spi2.0: spidev spi2.0 16000kHz 8 bits mode=0x01
[ 50.034058] spidev spi2.1: spidev spi2.1 16000kHz 8 bits mode=0x00
[ 50.034089] spi spi1.0: fb_st7735r spi1.0 32000kHz 8 bits mode=0x00
[ 50.049859] fb_st7735r: module is from the staging directory, the quality is unknown, you have been warned.
[ 50.980674] Console: switching to colour frame buffer device 16x20
[ 50.981022] graphics fb0: fb_st7735r frame buffer, 128x160, 40 KiB video memory, 4 KiB DMA buffer memory, fps=20, spi1.0 at 32 MHz
root@beaglebone:~# uanme -a
-bash: uanme: command not found
root@beaglebone:~# uname -a
Linux beaglebone 4.4.19-bone13 #2 Sat Aug 27 03:47:23 CDT 2016 armv7l GNU/Linux
root@beaglebone:~# cat /sys/devices/platform/bone_capemgr/slots
0: PF---- -1
1: PF---- -1
2: PF---- -1
3: PF---- -1
4: P-O-L- 0 Override Board Name,00A0,Override Manuf,BB-SPIDEV1
root@beaglebone:~#
[ 49.963363] fbtft_device: fbtft_device_spi_delete(): spi_busnum_to_master()
[ 49.970595] fbtft_device: fbtft_device_spi_delete(): spi->bus_num=1
[ 49.976990] fbtft_device: fbtft_device_spi_delete(): master=ddf65c00
[ 49.983403] fbtft_device: fbtft_device_spi_delete()
[ 49.988393] fbtft_device: fbtft_device_spi_delete(): dev= (null)
[ 49.994582] fbtft_device: fbtft_device_spi_delete(): fbtft_device_spi_delete()
[ 50.018932] fbtft_device: fbtft_device_spi_delete(): spi_new_device(): spi_device=dba05800
[ 50.027422] fbtft_device: fbtft_device_spi_delete(): put_device()
BAD Linux beaglebone 4.4.19-bone13
root@beaglebone:~# dmesg
root@beaglebone:~# uname -a
Linux beaglebone 4.4.19-bone13 #3 Sat Aug 27 04:02:56 CDT 2016 armv7l GNU/Linux
root@beaglebone:~# modprobe fbtft_device busnum=1 verbose=3 name=adafruit18 gpios=dc:48,reset:60
root@beaglebone:~# dmesg
[ 69.288269] fbtft: module is from the staging directory, the quality is unknown, you have been warned.
[ 69.329260] fbtft_device: module is from the staging directory, the quality is unknown, you have been warned.
[ 69.336936] spidev spi2.0: spidev spi2.0 16000kHz 8 bits mode=0x01
[ 69.336988] spidev spi2.1: spidev spi2.1 16000kHz 8 bits mode=0x00
[ 69.337158] fbtft_device: fbtft_device_spi_device_register(): spi_busnum_to_master()
[ 69.345125] fbtft_device: fbtft_device_spi_device_register(): spi->bus_num=1
[ 69.352251] fbtft_device: fbtft_device_spi_device_register(): master=dddf1000
[ 69.359493] fbtft_device: fbtft_device_spi_device_register(): fbtft_device_spi_delete()
[ 69.367623] fbtft_device: fbtft_device_spi_delete()
[ 69.372584] fbtft_device: fbtft_device_spi_delete(): str=spi1.0
[ 69.378600] fbtft_device: fbtft_device_spi_delete(): dev_name(&master->dev)=spi1
[ 69.386090] fbtft_device: fbtft_device_spi_delete(): cs=0
[ 69.391548] fbtft_device: fbtft_device_spi_delete(): dev= (null)
[ 69.413149] fbtft_device: fbtft_device_spi_device_register(): spi_new_device(): spi_device=db84b000
[ 69.422364] fbtft_device: fbtft_device_spi_device_register(): put_device()
[ 69.429327] fbtft_device: GPIOS used by 'adafruit18':
[ 69.429337] fbtft_device: 'dc' = GPIO48
[ 69.429347] fbtft_device: 'reset' = GPIO60
[ 69.429371] spidev spi2.0: spidev spi2.0 16000kHz 8 bits mode=0x01
[ 69.429389] spidev spi2.1: spidev spi2.1 16000kHz 8 bits mode=0x00
[ 69.429404] spi spi1.0: fb_st7735r spi1.0 32000kHz 8 bits mode=0x00
[ 69.796607] fb_st7735r: module is from the staging directory, the quality is unknown, you have been warned.
[ 70.731060] Console: switching to colour frame buffer device 16x20
[ 70.731876] graphics fb0: fb_st7735r frame buffer, 128x160, 40 KiB video memory, 4 KiB DMA buffer memory, fps=20, spi1.0 at 32 MHz
root@beaglebone:~#
root@beaglebone:~# modprobe fbtft_device busnum=2 verbose=3 name=adafruit18 gpios=dc:48,reset:60
[ 82.937553] fbtft_device: module is from the staging directory, the quality is unknown, you have been warned.
[ 82.948130] spidev spi2.0: spidev spi2.0 16000kHz 8 bits mode=0x01
[ 82.948181] spidev spi2.1: spidev spi2.1 16000kHz 8 bits mode=0x00
[ 82.948351] fbtft_device: fbtft_device_spi_device_register(): spi_busnum_to_master()
[ 82.956322] fbtft_device: fbtft_device_spi_device_register(): spi->bus_num=2
[ 82.963448] fbtft_device: fbtft_device_spi_device_register(): master=ddec4000
[ 82.970686] fbtft_device: fbtft_device_spi_device_register(): fbtft_device_spi_delete()
[ 82.978789] fbtft_device: fbtft_device_spi_delete()
[ 82.983718] fbtft_device: fbtft_device_spi_delete(): str=spi2.0
[ 82.989723] fbtft_device: fbtft_device_spi_delete(): dev_name(&master->dev)=spi2
[ 82.997218] fbtft_device: fbtft_device_spi_delete(): cs=0
[ 83.002707] fbtft_device: fbtft_device_spi_delete(): dev=dbac4800
[ 83.008903] spidev spi2.0: Deleting spi2.0
[ 83.008923] fbtft_device: fbtft_device_spi_delete(): device_del(dbac4800)
[ 83.039154] fbtft_device: fbtft_device_spi_device_register(): spi_new_device(): spi_device=dba92400
[ 83.048415] fbtft_device: fbtft_device_spi_device_register(): put_device()
[ 83.055360] fbtft_device: GPIOS used by 'adafruit18':
[ 83.055379] fbtft_device: 'dc' = GPIO48
[ 83.055397] fbtft_device: 'reset' = GPIO60
[ 83.055438] spidev spi2.1: spidev spi2.1 16000kHz 8 bits mode=0x00
[ 83.055470] spi spi2.0: fb_st7735r spi2.0 32000kHz 8 bits mode=0x00
[ 83.078042] fb_st7735r: module is from the staging directory, the quality is unknown, you have been warned.
[ 84.022699] Console: switching to colour frame buffer device 16x20
[ 84.023044] graphics fb0: fb_st7735r frame buffer, 128x160, 40 KiB video memory, 4 KiB DMA buffer memory, fps=20, spi2.0 at 32 MHz
Switched wiring to SPI0 pins
[ 28.344278] bone_capemgr bone_capemgr: part_number 'BB-SPIDEV1', version 'N/A'
[ 28.344318] bone_capemgr bone_capemgr: slot #4: override
[ 28.344340] bone_capemgr bone_capemgr: Using override eeprom data at slot 4
[ 28.344362] bone_capemgr bone_capemgr: slot #4: 'Override Board Name,00A0,Override Manuf,BB-SPIDEV1'
[ 28.392895] bone_capemgr bone_capemgr: slot #4: dtbo 'BB-SPIDEV1-00A0.dtbo' loaded; overlay id #0
[ 32.105119] bone_capemgr bone_capemgr: part_number 'BB-SPIDEV0', version 'N/A'
[ 32.105183] bone_capemgr bone_capemgr: slot #5: override
[ 32.105283] bone_capemgr bone_capemgr: Using override eeprom data at slot 5
[ 32.105326] bone_capemgr bone_capemgr: slot #5: 'Override Board Name,00A0,Override Manuf,BB-SPIDEV0'
[ 32.144073] bone_capemgr bone_capemgr: slot #5: dtbo 'BB-SPIDEV0-00A0.dtbo' loaded; overlay id #1
[ 63.255311] fbtft: module is from the staging directory, the quality is unknown, you have been warned.
[ 63.273305] fbtft_device: module is from the staging directory, the quality is unknown, you have been warned.
[ 63.278629] spidev spi2.0: spidev spi2.0 16000kHz 8 bits mode=0x01
[ 63.278681] spidev spi2.1: spidev spi2.1 16000kHz 8 bits mode=0x00
[ 63.278713] spidev spi1.0: spidev spi1.0 16000kHz 8 bits mode=0x01
[ 63.278745] spidev spi1.1: spidev spi1.1 16000kHz 8 bits mode=0x00
[ 63.278908] fbtft_device: fbtft_device_spi_device_register(): spi_busnum_to_master()
[ 63.286906] fbtft_device: fbtft_device_spi_device_register(): spi->bus_num=0
[ 63.294066] fbtft_device: fbtft_device_spi_device_register(): master= (null)
[ 63.301268] fbtft_device: spi_busnum_to_master(0) returned NULL
[ 63.307276] fbtft_device: failed to register SPI device
[ 88.225266] fbtft_device: module is from the staging directory, the quality is unknown, you have been warned.
[ 88.239890] spidev spi2.0: spidev spi2.0 16000kHz 8 bits mode=0x01
[ 88.239941] spidev spi2.1: spidev spi2.1 16000kHz 8 bits mode=0x00
[ 88.239972] spidev spi1.0: spidev spi1.0 16000kHz 8 bits mode=0x01
[ 88.240003] spidev spi1.1: spidev spi1.1 16000kHz 8 bits mode=0x00
[ 88.240171] fbtft_device: fbtft_device_spi_device_register(): spi_busnum_to_master()
[ 88.248005] fbtft_device: fbtft_device_spi_device_register(): spi->bus_num=1
[ 88.255408] fbtft_device: fbtft_device_spi_device_register(): master=ddee7000
[ 88.262698] fbtft_device: fbtft_device_spi_device_register(): fbtft_device_spi_delete()
[ 88.270813] fbtft_device: fbtft_device_spi_delete()
[ 88.275743] fbtft_device: fbtft_device_spi_delete(): str=spi1.0
[ 88.281749] fbtft_device: fbtft_device_spi_delete(): dev_name(&master->dev)=spi1
[ 88.289211] fbtft_device: fbtft_device_spi_delete(): cs=0
[ 88.294699] fbtft_device: fbtft_device_spi_delete(): dev=ddfbf800
[ 88.300888] spidev spi1.0: Deleting spi1.0
[ 88.300908] fbtft_device: fbtft_device_spi_delete(): device_del(ddfbf800)
[ 88.332428] fbtft_device: fbtft_device_spi_device_register(): spi_new_device(): spi_device=dddf5c00
[ 88.341758] fbtft_device: fbtft_device_spi_device_register(): put_device()
[ 88.348727] fbtft_device: GPIOS used by 'adafruit18':
[ 88.348746] fbtft_device: 'dc' = GPIO48
[ 88.348763] fbtft_device: 'reset' = GPIO60
[ 88.348805] spidev spi2.0: spidev spi2.0 16000kHz 8 bits mode=0x01
[ 88.348836] spidev spi2.1: spidev spi2.1 16000kHz 8 bits mode=0x00
[ 88.348866] spidev spi1.1: spidev spi1.1 16000kHz 8 bits mode=0x00
[ 88.348896] spi spi1.0: fb_st7735r spi1.0 32000kHz 8 bits mode=0x00
[ 88.372885] fb_st7735r: module is from the staging directory, the quality is unknown, you have been warned.
[ 89.309203] Console: switching to colour frame buffer device 16x20
[ 89.309556] graphics fb0: fb_st7735r frame buffer, 128x160, 40 KiB video memory, 4 KiB DMA buffer memory, fps=20, spi1.0 at 32 MHz
root@beaglebone:~#
root@beaglebone:~# vi /boot/uEnv.txt
root@beaglebone:~# reboot
pdp7@lappyimx6:~$ ssh root@192.168.10.158\
>
Debian GNU/Linux 8
BeagleBoard.org Debian Image 2015-12-07
Support/FAQ: http://elinux.org/Beagleboard:BeagleBoneBlack_Debian
default username:password is [debian:temppwd]
Last login: Sat Aug 27 09:24:12 2016
root@beaglebone:~# uname -a
Linux beaglebone 4.1.14-bone17 #1 Fri Aug 26 04:14:01 CDT 2016 armv7l GNU/Linux
root@beaglebone:~# echo BB-SPIDEV0 > /sys/devices/platform/bone_capemgr/slots
root@beaglebone:~# ls -ltar /dev/spidev*
crw-rw---- 1 root spi 153, 0 Aug 27 09:24 /dev/spidev1.1
crw-rw---- 1 root spi 153, 1 Aug 27 09:24 /dev/spidev1.0
root@beaglebone:~#
OK: SPI0 pins: Linux 4.1.14-bone17
root@beaglebone:~# uname -a
Linux beaglebone 4.1.14-bone17 #1 Fri Aug 26 04:14:01 CDT 2016 armv7l GNU/Linux
root@beaglebone:~# echo BB-SPIDEV0 > /sys/devices/platform/bone_capemgr/slots
root@beaglebone:~# ls -ltar /dev/spi*
crw-rw---- 1 root spi 153, 0 Aug 27 09:26 /dev/spidev1.1
crw-rw---- 1 root spi 153, 1 Aug 27 09:26 /dev/spidev1.0
root@beaglebone:~# modprobe fbtft_device busnum=1 verbose=3 name=adafruit18 gpios=dc:48,reset:60
root@beaglebone:~# dmesg
[ 40.868943] bone_capemgr bone_capemgr: part_number 'BB-SPIDEV0', version 'N/A'
[ 40.869004] bone_capemgr bone_capemgr: slot #4: override
[ 40.869042] bone_capemgr bone_capemgr: Using override eeprom data at slot 4
[ 40.869082] bone_capemgr bone_capemgr: slot #4: 'Override Board Name,00A0,Override Manuf,BB-SPIDEV0'
[ 40.899612] bone_capemgr bone_capemgr: slot #4: dtbo 'BB-SPIDEV0-00A0.dtbo' loaded; overlay id #0
[ 40.934299] spi spi1.1: not using DMA for McSPI
[ 40.934792] spi spi1.0: not using DMA for McSPI
[ 54.960586] fbtft: module is from the staging directory, the quality is unknown, you have been warned.
[ 54.975225] fbtft_device: module is from the staging directory, the quality is unknown, you have been warned.
[ 54.983907] fbtft_device: fbtft_device.c: call pr_spi_devices()
[ 54.990062] spidev spi1.1: spi_device_found spidev spi1.1 16000kHz 8 bits mode=0x00
[ 54.990099] spidev spi1.0: spi_device_found spidev spi1.0 16000kHz 8 bits mode=0x01
[ 54.990119] fbtft_device: fbtft_device.c: call pr_p_devices: list of 'fb' platform device)
[ 54.998659] fbtft_device: name=list lists all supported displays
[ 55.004904] fbtft_device: fbtft_device.c: custom=0
[ 55.009787] fbtft_device: if (displays[i].spi)
[ 55.014274] fbtft_device: fbtft_device_spi_device_register(spi);
[ 55.020372] fbtft_device: fbtft_device_spi_device_register(): spi=bf8d80d0
[ 55.027315] fbtft_device: fbtft_device_spi_device_register(): master=dc98b400
[ 55.034548] fbtft_device: fbtft_device_spi_device_register(): fbtft_device_spi_delete()
[ 55.042653] fbtft_device: fbtft_device_spi_delete()
[ 55.047590] fbtft_device: fbtft_device_spi_delete(): bus_find_device_by_name: dev=dcfc1e00
[ 55.055968] fbtft_device: fbtft_device_spi_delete(): bus_find_device_by_name: verbose=3
[ 55.064084] spidev spi1.0: Deleting spi1.0
[ 55.064102] fbtft_device: fbtft_device_spi_delete(): device_del(dev)
[ 55.093817] fbtft_device: fbtft_device_spi_device_register(): spi_new_device()
[ 55.101750] spi spi1.0: not using DMA for McSPI
[ 55.111737] fbtft_device: fbtft_device_spi_device_register(): spi_new_device(): spi_device=dcf94a00
[ 55.121066] fbtft_device: fbtft_device_spi_device_register(): put_device()
[ 55.128092] fbtft_device: fbtft_device_spi_device_register(spi): ret=0
[ 55.134703] fbtft_device: found=true; break;
[ 55.139081] fbtft_device: if (verbose && pdata && pdata->gpios
[ 55.145085] fbtft_device: GPIOS used by 'adafruit18':
[ 55.145103] fbtft_device: 'dc' = GPIO48
[ 55.145120] fbtft_device: 'reset' = GPIO60
[ 55.145164] spidev spi1.1: spi_device_found spidev spi1.1 16000kHz 8 bits mode=0x00
[ 55.145197] spi spi1.0: spi_device_found fb_st7735r spi1.0 32000kHz 8 bits mode=0x00
[ 55.154968] fb_st7735r: module is from the staging directory, the quality is unknown, you have been warned.
[ 56.099773] Console: switching to colour frame buffer device 16x20
[ 56.100062] graphics fb0: fb_st7735r frame buffer, 128x160, 40 KiB video memory, 4 KiB DMA buffer memory, fps=20, spi1.0 at 32 MHz
root@beaglebone:~#
BAD: SPI0 pins: Linux 4.1.15-ti-r43
root@beaglebone:~# echo BB-SPIDEV0 > /sys/devices/platform/bone_capemgr/slots
root@beaglebone:~# ls -ltar /dev/spi*
crw-rw---- 1 root spi 153, 0 Aug 27 09:28 /dev/spidev1.0
crw-rw---- 1 root spi 153, 1 Aug 27 09:28 /dev/spidev1.1
root@beaglebone:~# modprobe fbtft_device busnum=1 verbose=3 name=adafruit18 gpios=dc:48,reset:60
root@beaglebone:~#
root@beaglebone:~# dmesg
[ 28.873275] bone_capemgr bone_capemgr: part_number 'BB-SPIDEV0', version 'N/A'
[ 28.873312] bone_capemgr bone_capemgr: slot #4: override
[ 28.873329] bone_capemgr bone_capemgr: Using override eeprom data at slot 4
[ 28.873345] bone_capemgr bone_capemgr: slot #4: 'Override Board Name,00A0,Override Manuf,BB-SPIDEV0'
[ 28.887831] bone_capemgr bone_capemgr: slot #4: dtbo 'BB-SPIDEV0-00A0.dtbo' loaded; overlay id #0
[ 38.511588] fbtft: module is from the staging directory, the quality is unknown, you have been warned.
[ 38.529093] fbtft_device: module is from the staging directory, the quality is unknown, you have been warned.
[ 38.532415] spidev spi1.0: spidev spi1.0 16000kHz 8 bits mode=0x01
[ 38.532471] spidev spi1.1: spidev spi1.1 16000kHz 8 bits mode=0x00
[ 38.532786] spidev spi1.0: Deleting spi1.0
[ 38.538212] fbtft_device: GPIOS used by 'adafruit18':
[ 38.548060] fbtft_device: 'dc' = GPIO48
[ 38.548107] fbtft_device: 'reset' = GPIO60
[ 38.548164] spidev spi1.1: spidev spi1.1 16000kHz 8 bits mode=0x00
[ 38.548208] spi spi1.0: fb_st7735r spi1.0 32000kHz 8 bits mode=0x00
[ 38.575014] fb_st7735r: module is from the staging directory, the quality is unknown, you have been warned.
[ 39.510139] Console: switching to colour frame buffer device 16x20
[ 39.510444] graphics fb0: fb_st7735r frame buffer, 128x160, 40 KiB video memory, 4 KiB DMA buffer memory, fps=20, spi1.0 at 32 MHz
root@beaglebone:~#
BAD trying SPI1 pins with SPI0 dtbo
[ 52.128238] bone_capemgr bone_capemgr: part_number 'BB-SPIDEV0', version 'N/A'
[ 52.133882] bone_capemgr bone_capemgr: slot #4: override
[ 52.133955] bone_capemgr bone_capemgr: Using override eeprom data at slot 4
[ 52.134005] bone_capemgr bone_capemgr: slot #4: 'Override Board Name,00A0,Override Manuf,BB-SPIDEV0'
[ 52.874125] bone_capemgr bone_capemgr: slot #4: dtbo 'BB-SPIDEV0-00A0.dtbo' loaded; overlay id #0
root@beaglebone:~# dmesg -C
root@beaglebone:~# ls -ltar /dev/spidev1.0
crw-rw---- 1 root spi 153, 0 Aug 27 09:38 /dev/spidev1.0
root@beaglebone:~# modprobe fbtft_device busnum=1 verbose=3 name=adafruit18 gpios=dc:48,reset:60
root@beaglebone:~# dmesg
[ 67.135063] fbtft: module is from the staging directory, the quality is unknown, you have been warned.
[ 67.157078] fbtft_device: module is from the staging directory, the quality is unknown, you have been warned.
[ 67.160670] spidev spi1.0: spidev spi1.0 16000kHz 8 bits mode=0x01
[ 67.160706] spidev spi1.1: spidev spi1.1 16000kHz 8 bits mode=0x00
[ 67.160897] spidev spi1.0: Deleting spi1.0
[ 67.162108] fbtft_device: GPIOS used by 'adafruit18':
[ 67.162131] fbtft_device: 'dc' = GPIO48
[ 67.162144] fbtft_device: 'reset' = GPIO60
[ 67.162168] spidev spi1.1: spidev spi1.1 16000kHz 8 bits mode=0x00
[ 67.162188] spi spi1.0: fb_st7735r spi1.0 32000kHz 8 bits mode=0x00
[ 67.188813] fb_st7735r: module is from the staging directory, the quality is unknown, you have been warned.
[ 68.101777] Console: switching to colour frame buffer device 16x20
[ 68.102831] graphics fb0: fb_st7735r frame buffer, 128x160, 40 KiB video memory, 4 KiB DMA buffer memory, fps=20, spi1.0 at 32 MHz
root@beaglebone:~#
How does bus_num in spidev.c get set?
drivers/spi/spi.c
struct spi_device *spi_new_device(struct spi_master *master,
struct spi_board_info *chip)
{
struct spi_device *proxy;
int status;
/* NOTE: caller did any chip->bus_num checks necessary.
*
* Also, unless we change the return value convention to use
* error-or-pointer (not NULL-or-pointer), troubleshootability
* suggests syslogged diagnostics are best here (ugh).
*/
proxy = spi_alloc_device(master);
if (!proxy)
return NULL;
WARN_ON(strlen(chip->modalias) >= sizeof(proxy->modalias));
proxy->chip_select = chip->chip_select;
proxy->max_speed_hz = chip->max_speed_hz;
proxy->mode = chip->mode;
proxy->irq = chip->irq;
strlcpy(proxy->modalias, chip->modalias, sizeof(proxy->modalias));
proxy->dev.platform_data = (void *) chip->platform_data;
proxy->controller_data = chip->controller_data;
proxy->controller_state = NULL;
status = spi_add_device(proxy);
if (status < 0) {
spi_dev_put(proxy);
return NULL;
}
return proxy;
}
[pdp7@skylake KERNEL]$ find drivers/spi/|grep c$|xargs grep of_ |grep bus
drivers/spi/spi.c: if (!of_property_read_u32(nc, "spi-tx-bus-width", &value)) {
drivers/spi/spi.c: if (!of_property_read_u32(nc, "spi-rx-bus-width", &value)) {
drivers/spi/spi.c: * of_register_spi_devices() - Register child devices onto the SPI bus
drivers/spi/spi.c: if ((master->bus_num < 0) && master->dev.of_node)
drivers/spi/spi.c: master->bus_num = of_alias_get_id(master->dev.of_node, "spi");
drivers/spi/spi-fsl-dspi.c: ret = of_property_read_u32(np, "bus-num", &bus_num);
drivers/spi/spi-mpc52xx.c: ms->ipb_freq = mpc5xxx_get_bus_frequency(op->dev.of_node);
[pdp7@skylake KERNEL]$
[pdp7@skylake KERNEL]$ git branch -a
master
v3.8.13-bone80
v4.1.14-bone17
v4.1.15-bone17
v4.1.30-bone23
* v4.4.19-bone13
v4.7-rc2-bone0
v4.8-rc3-bone1
remotes/origin/HEAD -> origin/master
remotes/origin/master
[pdp7@skylake KERNEL]$