--------------------------------------------
On Sat, 2/18/17, Mark K Cowan <m...@open-cosmos.com> wrote:

 Subject: Re: [beagleboard] Re: Microchip mcp2515, can over spi, not working. 
Wrong device tree overlay?
 To: "BeagleBoard" <beagleboard@googlegroups.com>
 Date: Saturday, February 18, 2017, 5:16 PM
 
 I solved it with my
 own devicetree overlay, loaded after the BB-SPIDEV0 overlay.
  It's available
 at https://github.com/battlesnake/beaglebone-spi0-mcp2515
 
 On Saturday, 18 February 2017 14:22:19 UTC, Laurits Telle
 Riple  wrote:Hi!
 I got it to work, but not using the mainline
 driver. I bought a cape from towertech to be sure that my
 hardware was correct. They shipped the device with some
 modified version of the driver. Got some help in the beagle
 irc chat to try to find the origin of that driver. IIRC the
 driver was based on a driver from many years ago, but it
 works. I have not tested it over a long period, but it seems
 to work. I am currently trying to get it to work with the
 mainline driver, but its not my top priority right now.
 There has been several changes to the mainline driver since
 I tried to use it the last time, so i hope it will work next
 time I try it. With the towertech driver I managed to get it
 to work, both by using a overlay and just making my own DT.
 Should be instructions on how to compile if you download
 from these links. And I think there is a dto in the zip as
 well. If I get it to work with the mainline, I will update
 this thread.
 Btw. Some other guy on irc did not get this
 driver to work with his old rev of the can cape. I think I
 have rev5. Should work with that.
  TT3201 driver for Debian 7.x
 / Kernel 3.x
 <https://dl.
 dropboxusercontent.com/u/ 2883083/TowerTech/towertech-
 tt3201-rev5.tar.gz>
 
   *
 TT3201 driver for Debian 8.x / Kernel 4.x
 <https://dl.
 dropboxusercontent.com/u/ 2883083/TowerTech/towertech-
 tt3201-rev5-kernel-4.x.tar.gz>
 
 
 tirsdag 14. februar 2017 16.11.56 UTC+1 skrev Mark K Cowan
 følgende:Hi,
 Did you ever get the MCP2515 working over SPI?
  I'm attempting that now, but I'm not sure where to
 start.
 Thanks,  Mark
 
 
 On Tuesday, 20 September 2016 14:30:39 UTC+1, Laurits Telle
 Riple  wrote:After chatting in
 the IRC channel with Matthijs I was encouraged to not use
 overlays, and just make my own dtb.  I have tried that now,
 but it doesn't seem to work properly. I've enabled
 spi0 and spi1. And used the spi_loopback to see that my dtb
 was working, then i expanded it by adding a clock node and
 adding the mcp in the spi config. Also, the max14830 not
 working, maybe the same issue? Anyways, this is my
 dtb: 
 /* * Copyright (C) 2012 Texas Instruments
 Incorporated - http://www.ti.com/ * * This program is free software; you can
 redistribute it and/or modify * it under the terms of the GNU General
 Public License version 2 as * published by the Free Software
 Foundation. */
 
 /dts-v1/;
 #include
 "am33xx.dtsi"#include
 "am335x-bone-common.dtsi"#include
 "am33xx-overlay-edma-fix.dtsi"#include
 "irq.h"
 /
 {        model =
 "TI AM335x BeagleBone
 Black";     
   compatible = "ti,am335x-bone-black",
 "ti,am335x-bone",
 "ti,am33xx";
        
 clk16m:clk16m{   
             compatible =
 "fixed-clock";                clock-frequency =
 <16000000>; 
               #clock-cells =
 <0>;     
   };
        
 clk4m:clk4m{     
           compatible =
 "fixed-clock";                clock-frequency =
 <4000000>; 
               #clock-cells =
 <0>;     
   };};
 &ldo3_reg
 {       
 regulator-min-microvolt =
 <1800000>; 
       regulator-max-microvolt =
 <1800000>; 
       regulator-always-on;};
 &mmc1
 {       
 vmmc-supply =
 <&vmmcsd_fixed>;};
 &mmc2
 {       
 vmmc-supply =
 <&vmmcsd_fixed>;        pinctrl-names =
 "default";        pinctrl-0 =
 <&emmc_pins>;        bus-width =
 <8>;     
   status = "okay";};
 &cpu0_opp_table
 {       
 /*         *
 All PG 2.0 silicon may not support 1GHz but some of the
 early         *
 BeagleBone Blacks have PG 2.0 silicon which is
 guaranteed     
    * to support 1GHz OPP so enable it for PG 2.0 on this
 board.       
  */       
 oppnitro@1000000000 {                opp-supported-hw =
 <0x06 0x0100>;        };};
 
 &am33xx_pinmux{       
 spi1_pins:spi1_pins{               
 pinctrl-single,pins=<                        0x190
 0x33  /* mcasp0_aclkx.spi1_sclk,  OUTPUT_PULLUP | MODE 3
 */           
             0x194 0x33  /* mcasp0_fsx.spi1_d0,    
  INPUT_PULLUP | MODE3 */                        0x198
 0x13  /* mcasp0_axr0.spi1_d1,     OUTPUT_PULLUP | MODE 3
 */           
             0x19c 0x13  /* mcasp0_ahclkr.spi1_cs0,
  OUTPUT_PULLUP | MODE3 */               
 >;       
 };       
 spi0_pins:spi0_pins{               
 pinctrl-single,pins=<                        0x150
 0x30  /* spi0_sclk, INPUT_PULLUP | MODE0
 */           
             0x154 0x30  /* spi0_d0, INPUT_PULLUP |
 MODE0 */       
                 0x158 0x10  /* spi0_d1,
 OUTPUT_PULLUP | MODE0 */                        0x15c
 0x10  /* spi0_cs0, OUTPUT_PULLUP | MODE0
 */           
     >;     
   };       
 mcp2515_pins:mcp2515_pins{               
 pinctrl-single,pins=<                        0x1ac
 0x37 /*mcasp0_ahclkx.gpio3_21,RX_ ENABLED | PULLUP | MODE7
 */           
     >;     
   };       
 max14830_pins:max14830_pins{               
 pinctrl-single,pins=<                        0x1a4
 0x37      /* mcasp0_fsr.gpio3_19, RX_ENABLED | PULLUP |
 MODE7 */       
         >; 
       };};
 &spi1{       
 status="okay";       
 pinctrl-names="default";       
 pinctrl-0=<&spi1_pins>;
        
 /*spi1@0{       
        
 compatible="spidev";               
 reg=<0>;   
            
 spi-max-frequency=<16000000>;        };*/
        
 max14830@0{     
          
 compatible="maxim,max14830";               
 reg=<0>;   
            
 spi-max-frequency=<16000000>;               
 clocks=<&clk4m>;               
 clock-names="osc";               
 interrupt-parent=<&gpio3>;                interrupts=<19
 IRQ_TYPE_EDGE_FALLING>;               
 gpio-controller; 
              
 #gpio-cells=<2>;        };       
 mcp2515@1{     
           compatible="microchip,mcp2515"
 ;           
     reg=<1>;               
 spi-max-frequency=<10000000>;               
 pinctrl-names="default";               
 pinctrl-0=<&mcp2515_pins>;               
 clocks=<&clk16m>;               
 interrupt-parent=<&gpio3>;                interrupts=<21
 IRQ_TYPE_EDGE_FALLING>;        };};
 &spi0{       
 status="okay";       
 pinctrl-names="default";       
 pinctrl-0=<&spi0_pins>;
        
 spi0@0{       
        
 compatible="spidev";               
 reg=<0>;   
            
 spi-max-frequency=<16000000>;        };};
 
 But I still dont get any can devices when i issue the
 "ip a" command. However running lsmod
 gives:
 debian@arm:/opt/source/dtb-4.
 4-ti$ lsmodModule                  Size
  Used by8021q                  17930
  0 garp                    5769  1
 8021qmrp                     7239  1
 8021qstp                     2219  1
 garpllc                     5123  2
 stp,garpusb_f_ecm               9336
  1 g_ether                 4976
  0 usb_f_rndis            22191  2
 g_ethermcp251x                 9039
  0 u_ether                11898  3
 usb_f_ecm,usb_f_rndis,g_etherlibcomposite    
       43717  3
 usb_f_ecm,usb_f_rndis,g_ethercan_dev        
        11820  1 mcp251xspidev          
        7523  0 bnep                
   13652  2 omap_aes_driver        19045
  0 omap_sham              21340
  0 bluetooth             419221  7
 bneprfkill                 18276  3
 bluetoothomap_rng                4423
  0 rng_core                7703  1
 omap_rngsnd_soc_davinci_mcasp    17079
  0 snd_soc_edma            1290  1
 snd_soc_davinci_mcaspsnd_soc_omap          
  3058  1 snd_soc_davinci_mcaspsnd_soc_core  
        155549  3 snd_soc_davinci_mcasp,snd_soc_
 edma,snd_soc_omapsnd_pcm_dmaengine       5209
  2 snd_soc_core,snd_soc_omapsnd_pcm        
        83341  4 snd_soc_davinci_mcasp,snd_soc_
 core,snd_soc_omap,snd_pcm_ dmaenginesnd_timer  
            19788  1 snd_pcmsnd        
            59495  3
 snd_soc_core,snd_timer,snd_pcmsoundcore      
         7637  1 sndspi_omap2_mcspi      
  11148  0 nfsd                
  261377  13 evdev                
  10695  2 uio_pdrv_genirq         3539
  0 uio                     8822  1
 uio_pdrv_genirqpru_rproc            
  13507  0 pruss_intc              7451
  1 pru_rprocpruss                
  10611  1 pru_rproc
 I have used https://www.sparkfun.com/
 products/13262 with bi-directional heconverters on the
 logic signals.
 I don't understand what I am doing wrong?
 Dmesg output here: http://dpaste.com/
 2XSZV56
 
 fredag 19. august 2016 19.37.11 UTC+2 skrev William Hermans
 følgende:Something I noticed about your
 device tree file. First, the mcp251x.c / mcp2515.c driver
 would be loaded as a module in a device tree. I see no
 "status=okay" so the driver would never load.
 Honestly I've yet to setup SPI on the beaglebone in ~3.5
 years. So I'm no expert. However if I were you. I would
 at least initially setup, and use universal-io to mux your
 pins. https://github.com/
 cdsteinkuehler/beaglebone- universal-io . It is far
 simpler, and easier to use than a raw device tree source
 file.
 
 So, universal io is already installed, and loaded by
 default on the stick 4.4 debian images. The only thing you
 may have to do is download via wget config-pin, chmod +x it
 then move it to the appropriate /bin directory.
 
 Then you just:
 
 $ sudo config-pin PX.XX spi
 
 etc, etc.
 
 
 On Fri, Aug 19, 2016
 at 9:01 AM, William Hermans <yyr...@gmail.com> wrote:
 https://github.com/msperl/
 mcp2515/blob/master/mcp2515.c there it is.
 
 By the way, the mcp2515 has a built in transceiver.
 The CANBUS controller on the am335x does not. the MCP2515 is
 also more cost efficient. So don't let anyone make you
 feel bad for going that route.
 
 On Fri, Aug 19, 2016
 at 8:58 AM, William Hermans <yyr...@gmail.com> wrote:
 1. Haha! It does? Must have
 missed it when I looked on the pinmap.2. Tried to
 disable universal cape, makes no difference. 
 Anyways.
  I still want to get it to work. Have spent so much time on
 it, and I 
 would hate to just let it go. Even though I probably
 won't use it. I 
 also need to get a spi to uart chip (max14830) to work,
 which has almost
  the same configuration so I'm hoping that solving this
 issue, will also
  solve the max14830.
 I will try
 out your tool, looks very promising ;) Thanks for the help.
 Well, you're device tree would
 simply be for SPI anyway. Since thats the bus you're
 using. Also, so you know the mcp2515 driver already exists,
 so I forget whatexactly the module name is, but something
 like $ sudo
 modprobe mcp25xx should just work.
 
 
 On Fri, Aug 19, 2016
 at 7:21 AM,  <laurits...@gmail.com> wrote:
 1. Haha! It does? Must have missed it when I
 looked on the pinmap.2. Tried to disable universal
 cape, makes no difference. 
 Anyways. I still want to get it to work. Have
 spent so much time on it, and I would hate to just let it
 go. Even though I probably won't use it. I also need to
 get a spi to uart chip (max14830) to work, which has almost
 the same configuration so I'm hoping that solving this
 issue, will also solve the max14830.
 I will try out your tool, looks very promising ;)
 Thanks for the help.
 
 fredag 19. august 2016 15.42.06 UTC+2 skrev Matthijs van
 Duin følgende:I haven't really looked
 yet at your overlay, but two immediate
 thoughts:1. why on earth
 are you using an spi can controller when there are
 two built-in CAN controllers already on the
 beaglebone?2. you have
 cape-universal enabled, this conflicts with pretty much
 every overlay (remove the cape_universal=enable from cmdline
 in your /boot/uEnv.txt
 BTW I made some
 utils to make the process of writing overlays less painful:
 https://github.com/mvduin/
 overlay-utilsIt lets you write them as
 device tree fragments and automatically converts them to the
 structure requires for overlays. It also includes macros
 that make pinmux much easier to read. No support for overlay
 metadata though, I didn't bother since the new configfs
 mechanism to load overlays ignores it
 anyway.
 Matthijs
 
 
 
 
 -- 
 
 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...@googlegroups. com.
 
 To view this discussion on the web visit https://groups.google.com/d/
 msgid/beagleboard/01fc36f9- 5d81-4597-acc6-d553e02a231b%
 40googlegroups.com.
 
 For more options, visit https://groups.google.com/d/
 optout.
 
 
 
 
 
 
 
 
 
 
 
 -- 
 
 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.
 
 To view this discussion on the web visit 
https://groups.google.com/d/msgid/beagleboard/dadbe3ea-847d-402e-8002-7f64f7d4f1a8%40googlegroups.com.
 
 For more options, visit https://groups.google.com/d/optout.
 erioada regimului legionar-antonescian nu a fost lipsita de contradicp intre 
protagonistii scenei politice - generalul si legionarii - ambii socotind  in 
numele unor conceptii ideologice totusi diferite  alianta temporara  si doar un 
pas catre controlul exclusiv al puterii. Adept al ordinii publice si patriot  
Ion Antonescc era nemultumit de violentele si crimele legionarilor. Apropierea 
sa de Germania nazista  - generalul fiind ca formatie anglofil - urmarea doar 
garantarea granitelor tarii  a refacerii integritatii teritoriale nationale  si 
a afirmam suveranitatii Romaniei  prin anularea Dictatului de la Viena  
problema pe care  de fapt  a ridicat-o in toate intalnirile cu Hitler. Convins 
de rolul nefast al Garzii de Fier  Ion Antonescu a luptat  de la sfarsitul lui 
decembrie 1940  pentru eliminarea acesteia din vjata politica. in schimb  
legionarii  pusi pe jaf si pe coruptie  ii reprosau generalului ca mentine 
vechii oameni politici si chiar unele forte politice compromise in colaborarea 
cu regele Caro  al   - ea. Confruntarea intre cele doua pozitii a luat forma 
incercarii supreme a legionarilor de a cuceri puterea politica prin rebeliune.

-- 
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.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/beagleboard/371538802.163835.1487435348012%40mail.yahoo.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to