Dear all, I have tried to work with SPI1 on the beaglebone black (kernel 3.8) by using spidev. I saw several guides on that and so, I compiled my own device tree and it works: I can send and receive packet, change the spi clock frequency and so on. This is my device tree file
/dts-v1/; /plugin/; / { compatible = "ti,beaglebone", "ti,beaglebone-black"; part-number = "BB-SPI1"; version = "00A0"; fragment@0 { target = <&am33xx_pinmux>; __overlay__ { bone_replicape_spi1_pins: pinmux_replicape_spi1_pins { pinctrl-single,pins = < 0x190 0x3B /* P9_31 = mcasp0_aclkx.spi1_sclk , NO PULL | MODE3 */ 0x194 0x3B /* P9_29 = mcasp0_fsx.spi1_d0 , NO PULL | MODE3 */ 0x198 0x1B /* P9_30 = mcasp0_axr0.spi1_d1 , NO PULL | MODE3 */ 0x19c 0x1B /* P9_28 = mcasp0_ahclkr.spi1_cs0 , NO PULL | MODE3 */ 0x164 0x0A /* P9_42 = spi1_cs1 , NO PULL | MODE2 */ >; }; }; }; fragment@1 { target = <&spi1>; __overlay__ { #address-cells = <1>; #size-cells = <0>; status = "okay"; pinctrl-names = "default"; pinctrl-0 = <&bone_replicape_spi1_pins>; cs-gpios = <&gpio4 17 0>, <&gpio1 7 0>; cs0-device { #address-cells = <1>; #size-cells = <0>; compatible = "spidev"; reg = <0>; spi-max-frequency = <16000000>; }; cs1-device { #address-cells = <1>; #size-cells = <0>; compatible = "spidev"; reg = <1>; spi-max-frequency = <16000000>; }; }; }; }; Now I would like to go ahead and try to map it directly by mmap. This is my C code: #define SPI_BASE 0x481A0000 // SPI BASE Register #define REGLEN 0x400 #define SPI_REVISION (0x000/4) #define SPI_SYSCONFIG (0x110/4) #define SPI_SYSSTATUS (0x114/4) ..... ..... ..... ..... int main() { volatile unsigned int *data = NULL; volatile unsigned int *spi_addr = NULL; int fd_gp = open("/dev/mem",O_RDWR); spi_addr = mmap(NULL, REGLEN, PROT_READ | PROT_WRITE, MAP_SHARED, fd_gp, SPI_BASE); data = spi_addr + SPI_REVISION; printf("SPI_REVISION value = 0x%x.\n",*data); return 0; } As soon as I try to print the SPI_REVISION value, my program gets stuck. I am quite sure I am doing a stupid error somewhere but I do not see where. Can you help me? Thanks. Alberto -- For more options, visit http://beagleboard.org/discuss --- You received this message because you are subscribed to the Google Groups "BeagleBoard" group. To unsubscribe from this group and stop receiving emails from it, send an email to beagleboard+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.