All of lore.kernel.org
 help / color / mirror / Atom feed
* MCP2515 DTS support
       [not found] <1445543c688.2748.cbaa067694a7e68fb76a213b35423fb5@gmail.com>
@ 2014-02-21 16:26 ` Lucas Zampar Bernardi
  2014-02-22 19:46   ` Lucas Zampar Bernardi
  0 siblings, 1 reply; 10+ messages in thread
From: Lucas Zampar Bernardi @ 2014-02-21 16:26 UTC (permalink / raw)
  To: linux-can

Hello all,



I have tried to communicate MCP2515 with new kernel 3.14-rc2 using DTS. At 
this version, the driver has been modified to support DTS structures.

The hardware its ok, because it has worked witk linux 2.6.39.

The SPI controller also it's ok, because I have an AT45DB321 connected and 
its detected.

Could somebody give some tips?




My DTS SPI node:


			spi0: spi@f0000000 {

				status = "okay";

				interrupts = <13 4 5>;

				cs-gpios = <&pioA 14 0>, <&pioA 7 0>, <&pioA 1 0>, <0>; /* CHIP SELECT */

       			

        			

				mtd_dataflash@0 {

					compatible = "atmel,at45", "atmel,dataflash";

					spi-max-frequency = <1000000>;

					reg = <0>;

				};

				

				can0: can@1 {

					compatible = "microchip,mcp2515";

					reg = <2>;

					spi-max-frequency = <5000000>;

					clocks = <&mcp251x_clock>;

					interrupt-parent = <&pioC>; /* MCP GPO Interrupt */

					interrupts = <12 0x2>;

				};

		};



I have seen that the mcp2515 interrupt was not created.


# cat /proc/interrupts 

           CPU0       

16: 4817 AIC 1 at91_tick, at91_rtc, ttyS0

17: 81687 AIC 17 tc_clkevt

 18:          0       AIC  20  at_hdmac

 19:          0       AIC  21  at_hdmac

22: 21294 AIC 12 f0008000.mmc

23: 0 AIC 9 f8010000.i2c

24: 0 AIC 10 f8014000.i2c

26: 6 AIC 13 f0000000.spi

 27:          0       AIC  24  eth0

 28:          1       AIC  22  ehci_hcd:usb1, ohci_hcd:usb2

 30:          1      GPIO  26  transfer_button

 31:          0      GPIO  25  custom_button

Err:          0




# dmesg | grep spi

[ 0.085937] bus: 'spi': registered

[ 0.085937] device class 'spi_master': registering

[ 0.101562] device: 'f0000000.spi': device_add

[ 0.101562] bus: 'platform': add device f0000000.spi

[ 0.101562] PM: Adding info for platform:f0000000.spi

[ 0.703125] bus: 'spi': add driver mtd_dataflash

[ 0.890625] bus: 'platform': add driver atmel_spi

[ 0.890625] bus: 'platform': driver_probe_device: matched device 
f0000000.spi with driver atmel_spi

[ 0.890625] bus: 'platform': really_probe: probing driver atmel_spi with 
device f0000000.spi

[ 0.890625] atmel_spi f0000000.spi: no sleep pinctrl state

[ 0.890625] atmel_spi f0000000.spi: no idle pinctrl state

[ 0.890625] atmel_spi f0000000.spi: version: 0x212

[ 0.898437] atmel_spi f0000000.spi: Using dma0chan2 (tx) and dma0chan3 (rx) 
for DMA transfers

[ 0.906250] atmel_spi f0000000.spi: Atmel SPI Controller at 0xf0000000 (irq 26)

[ 0.914062] device: 'spi32766': device_add

[ 0.914062] PM: Adding info for No Bus:spi32766

[ 0.914062] atmel_spi f0000000.spi: registered master spi32766 (dynamic)

[ 0.914062] spi spi32766.0: setup: bpw 8 mode 0x0 -> csr0 00000002

[ 0.914062] spi spi32766.0: setup mode 0, 8 bits/w, 1000000 Hz max --> 0

[ 0.914062] device: 'spi32766.0': device_add

[ 0.914062] bus: 'spi': add device spi32766.0

[ 0.914062] PM: Adding info for spi:spi32766.0

[ 0.914062] bus: 'spi': driver_probe_device: matched device spi32766.0 with 
driver mtd_dataflash

[ 0.914062] bus: 'spi': really_probe: probing driver mtd_dataflash with 
device spi32766.0

[ 0.914062] mtd_dataflash spi32766.0: no default pinctrl state

[ 0.914062] mtd_dataflash spi32766.0: new message c783fcb0 submitted for 
spi32766.0

[ 0.914062] mtd_dataflash spi32766.0: activate 14, mr 000e0031

[ 0.914062] atmel_spi f0000000.spi: start pio xfer c783fc68: len 1 tx 
c7869760 rx (null) bitpw 8

[ 0.914062] atmel_spi f0000000.spi: start pio xfer c783fc8c: len 3 tx 
(null) rx c7869761 bitpw 8

[ 0.914062] atmel_spi f0000000.spi: start pio xfer c783fc8c: len 3 tx 
(null) rx c7869761 bitpw 8

[ 0.914062] atmel_spi f0000000.spi: start pio xfer c783fc8c: len 3 tx 
(null) rx c7869761 bitpw 8

[ 0.914062] mtd_dataflash spi32766.0: xfer c783fc68: len 1 tx 
c7869760/00000000 rx (null)/00000000

[ 0.914062] mtd_dataflash spi32766.0: xfer c783fc8c: len 3 tx 
(null)/00000000 rx c7869761/00000000

[ 0.914062] mtd_dataflash spi32766.0: DEactivate 14, mr 000f0031

[ 0.914062] mtd_dataflash spi32766.0: new message c783fcb0 submitted for 
spi32766.0

[ 0.914062] mtd_dataflash spi32766.0: activate 14, mr 000e0031

[ 0.914062] atmel_spi f0000000.spi: start pio xfer c783fc68: len 1 tx 
c7869760 rx (null) bitpw 8

[ 0.914062] atmel_spi f0000000.spi: start pio xfer c783fc8c: len 1 tx 
(null) rx c7869761 bitpw 8

[ 0.914062] mtd_dataflash spi32766.0: xfer c783fc68: len 1 tx 
c7869760/00000000 rx (null)/00000000

[ 0.914062] mtd_dataflash spi32766.0: xfer c783fc8c: len 1 tx 
(null)/00000000 rx c7869761/00000000

[ 0.914062] mtd_dataflash spi32766.0: DEactivate 14, mr 000f0031

[ 0.914062] mtd_dataflash spi32766.0: AT45DB321x (4224 KBytes) pagesize 528 
bytes, OTP

[ 0.929687] driver: 'spi32766.0': driver_bound: bound to device 'mtd_dataflash'

[ 0.929687] bus: 'spi': really_probe: bound device spi32766.0 to driver 
mtd_dataflash

[ 0.929687] atmel_spi f0000000.spi: registered child spi32766.0

[ 0.929687] spi spi32766.2: setup: bpw 8 mode 0x0 -> csr2 00000002

[ 0.929687] spi spi32766.2: setup mode 0, 8 bits/w, 5000000 Hz max --> 0

[ 0.929687] device: 'spi32766.2': device_add

[ 0.929687] bus: 'spi': add device spi32766.2

[ 0.929687] PM: Adding info for spi:spi32766.2

[ 0.929687] atmel_spi f0000000.spi: registered child spi32766.2

[ 0.929687] driver: 'f0000000.spi': driver_bound: bound to device 'atmel_spi'

[ 0.929687] bus: 'platform': really_probe: bound device f0000000.spi to 
driver atmel_spi

[ 0.953125] bus: 'spi': add driver mcp251x

[ 0.953125] bus: 'spi': driver_probe_device: matched device spi32766.2 with 
driver mcp251x

[ 0.953125] bus: 'spi': really_probe: probing driver mcp251x with device 
spi32766.2

[ 0.953125] mcp251x spi32766.2: no default pinctrl state

[ 0.953125] mcp251x: probe of spi32766.2 failed with error -2

[ 1.328125] bus: 'spi': add driver mmc_spi





Regards,



Lucas Zampar



^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: MCP2515 DTS support
  2014-02-21 16:26 ` MCP2515 DTS support Lucas Zampar Bernardi
@ 2014-02-22 19:46   ` Lucas Zampar Bernardi
  2014-02-25 21:35     ` Marc Kleine-Budde
  0 siblings, 1 reply; 10+ messages in thread
From: Lucas Zampar Bernardi @ 2014-02-22 19:46 UTC (permalink / raw)
  To: linux-can

Hi again,


I found the causes of problem, and now I need to know if I was setting 
wrong structure or there are driver problem.
I've had this modification on mcp251x.c:

static int mcp251x_can_probe(struct spi_device *spi)
{
     const struct of_device_id *of_id = of_match_device(mcp251x_of_match,
                                &spi->dev);
     struct mcp251x_platform_data *pdata = dev_get_platdata(&spi->dev);
     struct net_device *net;
     struct mcp251x_priv *priv;
     int freq, ret = -ENODEV;
     struct clk *clk;


     clk = devm_clk_get(&spi->dev, NULL);
     dev_dbg(&spi->dev, "MCP2515: clk = devm_clk_get(&spi->dev, NULL)");
     if (IS_ERR(clk)) {
         if (pdata)
         {
             freq = pdata->oscillator_frequency;
         }
         else
         {
 >>        freq = 20 * 1000 * 1000;    // FORCE FREQUENCY to 20Mhz
             //return PTR_ERR(clk);
         }
     } else {
         dev_dbg(&spi->dev, "MCP2515: freq = clk_get_rate(clk);");
         freq = clk_get_rate(clk);
     }


Then the driver start to run.

I think that the problem is about how to set a correct clock.


I put on can node:
                 can0: can@1 {
                     compatible = "microchip,mcp2515";
                     reg = <2>;
                     spi-max-frequency = <5000000>;
                     clocks = <&mcp251x_clock>;
                     interrupt-parent = <&pioC>; /* MCP GPO Interrupt */
                     interrupts = <12 0x2>;
                 };



and my clocks node:

     clocks {
         #address-cells = <1>;
         #size-cells = <1>;
         ranges;

         main_clock: clock@0 {
             compatible = "atmel,osc", "fixed-clock";
             clock-frequency = <12000000>;
         };

         mcp251x_clock: mcp2515 {
             compatible = "fixed-clock";
             #clock-cells = <0>;
             clock-frequency = <20000000>;
         };


     };


So... How can we know if it's a DTS definition or a driver problem?




regards,



Lucas Zampar


On 21-02-2014 13:26, Lucas Zampar Bernardi wrote:
> Hello all,
>
>
>
> I have tried to communicate MCP2515 with new kernel 3.14-rc2 using 
> DTS. At this version, the driver has been modified to support DTS 
> structures.
>
> The hardware its ok, because it has worked witk linux 2.6.39.
>
> The SPI controller also it's ok, because I have an AT45DB321 connected 
> and its detected.
>
> Could somebody give some tips?
>
>
>
>
> My DTS SPI node:
>
>
>             spi0: spi@f0000000 {
>
>                 status = "okay";
>
>                 interrupts = <13 4 5>;
>
>                 cs-gpios = <&pioA 14 0>, <&pioA 7 0>, <&pioA 1 0>, 
> <0>; /* CHIP SELECT */
>
>
>
>
>
>                 mtd_dataflash@0 {
>
>                     compatible = "atmel,at45", "atmel,dataflash";
>
>                     spi-max-frequency = <1000000>;
>
>                     reg = <0>;
>
>                 };
>
>
>
>                 can0: can@1 {
>
>                     compatible = "microchip,mcp2515";
>
>                     reg = <2>;
>
>                     spi-max-frequency = <5000000>;
>
>                     clocks = <&mcp251x_clock>;
>
>                     interrupt-parent = <&pioC>; /* MCP GPO Interrupt */
>
>                     interrupts = <12 0x2>;
>
>                 };
>
>         };
>
>
>
> I have seen that the mcp2515 interrupt was not created.
>
>
> # cat /proc/interrupts
>
>            CPU0
>
> 16: 4817 AIC 1 at91_tick, at91_rtc, ttyS0
>
> 17: 81687 AIC 17 tc_clkevt
>
>  18:          0       AIC  20  at_hdmac
>
>  19:          0       AIC  21  at_hdmac
>
> 22: 21294 AIC 12 f0008000.mmc
>
> 23: 0 AIC 9 f8010000.i2c
>
> 24: 0 AIC 10 f8014000.i2c
>
> 26: 6 AIC 13 f0000000.spi
>
>  27:          0       AIC  24  eth0
>
>  28:          1       AIC  22  ehci_hcd:usb1, ohci_hcd:usb2
>
>  30:          1      GPIO  26  transfer_button
>
>  31:          0      GPIO  25  custom_button
>
> Err:          0
>
>
>
>
> # dmesg | grep spi
>
> [ 0.085937] bus: 'spi': registered
>
> [ 0.085937] device class 'spi_master': registering
>
> [ 0.101562] device: 'f0000000.spi': device_add
>
> [ 0.101562] bus: 'platform': add device f0000000.spi
>
> [ 0.101562] PM: Adding info for platform:f0000000.spi
>
> [ 0.703125] bus: 'spi': add driver mtd_dataflash
>
> [ 0.890625] bus: 'platform': add driver atmel_spi
>
> [ 0.890625] bus: 'platform': driver_probe_device: matched device 
> f0000000.spi with driver atmel_spi
>
> [ 0.890625] bus: 'platform': really_probe: probing driver atmel_spi 
> with device f0000000.spi
>
> [ 0.890625] atmel_spi f0000000.spi: no sleep pinctrl state
>
> [ 0.890625] atmel_spi f0000000.spi: no idle pinctrl state
>
> [ 0.890625] atmel_spi f0000000.spi: version: 0x212
>
> [ 0.898437] atmel_spi f0000000.spi: Using dma0chan2 (tx) and dma0chan3 
> (rx) for DMA transfers
>
> [ 0.906250] atmel_spi f0000000.spi: Atmel SPI Controller at 0xf0000000 
> (irq 26)
>
> [ 0.914062] device: 'spi32766': device_add
>
> [ 0.914062] PM: Adding info for No Bus:spi32766
>
> [ 0.914062] atmel_spi f0000000.spi: registered master spi32766 (dynamic)
>
> [ 0.914062] spi spi32766.0: setup: bpw 8 mode 0x0 -> csr0 00000002
>
> [ 0.914062] spi spi32766.0: setup mode 0, 8 bits/w, 1000000 Hz max --> 0
>
> [ 0.914062] device: 'spi32766.0': device_add
>
> [ 0.914062] bus: 'spi': add device spi32766.0
>
> [ 0.914062] PM: Adding info for spi:spi32766.0
>
> [ 0.914062] bus: 'spi': driver_probe_device: matched device spi32766.0 
> with driver mtd_dataflash
>
> [ 0.914062] bus: 'spi': really_probe: probing driver mtd_dataflash 
> with device spi32766.0
>
> [ 0.914062] mtd_dataflash spi32766.0: no default pinctrl state
>
> [ 0.914062] mtd_dataflash spi32766.0: new message c783fcb0 submitted 
> for spi32766.0
>
> [ 0.914062] mtd_dataflash spi32766.0: activate 14, mr 000e0031
>
> [ 0.914062] atmel_spi f0000000.spi: start pio xfer c783fc68: len 1 tx 
> c7869760 rx (null) bitpw 8
>
> [ 0.914062] atmel_spi f0000000.spi: start pio xfer c783fc8c: len 3 tx 
> (null) rx c7869761 bitpw 8
>
> [ 0.914062] atmel_spi f0000000.spi: start pio xfer c783fc8c: len 3 tx 
> (null) rx c7869761 bitpw 8
>
> [ 0.914062] atmel_spi f0000000.spi: start pio xfer c783fc8c: len 3 tx 
> (null) rx c7869761 bitpw 8
>
> [ 0.914062] mtd_dataflash spi32766.0: xfer c783fc68: len 1 tx 
> c7869760/00000000 rx (null)/00000000
>
> [ 0.914062] mtd_dataflash spi32766.0: xfer c783fc8c: len 3 tx 
> (null)/00000000 rx c7869761/00000000
>
> [ 0.914062] mtd_dataflash spi32766.0: DEactivate 14, mr 000f0031
>
> [ 0.914062] mtd_dataflash spi32766.0: new message c783fcb0 submitted 
> for spi32766.0
>
> [ 0.914062] mtd_dataflash spi32766.0: activate 14, mr 000e0031
>
> [ 0.914062] atmel_spi f0000000.spi: start pio xfer c783fc68: len 1 tx 
> c7869760 rx (null) bitpw 8
>
> [ 0.914062] atmel_spi f0000000.spi: start pio xfer c783fc8c: len 1 tx 
> (null) rx c7869761 bitpw 8
>
> [ 0.914062] mtd_dataflash spi32766.0: xfer c783fc68: len 1 tx 
> c7869760/00000000 rx (null)/00000000
>
> [ 0.914062] mtd_dataflash spi32766.0: xfer c783fc8c: len 1 tx 
> (null)/00000000 rx c7869761/00000000
>
> [ 0.914062] mtd_dataflash spi32766.0: DEactivate 14, mr 000f0031
>
> [ 0.914062] mtd_dataflash spi32766.0: AT45DB321x (4224 KBytes) 
> pagesize 528 bytes, OTP
>
> [ 0.929687] driver: 'spi32766.0': driver_bound: bound to device 
> 'mtd_dataflash'
>
> [ 0.929687] bus: 'spi': really_probe: bound device spi32766.0 to 
> driver mtd_dataflash
>
> [ 0.929687] atmel_spi f0000000.spi: registered child spi32766.0
>
> [ 0.929687] spi spi32766.2: setup: bpw 8 mode 0x0 -> csr2 00000002
>
> [ 0.929687] spi spi32766.2: setup mode 0, 8 bits/w, 5000000 Hz max --> 0
>
> [ 0.929687] device: 'spi32766.2': device_add
>
> [ 0.929687] bus: 'spi': add device spi32766.2
>
> [ 0.929687] PM: Adding info for spi:spi32766.2
>
> [ 0.929687] atmel_spi f0000000.spi: registered child spi32766.2
>
> [ 0.929687] driver: 'f0000000.spi': driver_bound: bound to device 
> 'atmel_spi'
>
> [ 0.929687] bus: 'platform': really_probe: bound device f0000000.spi 
> to driver atmel_spi
>
> [ 0.953125] bus: 'spi': add driver mcp251x
>
> [ 0.953125] bus: 'spi': driver_probe_device: matched device spi32766.2 
> with driver mcp251x
>
> [ 0.953125] bus: 'spi': really_probe: probing driver mcp251x with 
> device spi32766.2
>
> [ 0.953125] mcp251x spi32766.2: no default pinctrl state
>
> [ 0.953125] mcp251x: probe of spi32766.2 failed with error -2
>
> [ 1.328125] bus: 'spi': add driver mmc_spi
>
>
>
>
>
> Regards,
>
>
>
> Lucas Zampar
>
>


^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: MCP2515 DTS support
  2014-02-22 19:46   ` Lucas Zampar Bernardi
@ 2014-02-25 21:35     ` Marc Kleine-Budde
  2014-02-26  4:17       ` Alexander Shiyan
  0 siblings, 1 reply; 10+ messages in thread
From: Marc Kleine-Budde @ 2014-02-25 21:35 UTC (permalink / raw)
  To: Lucas Zampar Bernardi, Alexander Shiyan; +Cc: linux-can

[-- Attachment #1: Type: text/plain, Size: 2640 bytes --]

On 02/22/2014 08:46 PM, Lucas Zampar Bernardi wrote:
> Hi again,
> 
> 
> I found the causes of problem, and now I need to know if I was setting
> wrong structure or there are driver problem.
> I've had this modification on mcp251x.c:
> 
> static int mcp251x_can_probe(struct spi_device *spi)
> {
>     const struct of_device_id *of_id = of_match_device(mcp251x_of_match,
>                                &spi->dev);
>     struct mcp251x_platform_data *pdata = dev_get_platdata(&spi->dev);
>     struct net_device *net;
>     struct mcp251x_priv *priv;
>     int freq, ret = -ENODEV;
>     struct clk *clk;
> 
> 
>     clk = devm_clk_get(&spi->dev, NULL);
>     dev_dbg(&spi->dev, "MCP2515: clk = devm_clk_get(&spi->dev, NULL)");
>     if (IS_ERR(clk)) {
>         if (pdata)
>         {
>             freq = pdata->oscillator_frequency;
>         }
>         else
>         {
>>>        freq = 20 * 1000 * 1000;    // FORCE FREQUENCY to 20Mhz
>             //return PTR_ERR(clk);
>         }
>     } else {
>         dev_dbg(&spi->dev, "MCP2515: freq = clk_get_rate(clk);");
>         freq = clk_get_rate(clk);
>     }
> 
> 
> Then the driver start to run.
> 
> I think that the problem is about how to set a correct clock.
> 
> 
> I put on can node:
>                 can0: can@1 {
>                     compatible = "microchip,mcp2515";
>                     reg = <2>;
>                     spi-max-frequency = <5000000>;
>                     clocks = <&mcp251x_clock>;
>                     interrupt-parent = <&pioC>; /* MCP GPO Interrupt */
>                     interrupts = <12 0x2>;
>                 };
> 
> 
> 
> and my clocks node:
> 
>     clocks {
>         #address-cells = <1>;
>         #size-cells = <1>;
>         ranges;
> 
>         main_clock: clock@0 {
>             compatible = "atmel,osc", "fixed-clock";
>             clock-frequency = <12000000>;
>         };
> 
>         mcp251x_clock: mcp2515 {
>             compatible = "fixed-clock";
>             #clock-cells = <0>;
>             clock-frequency = <20000000>;
>         };
> 
> 
>     };
> 
> 
> So... How can we know if it's a DTS definition or a driver problem?

The driver looks good. I've put Alexander Shiyan, who contributed the DT
pachtes, on Cc. Maybe he can post the DT he used.

Marc

-- 
Pengutronix e.K.                  | Marc Kleine-Budde           |
Industrial Linux Solutions        | Phone: +49-231-2826-924     |
Vertretung West/Dortmund          | Fax:   +49-5121-206917-5555 |
Amtsgericht Hildesheim, HRA 2686  | http://www.pengutronix.de   |


[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 242 bytes --]

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: MCP2515 DTS support
  2014-02-25 21:35     ` Marc Kleine-Budde
@ 2014-02-26  4:17       ` Alexander Shiyan
  2014-02-26 13:12         ` Lucas Zampar Bernardi
  0 siblings, 1 reply; 10+ messages in thread
From: Alexander Shiyan @ 2014-02-26  4:17 UTC (permalink / raw)
  To: Marc Kleine-Budde; +Cc: Lucas Zampar Bernardi, linux-can

Вторник, 25 февраля 2014, 22:35 +01:00 от Marc Kleine-Budde <mkl@pengutronix.de>:
> On 02/22/2014 08:46 PM, Lucas Zampar Bernardi wrote:
> > Hi again,
> > 
> > I found the causes of problem, and now I need to know if I was setting
> > wrong structure or there are driver problem.
> > I've had this modification on mcp251x.c:
> > 
> > static int mcp251x_can_probe(struct spi_device *spi)
> > {
> >     const struct of_device_id *of_id = of_match_device(mcp251x_of_match,
> >                                &spi->dev);
> >     struct mcp251x_platform_data *pdata = dev_get_platdata(&spi->dev);
> >     struct net_device *net;
> >     struct mcp251x_priv *priv;
> >     int freq, ret = -ENODEV;
> >     struct clk *clk;
> > 
> > 
> >     clk = devm_clk_get(&spi->dev, NULL);
> >     dev_dbg(&spi->dev, "MCP2515: clk = devm_clk_get(&spi->dev, NULL)");
> >     if (IS_ERR(clk)) {
> >         if (pdata)
> >         {
> >             freq = pdata->oscillator_frequency;
> >         }
> >         else
> >         {
> >>>        freq = 20 * 1000 * 1000;    // FORCE FREQUENCY to 20Mhz
> >             //return PTR_ERR(clk);
> >         }
> >     } else {
> >         dev_dbg(&spi->dev, "MCP2515: freq = clk_get_rate(clk);");
> >         freq = clk_get_rate(clk);
> >     }
> > 
> > 
> > Then the driver start to run.
> > 
> > I think that the problem is about how to set a correct clock.
> > 
> > 
> > I put on can node:
> >                 can0: can@1 {
> >                     compatible = "microchip,mcp2515";
> >                     reg = <2>;

can0 ... can@1 ... reg = <2>...
Uhhh....

Unfortunately I do not see the original message, please repeat it to me.
Boot log is also required, as long as I do not understand what the problem
you have there.

---

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: MCP2515 DTS support
  2014-02-26  4:17       ` Alexander Shiyan
@ 2014-02-26 13:12         ` Lucas Zampar Bernardi
  2014-02-26 14:50           ` Alexander Shiyan
  0 siblings, 1 reply; 10+ messages in thread
From: Lucas Zampar Bernardi @ 2014-02-26 13:12 UTC (permalink / raw)
  To: Alexander Shiyan, Marc Kleine-Budde; +Cc: linux-can

[-- Attachment #1: Type: text/plain, Size: 2931 bytes --]

Hello Alexander,


Follow attach my DTS file and my dmesg log.
How you can see, we have "mcp251x: probe of spi32766.2 failed with error 
-2.".
I discovered that the cause is the clock config structure, because if 
I've forced a frequency hardcode all driver works.
The point where I've forced is:

on mcp251x.c

static int mcp251x_can_probe(struct spi_device *spi)
{
     const struct of_device_id *of_id = of_match_device(mcp251x_of_match,
                                &spi->dev);
     struct mcp251x_platform_data *pdata = dev_get_platdata(&spi->dev);
     struct net_device *net;
     struct mcp251x_priv *priv;
     int freq, ret = -ENODEV;
     struct clk *clk;

     clk = devm_clk_get(&spi->dev, NULL);
     if (IS_ERR(clk)) {
         if (pdata)
             freq = pdata->oscillator_frequency;
         else
             freq = 20 * 1000 * 1000;  /* crystal freq HARDCODE */
            // return PTR_ERR(clk);
     } else {
         freq = clk_get_rate(clk);
     }
....


I'm really don't know if it's a dts config problem or a driver problem.




regards,


Lucas




On 26-02-2014 01:17, Alexander Shiyan wrote:
> Вторник, 25 февраля 2014, 22:35 +01:00 от Marc Kleine-Budde <mkl@pengutronix.de>:
>> On 02/22/2014 08:46 PM, Lucas Zampar Bernardi wrote:
>>> Hi again,
>>>
>>> I found the causes of problem, and now I need to know if I was setting
>>> wrong structure or there are driver problem.
>>> I've had this modification on mcp251x.c:
>>>
>>> static int mcp251x_can_probe(struct spi_device *spi)
>>> {
>>>      const struct of_device_id *of_id = of_match_device(mcp251x_of_match,
>>>                                 &spi->dev);
>>>      struct mcp251x_platform_data *pdata = dev_get_platdata(&spi->dev);
>>>      struct net_device *net;
>>>      struct mcp251x_priv *priv;
>>>      int freq, ret = -ENODEV;
>>>      struct clk *clk;
>>>
>>>
>>>      clk = devm_clk_get(&spi->dev, NULL);
>>>      dev_dbg(&spi->dev, "MCP2515: clk = devm_clk_get(&spi->dev, NULL)");
>>>      if (IS_ERR(clk)) {
>>>          if (pdata)
>>>          {
>>>              freq = pdata->oscillator_frequency;
>>>          }
>>>          else
>>>          {
>>>>>         freq = 20 * 1000 * 1000;    // FORCE FREQUENCY to 20Mhz
>>>              //return PTR_ERR(clk);
>>>          }
>>>      } else {
>>>          dev_dbg(&spi->dev, "MCP2515: freq = clk_get_rate(clk);");
>>>          freq = clk_get_rate(clk);
>>>      }
>>>
>>>
>>> Then the driver start to run.
>>>
>>> I think that the problem is about how to set a correct clock.
>>>
>>>
>>> I put on can node:
>>>                  can0: can@1 {
>>>                      compatible = "microchip,mcp2515";
>>>                      reg = <2>;
> can0 ... can@1 ... reg = <2>...
> Uhhh....
>
> Unfortunately I do not see the original message, please repeat it to me.
> Boot log is also required, as long as I do not understand what the problem
> you have there.
>
> ---


[-- Attachment #2: dmesg.log --]
[-- Type: text/x-log, Size: 57629 bytes --]

[    0.000000] Booting Linux on physical CPU 0x0
[    0.000000] Linux version 3.14.0-rc4+ (zampar@zampar-dell) (gcc version 4.7.3 (Buildroot 2014.02-rc2-00081-g5ec4f42) ) #3 Wed Feb 26 09:43:30 BRT 2014
[    0.000000] CPU: ARM926EJ-S [41069265] revision 5 (ARMv5TEJ), cr=00053177
[    0.000000] CPU: VIVT data cache, VIVT instruction cache
[    0.000000] Machine model: MyMachine
[    0.000000] Memory policy: Data cache writeback
[    0.000000] AT91: Detected soc type: at91sam9x5
[    0.000000] AT91: Detected soc subtype: at91sam9g25
[    0.000000] AT91: sram at 0x300000 of 0x8000 mapped at 0xfef70000
[    0.000000] On node 0 totalpages: 32768
[    0.000000] free_area_init_node: node 0, pgdat c04d81a4, node_mem_map c7efa000
[    0.000000]   Normal zone: 256 pages used for memmap
[    0.000000]   Normal zone: 0 pages reserved
[    0.000000]   Normal zone: 32768 pages, LIFO batch:7
[    0.000000] Clocks: CPU 400 MHz, master 133 MHz, main 12.000 MHz
[    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: 32512
[    0.000000] Kernel command line: console=ttyS0,115200 earlyprintk root=/dev/nfs rw nfsroot=10.185.5.4:/work/nfs ip=10.185.5.102
[    0.000000] PID hash table entries: 512 (order: -1, 2048 bytes)
[    0.000000] Dentry cache hash table entries: 16384 (order: 4, 65536 bytes)
[    0.000000] Inode-cache hash table entries: 8192 (order: 3, 32768 bytes)
[    0.000000] Memory: 124660K/131072K available (3548K kernel code, 170K rwdata, 1068K rodata, 138K init, 217K bss, 6412K reserved)
[    0.000000] Virtual kernel memory layout:
[    0.000000]     vector  : 0xffff0000 - 0xffff1000   (   4 kB)
[    0.000000]     fixmap  : 0xfff00000 - 0xfffe0000   ( 896 kB)
[    0.000000]     vmalloc : 0xc8800000 - 0xff000000   ( 872 MB)
[    0.000000]     lowmem  : 0xc0000000 - 0xc8000000   ( 128 MB)
[    0.000000]     modules : 0xbf000000 - 0xc0000000   (  16 MB)
[    0.000000]       .text : 0xc0008000 - 0xc048a430   (4618 kB)
[    0.000000]       .init : 0xc048b000 - 0xc04ad84c   ( 139 kB)
[    0.000000]       .data : 0xc04ae000 - 0xc04d8900   ( 171 kB)
[    0.000000]        .bss : 0xc04d8900 - 0xc050ef94   ( 218 kB)
[    0.000000] NR_IRQS:16 nr_irqs:16 16
[    0.000000] sched_clock: 32 bits at 128 Hz, resolution 7812500ns, wraps every 16777216000000000ns
[    0.000000] Console: colour dummy device 80x30
[    0.054687] Calibrating delay loop... 198.76 BogoMIPS (lpj=775168)
[    0.054687] pid_max: default: 32768 minimum: 301
[    0.062500] Mount-cache hash table entries: 512
[    0.070312] CPU: Testing write buffer coherency: ok
[    0.070312] Setting up static identity map for 0x2035c910 - 0x2035c968
[    0.070312] devtmpfs: initialized
[    0.070312] device: 'platform': device_add
[    0.070312] PM: Adding info for No Bus:platform
[    0.070312] bus: 'platform': registered
[    0.070312] bus: 'cpu': registered
[    0.070312] device: 'cpu': device_add
[    0.078125] PM: Adding info for No Bus:cpu
[    0.078125] bus: 'container': registered
[    0.078125] device: 'container': device_add
[    0.078125] PM: Adding info for No Bus:container
[    0.078125] bus: 'workqueue': registered
[    0.078125] device: 'workqueue': device_add
[    0.078125] PM: Adding info for No Bus:workqueue
[    0.078125] pinctrl core: initialized pinctrl subsystem
[    0.078125] NET: Registered protocol family 16
[    0.078125] DMA: preallocated 256 KiB pool for atomic coherent allocations
[    0.078125] device class 'bdi': registering
[    0.078125] device class 'gpio': registering
[    0.078125] device class 'tty': registering
[    0.078125] device class 'vtconsole': registering
[    0.078125] device: 'vtcon0': device_add
[    0.078125] PM: Adding info for No Bus:vtcon0
[    0.085937] bus: 'spi': registered
[    0.085937] device class 'spi_master': registering
[    0.085937] bus: 'i2c': registered
[    0.085937] bus: 'i2c': add driver dummy
[    0.085937] device: 'ahb.0': device_add
[    0.085937] bus: 'platform': add device ahb.0
[    0.085937] PM: Adding info for platform:ahb.0
[    0.085937] device: 'apb.1': device_add
[    0.085937] bus: 'platform': add device apb.1
[    0.085937] PM: Adding info for platform:apb.1
[    0.085937] device: 'fffff000.interrupt-controller': device_add
[    0.085937] bus: 'platform': add device fffff000.interrupt-controller
[    0.085937] PM: Adding info for platform:fffff000.interrupt-controller
[    0.085937] device: 'ffffe800.ramc': device_add
[    0.085937] bus: 'platform': add device ffffe800.ramc
[    0.085937] PM: Adding info for platform:ffffe800.ramc
[    0.085937] device: 'fffffc00.pmc': device_add
[    0.085937] bus: 'platform': add device fffffc00.pmc
[    0.085937] PM: Adding info for platform:fffffc00.pmc
[    0.085937] device: 'fffffe00.rstc': device_add
[    0.085937] bus: 'platform': add device fffffe00.rstc
[    0.085937] PM: Adding info for platform:fffffe00.rstc
[    0.085937] device: 'fffffe10.shdwc': device_add
[    0.085937] bus: 'platform': add device fffffe10.shdwc
[    0.085937] PM: Adding info for platform:fffffe10.shdwc
[    0.085937] device: 'fffffe30.timer': device_add
[    0.085937] bus: 'platform': add device fffffe30.timer
[    0.085937] PM: Adding info for platform:fffffe30.timer
[    0.093750] device: 'f8008000.timer': device_add
[    0.093750] bus: 'platform': add device f8008000.timer
[    0.093750] PM: Adding info for platform:f8008000.timer
[    0.093750] device: 'f800c000.timer': device_add
[    0.093750] bus: 'platform': add device f800c000.timer
[    0.093750] PM: Adding info for platform:f800c000.timer
[    0.093750] device: 'ffffec00.dma-controller': device_add
[    0.093750] bus: 'platform': add device ffffec00.dma-controller
[    0.093750] PM: Adding info for platform:ffffec00.dma-controller
[    0.093750] device: 'ffffee00.dma-controller': device_add
[    0.093750] bus: 'platform': add device ffffee00.dma-controller
[    0.093750] PM: Adding info for platform:ffffee00.dma-controller
[    0.093750] device: 'pinctrl.2': device_add
[    0.093750] bus: 'platform': add device pinctrl.2
[    0.093750] PM: Adding info for platform:pinctrl.2
[    0.093750] device: 'fffff400.gpio': device_add
[    0.093750] bus: 'platform': add device fffff400.gpio
[    0.093750] PM: Adding info for platform:fffff400.gpio
[    0.093750] device: 'fffff600.gpio': device_add
[    0.093750] bus: 'platform': add device fffff600.gpio
[    0.093750] PM: Adding info for platform:fffff600.gpio
[    0.093750] device: 'fffff800.gpio': device_add
[    0.093750] bus: 'platform': add device fffff800.gpio
[    0.093750] PM: Adding info for platform:fffff800.gpio
[    0.101562] device: 'fffffa00.gpio': device_add
[    0.101562] bus: 'platform': add device fffffa00.gpio
[    0.101562] PM: Adding info for platform:fffffa00.gpio
[    0.101562] device: 'f0008000.mmc': device_add
[    0.101562] bus: 'platform': add device f0008000.mmc
[    0.101562] PM: Adding info for platform:f0008000.mmc
[    0.101562] device: 'fffff200.serial': device_add
[    0.101562] bus: 'platform': add device fffff200.serial
[    0.101562] PM: Adding info for platform:fffff200.serial
[    0.101562] device: 'f8010000.i2c': device_add
[    0.101562] bus: 'platform': add device f8010000.i2c
[    0.101562] PM: Adding info for platform:f8010000.i2c
[    0.101562] device: 'f8014000.i2c': device_add
[    0.101562] bus: 'platform': add device f8014000.i2c
[    0.101562] PM: Adding info for platform:f8014000.i2c
[    0.101562] device: 'f804c000.adc': device_add
[    0.101562] bus: 'platform': add device f804c000.adc
[    0.101562] PM: Adding info for platform:f804c000.adc
[    0.101562] device: 'f0000000.spi': device_add
[    0.101562] bus: 'platform': add device f0000000.spi
[    0.101562] PM: Adding info for platform:f0000000.spi
[    0.101562] device: 'fffffeb0.rtc': device_add
[    0.101562] bus: 'platform': add device fffffeb0.rtc
[    0.101562] PM: Adding info for platform:fffffeb0.rtc
[    0.101562] device: 'f802c000.ethernet': device_add
[    0.101562] bus: 'platform': add device f802c000.ethernet
[    0.109375] PM: Adding info for platform:f802c000.ethernet
[    0.109375] device: '40000000.nand': device_add
[    0.109375] bus: 'platform': add device 40000000.nand
[    0.109375] PM: Adding info for platform:40000000.nand
[    0.109375] device: '600000.ohci': device_add
[    0.109375] bus: 'platform': add device 600000.ohci
[    0.109375] PM: Adding info for platform:600000.ohci
[    0.109375] device: '700000.ehci': device_add
[    0.109375] bus: 'platform': add device 700000.ehci
[    0.109375] PM: Adding info for platform:700000.ehci
[    0.109375] device: 'leds.3': device_add
[    0.109375] bus: 'platform': add device leds.3
[    0.109375] PM: Adding info for platform:leds.3
[    0.109375] device: 'gpio_keys.4': device_add
[    0.109375] bus: 'platform': add device gpio_keys.4
[    0.109375] PM: Adding info for platform:gpio_keys.4
[    0.109375] device: 'onewire.5': device_add
[    0.109375] bus: 'platform': add device onewire.5
[    0.109375] PM: Adding info for platform:onewire.5
[    0.109375] No ATAGs?
[    0.109375] AT91: Power Management
[    0.109375] Registering platform device 'cpuidle-at91.0'. Parent at platform
[    0.109375] device: 'cpuidle-at91.0': device_add
[    0.109375] bus: 'platform': add device cpuidle-at91.0
[    0.109375] PM: Adding info for platform:cpuidle-at91.0
[    0.109375] AT91: Starting after power-restored wakeup
[    0.109375] bus: 'platform': add driver gpio-at91
[    0.109375] bus: 'platform': driver_probe_device: matched device fffff400.gpio with driver gpio-at91
[    0.109375] bus: 'platform': really_probe: probing driver gpio-at91 with device fffff400.gpio
[    0.109375] gpio-at91 fffff400.gpio: no default pinctrl state
[    0.109375] device: 'gpiochip0': device_add
[    0.109375] PM: Adding info for No Bus:gpiochip0
[    0.109375] gpio-at91 fffff400.gpio: at address fefff400
[    0.117187] driver: 'fffff400.gpio': driver_bound: bound to device 'gpio-at91'
[    0.117187] bus: 'platform': really_probe: bound device fffff400.gpio to driver gpio-at91
[    0.117187] bus: 'platform': driver_probe_device: matched device fffff600.gpio with driver gpio-at91
[    0.117187] bus: 'platform': really_probe: probing driver gpio-at91 with device fffff600.gpio
[    0.117187] gpio-at91 fffff600.gpio: no default pinctrl state
[    0.117187] device: 'gpiochip32': device_add
[    0.117187] PM: Adding info for No Bus:gpiochip32
[    0.117187] gpio-at91 fffff600.gpio: at address fefff600
[    0.117187] driver: 'fffff600.gpio': driver_bound: bound to device 'gpio-at91'
[    0.117187] bus: 'platform': really_probe: bound device fffff600.gpio to driver gpio-at91
[    0.117187] bus: 'platform': driver_probe_device: matched device fffff800.gpio with driver gpio-at91
[    0.117187] bus: 'platform': really_probe: probing driver gpio-at91 with device fffff800.gpio
[    0.117187] gpio-at91 fffff800.gpio: no default pinctrl state
[    0.117187] device: 'gpiochip64': device_add
[    0.117187] PM: Adding info for No Bus:gpiochip64
[    0.117187] gpio-at91 fffff800.gpio: at address fefff800
[    0.117187] driver: 'fffff800.gpio': driver_bound: bound to device 'gpio-at91'
[    0.117187] bus: 'platform': really_probe: bound device fffff800.gpio to driver gpio-at91
[    0.117187] bus: 'platform': driver_probe_device: matched device fffffa00.gpio with driver gpio-at91
[    0.117187] bus: 'platform': really_probe: probing driver gpio-at91 with device fffffa00.gpio
[    0.117187] gpio-at91 fffffa00.gpio: no default pinctrl state
[    0.117187] device: 'gpiochip96': device_add
[    0.117187] PM: Adding info for No Bus:gpiochip96
[    0.117187] gpio-at91 fffffa00.gpio: at address fefffa00
[    0.117187] driver: 'fffffa00.gpio': driver_bound: bound to device 'gpio-at91'
[    0.117187] bus: 'platform': really_probe: bound device fffffa00.gpio to driver gpio-at91
[    0.117187] bus: 'platform': add driver pinctrl-at91
[    0.117187] bus: 'platform': driver_probe_device: matched device pinctrl.2 with driver pinctrl-at91
[    0.117187] bus: 'platform': really_probe: probing driver pinctrl-at91 with device pinctrl.2
[    0.117187] pinctrl-at91 pinctrl.2: no default pinctrl state
[    0.117187] pinctrl-at91 pinctrl.2: initialized AT91 pinctrl driver
[    0.117187] driver: 'pinctrl.2': driver_bound: bound to device 'pinctrl-at91'
[    0.117187] bus: 'platform': really_probe: bound device pinctrl.2 to driver pinctrl-at91
[    0.117187] device class 'dma': registering
[    0.117187] bus: 'platform': add driver atmel_tcb
[    0.125000] bus: 'platform': driver_probe_device: matched device f8008000.timer with driver atmel_tcb
[    0.125000] bus: 'platform': really_probe: probing driver atmel_tcb with device f8008000.timer
[    0.125000] atmel_tcb f8008000.timer: no default pinctrl state
[    0.125000] driver: 'f8008000.timer': driver_bound: bound to device 'atmel_tcb'
[    0.125000] bus: 'platform': really_probe: bound device f8008000.timer to driver atmel_tcb
[    0.125000] bus: 'platform': driver_probe_device: matched device f800c000.timer with driver atmel_tcb
[    0.125000] bus: 'platform': really_probe: probing driver atmel_tcb with device f800c000.timer
[    0.125000] atmel_tcb f800c000.timer: no default pinctrl state
[    0.125000] driver: 'f800c000.timer': driver_bound: bound to device 'atmel_tcb'
[    0.125000] bus: 'platform': really_probe: bound device f800c000.timer to driver atmel_tcb
[    0.125000] tcb_clksrc: tc0 at 16.166 MHz
[    0.125000] device: 'cpu0': device_add
[    0.125000] bus: 'cpu': add device cpu0
[    0.125000] PM: Adding info for cpu:cpu0
[    0.179687] device: 'writeback': device_add
[    0.179687] bus: 'workqueue': add device writeback
[    0.179687] PM: Adding info for workqueue:writeback
[    0.179687] device: 'default': device_add
[    0.179687] PM: Adding info for No Bus:default
[    0.179687] bio: create slab <bio-0> at 0
[    0.179687] device class 'block': registering
[    0.179687] bus: 'platform': add driver at_hdmac
[    0.179687] bus: 'platform': driver_probe_device: matched device ffffec00.dma-controller with driver at_hdmac
[    0.179687] bus: 'platform': really_probe: probing driver at_hdmac with device ffffec00.dma-controller
[    0.179687] at_hdmac ffffec00.dma-controller: no default pinctrl state
[    0.179687] at_hdmac ffffec00.dma-controller: Atmel AHB DMA Controller ( cpy slave ), 8 channels
[    0.179687] device: 'dma0chan0': device_add
[    0.179687] PM: Adding info for No Bus:dma0chan0
[    0.179687] device: 'dma0chan1': device_add
[    0.179687] PM: Adding info for No Bus:dma0chan1
[    0.179687] device: 'dma0chan2': device_add
[    0.179687] PM: Adding info for No Bus:dma0chan2
[    0.179687] device: 'dma0chan3': device_add
[    0.179687] PM: Adding info for No Bus:dma0chan3
[    0.179687] device: 'dma0chan4': device_add
[    0.179687] PM: Adding info for No Bus:dma0chan4
[    0.187500] device: 'dma0chan5': device_add
[    0.187500] PM: Adding info for No Bus:dma0chan5
[    0.187500] device: 'dma0chan6': device_add
[    0.187500] PM: Adding info for No Bus:dma0chan6
[    0.187500] device: 'dma0chan7': device_add
[    0.187500] PM: Adding info for No Bus:dma0chan7
[    0.187500] driver: 'ffffec00.dma-controller': driver_bound: bound to device 'at_hdmac'
[    0.187500] bus: 'platform': really_probe: bound device ffffec00.dma-controller to driver at_hdmac
[    0.187500] bus: 'platform': driver_probe_device: matched device ffffee00.dma-controller with driver at_hdmac
[    0.187500] bus: 'platform': really_probe: probing driver at_hdmac with device ffffee00.dma-controller
[    0.187500] at_hdmac ffffee00.dma-controller: no default pinctrl state
[    0.187500] at_hdmac ffffee00.dma-controller: Atmel AHB DMA Controller ( cpy slave ), 8 channels
[    0.187500] device: 'dma1chan0': device_add
[    0.187500] PM: Adding info for No Bus:dma1chan0
[    0.187500] device: 'dma1chan1': device_add
[    0.187500] PM: Adding info for No Bus:dma1chan1
[    0.187500] device: 'dma1chan2': device_add
[    0.187500] PM: Adding info for No Bus:dma1chan2
[    0.187500] device: 'dma1chan3': device_add
[    0.187500] PM: Adding info for No Bus:dma1chan3
[    0.187500] device: 'dma1chan4': device_add
[    0.187500] PM: Adding info for No Bus:dma1chan4
[    0.187500] device: 'dma1chan5': device_add
[    0.187500] PM: Adding info for No Bus:dma1chan5
[    0.187500] device: 'dma1chan6': device_add
[    0.187500] PM: Adding info for No Bus:dma1chan6
[    0.195312] device: 'dma1chan7': device_add
[    0.195312] PM: Adding info for No Bus:dma1chan7
[    0.195312] driver: 'ffffee00.dma-controller': driver_bound: bound to device 'at_hdmac'
[    0.195312] bus: 'platform': really_probe: bound device ffffee00.dma-controller to driver at_hdmac
[    0.195312] device class 'misc': registering
[    0.195312] device class 'scsi_host': registering
[    0.195312] bus: 'scsi': registered
[    0.195312] device class 'scsi_device': registering
[    0.195312] SCSI subsystem initialized
[    0.195312] device class 'mdio_bus': registering
[    0.195312] bus: 'mdio_bus': registered
[    0.195312] bus: 'mdio_bus': add driver Generic PHY
[    0.195312] bus: 'mdio_bus': add driver Generic 10G PHY
[    0.203125] bus: 'usb': registered
[    0.203125] bus: 'usb': add driver usbfs
[    0.203125] usbcore: registered new interface driver usbfs
[    0.203125] bus: 'usb': add driver hub
[    0.203125] usbcore: registered new interface driver hub
[    0.203125] bus: 'usb': add driver usb
[    0.203125] usbcore: registered new device driver usb
[    0.203125] device class 'input': registering
[    0.203125] device class 'rtc': registering
[    0.203125] bus: 'platform': add driver at91_i2c
[    0.203125] bus: 'platform': driver_probe_device: matched device f8010000.i2c with driver at91_i2c
[    0.203125] bus: 'platform': really_probe: probing driver at91_i2c with device f8010000.i2c
[    0.203125] at91_i2c f8010000.i2c: no sleep pinctrl state
[    0.203125] at91_i2c f8010000.i2c: no idle pinctrl state
[    0.203125] at91_i2c f8010000.i2c: using dma0chan0 (tx) and dma0chan1 (rx) for DMA transfers
[    0.203125] device: 'i2c-0': device_add
[    0.203125] bus: 'i2c': add device i2c-0
[    0.203125] PM: Adding info for i2c:i2c-0
[    0.203125] device: '0-0050': device_add
[    0.203125] bus: 'i2c': add device 0-0050
[    0.203125] PM: Adding info for i2c:0-0050
[    0.203125] at91_i2c f8010000.i2c: AT91 i2c bus driver.
[    0.203125] driver: 'f8010000.i2c': driver_bound: bound to device 'at91_i2c'
[    0.203125] bus: 'platform': really_probe: bound device f8010000.i2c to driver at91_i2c
[    0.203125] bus: 'platform': driver_probe_device: matched device f8014000.i2c with driver at91_i2c
[    0.203125] bus: 'platform': really_probe: probing driver at91_i2c with device f8014000.i2c
[    0.203125] at91_i2c f8014000.i2c: no sleep pinctrl state
[    0.203125] at91_i2c f8014000.i2c: no idle pinctrl state
[    0.210937] at91_i2c f8014000.i2c: using dma1chan0 (tx) and dma1chan1 (rx) for DMA transfers
[    0.210937] device: 'i2c-1': device_add
[    0.210937] bus: 'i2c': add device i2c-1
[    0.210937] PM: Adding info for i2c:i2c-1
[    0.210937] at91_i2c f8014000.i2c: AT91 i2c bus driver.
[    0.210937] driver: 'f8014000.i2c': driver_bound: bound to device 'at91_i2c'
[    0.210937] bus: 'platform': really_probe: bound device f8014000.i2c to driver at91_i2c
[    0.210937] device class 'watchdog': registering
[    0.210937] bus: 'mmc': registered
[    0.210937] device class 'mmc_host': registering
[    0.210937] bus: 'sdio': registered
[    0.210937] device class 'leds': registering
[    0.210937] device class 'net': registering
[    0.210937] device: 'lo': device_add
[    0.210937] PM: Adding info for No Bus:lo
[    0.218750] Switched to clocksource tcb_clksrc
[    0.218750] device class 'mem': registering
[    0.218750] device: 'mem': device_add
[    0.218750] PM: Adding info for No Bus:mem
[    0.218750] device: 'kmem': device_add
[    0.218750] PM: Adding info for No Bus:kmem
[    0.218750] device: 'null': device_add
[    0.218750] PM: Adding info for No Bus:null
[    0.218750] device: 'zero': device_add
[    0.218750] PM: Adding info for No Bus:zero
[    0.218750] device: 'full': device_add
[    0.218750] PM: Adding info for No Bus:full
[    0.218750] device: 'random': device_add
[    0.218750] PM: Adding info for No Bus:random
[    0.218750] device: 'urandom': device_add
[    0.218750] PM: Adding info for No Bus:urandom
[    0.218750] device: 'kmsg': device_add
[    0.218750] PM: Adding info for No Bus:kmsg
[    0.226562] device: 'tty': device_add
[    0.226562] PM: Adding info for No Bus:tty
[    0.226562] device: 'console': device_add
[    0.226562] PM: Adding info for No Bus:console
[    0.226562] device: 'tty0': device_add
[    0.226562] PM: Adding info for No Bus:tty0
[    0.226562] device class 'vc': registering
[    0.226562] device: 'vcs': device_add
[    0.226562] PM: Adding info for No Bus:vcs
[    0.226562] device: 'vcsa': device_add
[    0.226562] PM: Adding info for No Bus:vcsa
[    0.226562] device: 'vcs1': device_add
[    0.226562] PM: Adding info for No Bus:vcs1
[    0.226562] device: 'vcsa1': device_add
[    0.226562] PM: Adding info for No Bus:vcsa1
[    0.226562] device: 'tty1': device_add
[    0.226562] PM: Adding info for No Bus:tty1
[    0.226562] device: 'tty2': device_add
[    0.234375] PM: Adding info for No Bus:tty2
[    0.234375] device: 'tty3': device_add
[    0.234375] PM: Adding info for No Bus:tty3
[    0.234375] device: 'tty4': device_add
[    0.234375] PM: Adding info for No Bus:tty4
[    0.234375] device: 'tty5': device_add
[    0.234375] PM: Adding info for No Bus:tty5
[    0.234375] device: 'tty6': device_add
[    0.234375] PM: Adding info for No Bus:tty6
[    0.234375] device: 'tty7': device_add
[    0.234375] PM: Adding info for No Bus:tty7
[    0.234375] device: 'tty8': device_add
[    0.234375] PM: Adding info for No Bus:tty8
[    0.234375] device: 'tty9': device_add
[    0.234375] PM: Adding info for No Bus:tty9
[    0.234375] device: 'tty10': device_add
[    0.234375] PM: Adding info for No Bus:tty10
[    0.234375] device: 'tty11': device_add
[    0.242187] PM: Adding info for No Bus:tty11
[    0.242187] device: 'tty12': device_add
[    0.242187] PM: Adding info for No Bus:tty12
[    0.242187] device: 'tty13': device_add
[    0.242187] PM: Adding info for No Bus:tty13
[    0.242187] device: 'tty14': device_add
[    0.242187] PM: Adding info for No Bus:tty14
[    0.242187] device: 'tty15': device_add
[    0.242187] PM: Adding info for No Bus:tty15
[    0.242187] device: 'tty16': device_add
[    0.242187] PM: Adding info for No Bus:tty16
[    0.242187] device: 'tty17': device_add
[    0.242187] PM: Adding info for No Bus:tty17
[    0.242187] device: 'tty18': device_add
[    0.242187] PM: Adding info for No Bus:tty18
[    0.242187] device: 'tty19': device_add
[    0.242187] PM: Adding info for No Bus:tty19
[    0.242187] device: 'tty20': device_add
[    0.250000] PM: Adding info for No Bus:tty20
[    0.250000] device: 'tty21': device_add
[    0.250000] PM: Adding info for No Bus:tty21
[    0.250000] device: 'tty22': device_add
[    0.250000] PM: Adding info for No Bus:tty22
[    0.250000] device: 'tty23': device_add
[    0.250000] PM: Adding info for No Bus:tty23
[    0.250000] device: 'tty24': device_add
[    0.250000] PM: Adding info for No Bus:tty24
[    0.250000] device: 'tty25': device_add
[    0.250000] PM: Adding info for No Bus:tty25
[    0.250000] device: 'tty26': device_add
[    0.250000] PM: Adding info for No Bus:tty26
[    0.250000] device: 'tty27': device_add
[    0.250000] PM: Adding info for No Bus:tty27
[    0.250000] device: 'tty28': device_add
[    0.250000] PM: Adding info for No Bus:tty28
[    0.250000] device: 'tty29': device_add
[    0.257812] PM: Adding info for No Bus:tty29
[    0.257812] device: 'tty30': device_add
[    0.257812] PM: Adding info for No Bus:tty30
[    0.257812] device: 'tty31': device_add
[    0.257812] PM: Adding info for No Bus:tty31
[    0.257812] device: 'tty32': device_add
[    0.257812] PM: Adding info for No Bus:tty32
[    0.257812] device: 'tty33': device_add
[    0.257812] PM: Adding info for No Bus:tty33
[    0.257812] device: 'tty34': device_add
[    0.257812] PM: Adding info for No Bus:tty34
[    0.257812] device: 'tty35': device_add
[    0.257812] PM: Adding info for No Bus:tty35
[    0.257812] device: 'tty36': device_add
[    0.257812] PM: Adding info for No Bus:tty36
[    0.257812] device: 'tty37': device_add
[    0.257812] PM: Adding info for No Bus:tty37
[    0.257812] device: 'tty38': device_add
[    0.265625] PM: Adding info for No Bus:tty38
[    0.265625] device: 'tty39': device_add
[    0.265625] PM: Adding info for No Bus:tty39
[    0.265625] device: 'tty40': device_add
[    0.265625] PM: Adding info for No Bus:tty40
[    0.265625] device: 'tty41': device_add
[    0.265625] PM: Adding info for No Bus:tty41
[    0.265625] device: 'tty42': device_add
[    0.265625] PM: Adding info for No Bus:tty42
[    0.265625] device: 'tty43': device_add
[    0.265625] PM: Adding info for No Bus:tty43
[    0.265625] device: 'tty44': device_add
[    0.265625] PM: Adding info for No Bus:tty44
[    0.265625] device: 'tty45': device_add
[    0.265625] PM: Adding info for No Bus:tty45
[    0.265625] device: 'tty46': device_add
[    0.265625] PM: Adding info for No Bus:tty46
[    0.265625] device: 'tty47': device_add
[    0.273437] PM: Adding info for No Bus:tty47
[    0.273437] device: 'tty48': device_add
[    0.273437] PM: Adding info for No Bus:tty48
[    0.273437] device: 'tty49': device_add
[    0.273437] PM: Adding info for No Bus:tty49
[    0.273437] device: 'tty50': device_add
[    0.273437] PM: Adding info for No Bus:tty50
[    0.273437] device: 'tty51': device_add
[    0.273437] PM: Adding info for No Bus:tty51
[    0.273437] device: 'tty52': device_add
[    0.273437] PM: Adding info for No Bus:tty52
[    0.273437] device: 'tty53': device_add
[    0.273437] PM: Adding info for No Bus:tty53
[    0.273437] device: 'tty54': device_add
[    0.273437] PM: Adding info for No Bus:tty54
[    0.273437] device: 'tty55': device_add
[    0.273437] PM: Adding info for No Bus:tty55
[    0.273437] device: 'tty56': device_add
[    0.281250] PM: Adding info for No Bus:tty56
[    0.281250] device: 'tty57': device_add
[    0.281250] PM: Adding info for No Bus:tty57
[    0.281250] device: 'tty58': device_add
[    0.281250] PM: Adding info for No Bus:tty58
[    0.281250] device: 'tty59': device_add
[    0.281250] PM: Adding info for No Bus:tty59
[    0.281250] device: 'tty60': device_add
[    0.281250] PM: Adding info for No Bus:tty60
[    0.281250] device: 'tty61': device_add
[    0.281250] PM: Adding info for No Bus:tty61
[    0.281250] device: 'tty62': device_add
[    0.281250] PM: Adding info for No Bus:tty62
[    0.281250] device: 'tty63': device_add
[    0.281250] PM: Adding info for No Bus:tty63
[    0.281250] device class 'firmware': registering
[    0.289062] NET: Registered protocol family 2
[    0.289062] TCP established hash table entries: 1024 (order: 0, 4096 bytes)
[    0.289062] TCP bind hash table entries: 1024 (order: 0, 4096 bytes)
[    0.289062] TCP: Hash tables configured (established 1024 bind 1024)
[    0.289062] TCP: reno registered
[    0.289062] UDP hash table entries: 256 (order: 0, 4096 bytes)
[    0.289062] UDP-Lite hash table entries: 256 (order: 0, 4096 bytes)
[    0.289062] NET: Registered protocol family 1
[    0.289062] RPC: Registered named UNIX socket transport module.
[    0.289062] RPC: Registered udp transport module.
[    0.289062] RPC: Registered tcp transport module.
[    0.289062] RPC: Registered tcp NFSv4.1 backchannel transport module.
[    0.289062] bus: 'clocksource': registered
[    0.289062] device: 'clocksource': device_add
[    0.289062] PM: Adding info for No Bus:clocksource
[    0.289062] device: 'clocksource0': device_add
[    0.289062] bus: 'clocksource': add device clocksource0
[    0.289062] PM: Adding info for clocksource:clocksource0
[    0.289062] bus: 'platform': add driver alarmtimer
[    0.289062] Registering platform device 'alarmtimer'. Parent at platform
[    0.289062] device: 'alarmtimer': device_add
[    0.289062] bus: 'platform': add device alarmtimer
[    0.289062] PM: Adding info for platform:alarmtimer
[    0.289062] bus: 'platform': driver_probe_device: matched device alarmtimer with driver alarmtimer
[    0.289062] bus: 'platform': really_probe: probing driver alarmtimer with device alarmtimer
[    0.289062] alarmtimer alarmtimer: no default pinctrl state
[    0.289062] driver: 'alarmtimer': driver_bound: bound to device 'alarmtimer'
[    0.289062] bus: 'platform': really_probe: bound device alarmtimer to driver alarmtimer
[    0.296875] bus: 'clockevents': registered
[    0.296875] device: 'clockevents': device_add
[    0.296875] PM: Adding info for No Bus:clockevents
[    0.296875] device: 'clockevent0': device_add
[    0.296875] bus: 'clockevents': add device clockevent0
[    0.296875] PM: Adding info for clockevents:clockevent0
[    0.296875] futex hash table entries: 256 (order: -1, 2048 bytes)
[    0.296875] NTFS driver 2.1.30 [Flags: R/W].
[    0.296875] msgmni has been set to 243
[    0.296875] io scheduler noop registered (default)
[    0.296875] device: 'ptyp0': device_add
[    0.296875] PM: Adding info for No Bus:ptyp0
[    0.296875] device: 'ptyp1': device_add
[    0.296875] PM: Adding info for No Bus:ptyp1
[    0.304687] device: 'ptyp2': device_add
[    0.304687] PM: Adding info for No Bus:ptyp2
[    0.304687] device: 'ptyp3': device_add
[    0.304687] PM: Adding info for No Bus:ptyp3
[    0.304687] device: 'ttyp0': device_add
[    0.304687] PM: Adding info for No Bus:ttyp0
[    0.304687] device: 'ttyp1': device_add
[    0.304687] PM: Adding info for No Bus:ttyp1
[    0.304687] device: 'ttyp2': device_add
[    0.304687] PM: Adding info for No Bus:ttyp2
[    0.304687] device: 'ttyp3': device_add
[    0.304687] PM: Adding info for No Bus:ttyp3
[    0.304687] device: 'ptmx': device_add
[    0.304687] PM: Adding info for No Bus:ptmx
[    0.304687] bus: 'platform': add driver atmel_usart
[    0.304687] bus: 'platform': driver_probe_device: matched device fffff200.serial with driver atmel_usart
[    0.304687] bus: 'platform': really_probe: probing driver atmel_usart with device fffff200.serial
[    0.304687] atmel_usart fffff200.serial: no sleep pinctrl state
[    0.304687] atmel_usart fffff200.serial: no idle pinctrl state
[    0.304687] fffff200.serial: ttyS0 at MMIO 0xfffff200 (irq = 16, base_baud = 8333333) is a ATMEL_SERIAL
[    0.648437] console [ttyS0] enabled
[    0.656250] device: 'ttyS0': device_add
[    0.656250] PM: Adding info for No Bus:ttyS0
[    0.656250] driver: 'fffff200.serial': driver_bound: bound to device 'atmel_usart'
[    0.656250] bus: 'platform': really_probe: bound device fffff200.serial to driver atmel_usart
[    0.656250] bus: 'platform': add driver atmel-trng
[    0.656250] device: '1:0': device_add
[    0.656250] PM: Adding info for No Bus:1:0
[    0.656250] device: 'ram0': device_add
[    0.656250] PM: Adding info for No Bus:ram0
[    0.656250] device: '1:1': device_add
[    0.656250] PM: Adding info for No Bus:1:1
[    0.656250] device: 'ram1': device_add
[    0.656250] PM: Adding info for No Bus:ram1
[    0.664062] device: '1:2': device_add
[    0.664062] PM: Adding info for No Bus:1:2
[    0.664062] device: 'ram2': device_add
[    0.664062] PM: Adding info for No Bus:ram2
[    0.664062] device: '1:3': device_add
[    0.664062] PM: Adding info for No Bus:1:3
[    0.664062] device: 'ram3': device_add
[    0.664062] PM: Adding info for No Bus:ram3
[    0.664062] brd: module loaded
[    0.671875] device: 'loop-control': device_add
[    0.671875] PM: Adding info for No Bus:loop-control
[    0.671875] device: '7:0': device_add
[    0.671875] PM: Adding info for No Bus:7:0
[    0.671875] device: 'loop0': device_add
[    0.671875] PM: Adding info for No Bus:loop0
[    0.671875] device: '7:1': device_add
[    0.671875] PM: Adding info for No Bus:7:1
[    0.671875] device: 'loop1': device_add
[    0.671875] PM: Adding info for No Bus:loop1
[    0.671875] device: '7:2': device_add
[    0.671875] PM: Adding info for No Bus:7:2
[    0.671875] device: 'loop2': device_add
[    0.679687] PM: Adding info for No Bus:loop2
[    0.679687] device: '7:3': device_add
[    0.679687] PM: Adding info for No Bus:7:3
[    0.679687] device: 'loop3': device_add
[    0.679687] PM: Adding info for No Bus:loop3
[    0.679687] device: '7:4': device_add
[    0.679687] PM: Adding info for No Bus:7:4
[    0.679687] device: 'loop4': device_add
[    0.679687] PM: Adding info for No Bus:loop4
[    0.679687] device: '7:5': device_add
[    0.679687] PM: Adding info for No Bus:7:5
[    0.679687] device: 'loop5': device_add
[    0.679687] PM: Adding info for No Bus:loop5
[    0.687500] device: '7:6': device_add
[    0.687500] PM: Adding info for No Bus:7:6
[    0.687500] device: 'loop6': device_add
[    0.687500] PM: Adding info for No Bus:loop6
[    0.687500] device: '7:7': device_add
[    0.687500] PM: Adding info for No Bus:7:7
[    0.687500] device: 'loop7': device_add
[    0.687500] PM: Adding info for No Bus:loop7
[    0.687500] loop: module loaded
[    0.695312] bus: 'platform': add driver atmel_pwm
[    0.695312] bus: 'platform': remove driver atmel_pwm
[    0.695312] driver: 'atmel_pwm': driver_release
[    0.695312] bus: 'i2c': add driver at24
[    0.695312] bus: 'i2c': driver_probe_device: matched device 0-0050 with driver at24
[    0.695312] bus: 'i2c': really_probe: probing driver at24 with device 0-0050
[    0.695312] at24 0-0050: no default pinctrl state
[    0.695312] at24 0-0050: 65536 byte 24c512 EEPROM, writable, 128 bytes/write
[    0.703125] driver: '0-0050': driver_bound: bound to device 'at24'
[    0.703125] bus: 'i2c': really_probe: bound device 0-0050 to driver at24
[    0.703125] device class 'scsi_disk': registering
[    0.703125] bus: 'scsi': add driver sd
[    0.703125] device class 'mtd': registering
[    0.703125] device: 'mtd-unmap': device_add
[    0.703125] PM: Adding info for No Bus:mtd-unmap
[    0.703125] device: 'mtd-romap': device_add
[    0.703125] PM: Adding info for No Bus:mtd-romap
[    0.703125] device: 'mtd-rwmap': device_add
[    0.703125] PM: Adding info for No Bus:mtd-rwmap
[    0.703125] bus: 'spi': add driver mtd_dataflash
[    0.703125] bus: 'platform': add driver atmel_nand
[    0.703125] bus: 'platform': driver_probe_device: matched device 40000000.nand with driver atmel_nand
[    0.703125] bus: 'platform': really_probe: probing driver atmel_nand with device 40000000.nand
[    0.703125] atmel_nand 40000000.nand: no sleep pinctrl state
[    0.703125] atmel_nand 40000000.nand: no idle pinctrl state
[    0.703125] bus: 'platform': add driver atmel_nand_nfc
[    0.718750] atmel_nand 40000000.nand: Use On Flash BBT
[    0.718750] atmel_nand 40000000.nand: No DMA support for NAND access.
[    0.726562] nand: device found, Manufacturer ID: 0xec, Chip ID: 0xda
[    0.734375] nand: Samsung NAND 256MiB 3,3V 8-bit
[    0.742187] nand: 256MiB, SLC, page size: 2048, OOB size: 64
[    0.742187] atmel_nand 40000000.nand: can't detect min. ECC, assume 2 bits in 512 bytes
[    0.750000] atmel_nand 40000000.nand: Initialize PMECC params, cap: 2, sector: 512
[    0.757812] Bad block table found at page 131008, version 0x01
[    0.765625] Bad block table found at page 130944, version 0x01
[    0.773437] nand_read_bbt: bad block at 0x0000057a0000
[    0.781250] nand_read_bbt: bad block at 0x000006e20000
[    0.781250] nand_read_bbt: bad block at 0x000008800000
[    0.789062] nand_read_bbt: bad block at 0x000008fa0000
[    0.789062] nand_read_bbt: bad block at 0x00000d460000
[    0.796875] nand_read_bbt: bad block at 0x00000e7c0000
[    0.804687] 5 ofpart partitions found on MTD device atmel_nand
[    0.812500] Creating 5 MTD partitions on "atmel_nand":
[    0.812500] 0x000000000000-0x000000040000 : "at91bootstrap"
[    0.820312] device: 'mtd0': device_add
[    0.820312] PM: Adding info for No Bus:mtd0
[    0.820312] device: 'mtd0ro': device_add
[    0.820312] PM: Adding info for No Bus:mtd0ro
[    0.820312] device: '31:0': device_add
[    0.820312] PM: Adding info for No Bus:31:0
[    0.820312] device: 'mtdblock0': device_add
[    0.820312] PM: Adding info for No Bus:mtdblock0
[    0.828125] 0x000000040000-0x0000000c0000 : "u-boot"
[    0.828125] device: 'mtd1': device_add
[    0.828125] PM: Adding info for No Bus:mtd1
[    0.828125] device: 'mtd1ro': device_add
[    0.828125] PM: Adding info for No Bus:mtd1ro
[    0.828125] device: '31:1': device_add
[    0.828125] PM: Adding info for No Bus:31:1
[    0.835937] device: 'mtdblock1': device_add
[    0.835937] PM: Adding info for No Bus:mtdblock1
[    0.835937] 0x0000000c0000-0x000000200000 : "U-Boot Env"
[    0.835937] device: 'mtd2': device_add
[    0.835937] PM: Adding info for No Bus:mtd2
[    0.843750] device: 'mtd2ro': device_add
[    0.843750] PM: Adding info for No Bus:mtd2ro
[    0.843750] device: '31:2': device_add
[    0.843750] PM: Adding info for No Bus:31:2
[    0.843750] device: 'mtdblock2': device_add
[    0.843750] PM: Adding info for No Bus:mtdblock2
[    0.843750] 0x000000200000-0x000000800000 : "kernel"
[    0.851562] device: 'mtd3': device_add
[    0.851562] PM: Adding info for No Bus:mtd3
[    0.851562] device: 'mtd3ro': device_add
[    0.851562] PM: Adding info for No Bus:mtd3ro
[    0.851562] device: '31:3': device_add
[    0.851562] PM: Adding info for No Bus:31:3
[    0.851562] device: 'mtdblock3': device_add
[    0.851562] PM: Adding info for No Bus:mtdblock3
[    0.851562] 0x000000800000-0x000020000000 : "rootfs"
[    0.859375] mtd: partition "rootfs" extends beyond the end of device "atmel_nand" -- size truncated to 0xf800000
[    0.867187] device: 'mtd4': device_add
[    0.867187] PM: Adding info for No Bus:mtd4
[    0.867187] device: 'mtd4ro': device_add
[    0.867187] PM: Adding info for No Bus:mtd4ro
[    0.875000] device: '31:4': device_add
[    0.875000] PM: Adding info for No Bus:31:4
[    0.875000] device: 'mtdblock4': device_add
[    0.875000] PM: Adding info for No Bus:mtdblock4
[    0.875000] driver: '40000000.nand': driver_bound: bound to device 'atmel_nand'
[    0.875000] bus: 'platform': really_probe: bound device 40000000.nand to driver atmel_nand
[    0.875000] device class 'spidev': registering
[    0.875000] bus: 'spi': add driver spidev
[    0.875000] bus: 'platform': add driver atmel_spi
[    0.875000] bus: 'platform': driver_probe_device: matched device f0000000.spi with driver atmel_spi
[    0.875000] bus: 'platform': really_probe: probing driver atmel_spi with device f0000000.spi
[    0.875000] atmel_spi f0000000.spi: no sleep pinctrl state
[    0.875000] atmel_spi f0000000.spi: no idle pinctrl state
[    0.875000] atmel_spi f0000000.spi: version: 0x212
[    0.882812] atmel_spi f0000000.spi: Using dma0chan2 (tx) and dma0chan3 (rx) for DMA transfers
[    0.890625] atmel_spi f0000000.spi: Atmel SPI Controller at 0xf0000000 (irq 26)
[    0.898437] device: 'spi32766': device_add
[    0.898437] PM: Adding info for No Bus:spi32766
[    0.898437] atmel_spi f0000000.spi: registered master spi32766 (dynamic)
[    0.898437] spi spi32766.0: setup: bpw 8 mode 0x0 -> csr0 00000002
[    0.898437] spi spi32766.0: setup mode 0, 8 bits/w, 10000000 Hz max --> 0
[    0.898437] device: 'spi32766.0': device_add
[    0.898437] bus: 'spi': add device spi32766.0
[    0.898437] PM: Adding info for spi:spi32766.0
[    0.898437] bus: 'spi': driver_probe_device: matched device spi32766.0 with driver mtd_dataflash
[    0.898437] bus: 'spi': really_probe: probing driver mtd_dataflash with device spi32766.0
[    0.898437] mtd_dataflash spi32766.0: no default pinctrl state
[    0.898437] mtd_dataflash spi32766.0: new message c783fc58 submitted for spi32766.0
[    0.898437] mtd_dataflash spi32766.0: activate 14, mr 000e0031
[    0.898437] atmel_spi f0000000.spi:   start pio xfer c783fc88: len 1 tx c78697a0 rx   (null) bitpw 8
[    0.898437] atmel_spi f0000000.spi:   start pio xfer c783fcac: len 3 tx   (null) rx c78697a1 bitpw 8
[    0.898437] atmel_spi f0000000.spi:   start pio xfer c783fcac: len 3 tx   (null) rx c78697a1 bitpw 8
[    0.898437] atmel_spi f0000000.spi:   start pio xfer c783fcac: len 3 tx   (null) rx c78697a1 bitpw 8
[    0.898437] mtd_dataflash spi32766.0:   xfer c783fc88: len 1 tx c78697a0/00000000 rx   (null)/00000000
[    0.898437] mtd_dataflash spi32766.0:   xfer c783fcac: len 3 tx   (null)/00000000 rx c78697a1/00000000
[    0.898437] mtd_dataflash spi32766.0: DEactivate 14, mr 000f0031
[    0.898437] mtd_dataflash spi32766.0: new message c783fc58 submitted for spi32766.0
[    0.898437] mtd_dataflash spi32766.0: activate 14, mr 000e0031
[    0.898437] atmel_spi f0000000.spi:   start pio xfer c783fc88: len 1 tx c78697a0 rx   (null) bitpw 8
[    0.898437] atmel_spi f0000000.spi:   start pio xfer c783fcac: len 1 tx   (null) rx c78697a1 bitpw 8
[    0.898437] mtd_dataflash spi32766.0:   xfer c783fc88: len 1 tx c78697a0/00000000 rx   (null)/00000000
[    0.898437] mtd_dataflash spi32766.0:   xfer c783fcac: len 1 tx   (null)/00000000 rx c78697a1/00000000
[    0.898437] mtd_dataflash spi32766.0: DEactivate 14, mr 000f0031
[    0.898437] mtd_dataflash spi32766.0: AT45DB321x (4224 KBytes) pagesize 528 bytes, OTP
[    0.906250] device: 'mtd5': device_add
[    0.906250] PM: Adding info for No Bus:mtd5
[    0.914062] device: 'mtd5ro': device_add
[    0.914062] PM: Adding info for No Bus:mtd5ro
[    0.914062] device: '31:5': device_add
[    0.914062] PM: Adding info for No Bus:31:5
[    0.914062] device: 'mtdblock5': device_add
[    0.914062] PM: Adding info for No Bus:mtdblock5
[    0.914062] driver: 'spi32766.0': driver_bound: bound to device 'mtd_dataflash'
[    0.914062] bus: 'spi': really_probe: bound device spi32766.0 to driver mtd_dataflash
[    0.914062] atmel_spi f0000000.spi: registered child spi32766.0
[    0.914062] spi spi32766.2: setup: bpw 8 mode 0x0 -> csr2 00000002
[    0.914062] spi spi32766.2: setup mode 0, 8 bits/w, 10000000 Hz max --> 0
[    0.914062] device: 'spi32766.2': device_add
[    0.914062] bus: 'spi': add device spi32766.2
[    0.914062] PM: Adding info for spi:spi32766.2
[    0.914062] atmel_spi f0000000.spi: registered child spi32766.2
[    0.914062] driver: 'f0000000.spi': driver_bound: bound to device 'atmel_spi'
[    0.914062] bus: 'platform': really_probe: bound device f0000000.spi to driver atmel_spi
[    0.914062] bus: 'mdio_bus': add driver Davicom DM9161E
[    0.914062] bus: 'mdio_bus': add driver Davicom DM9161A
[    0.921875] bus: 'mdio_bus': add driver Davicom DM9131
[    0.921875] bus: 'mdio_bus': add driver SMSC LAN83C185
[    0.921875] bus: 'mdio_bus': add driver SMSC LAN8187
[    0.921875] bus: 'mdio_bus': add driver SMSC LAN8700
[    0.921875] bus: 'mdio_bus': add driver SMSC LAN911x Internal PHY
[    0.921875] bus: 'mdio_bus': add driver SMSC LAN8710/LAN8720
[    0.921875] bus: 'mdio_bus': add driver Micrel KS8737
[    0.921875] bus: 'mdio_bus': add driver Micrel KSZ8021 or KSZ8031
[    0.921875] bus: 'mdio_bus': add driver Micrel KSZ8031
[    0.921875] bus: 'mdio_bus': add driver Micrel KSZ8041
[    0.921875] bus: 'mdio_bus': add driver Micrel KSZ8041RNLI
[    0.921875] bus: 'mdio_bus': add driver Micrel KSZ8051
[    0.921875] bus: 'mdio_bus': add driver Micrel KSZ8001 or KS8721
[    0.921875] bus: 'mdio_bus': add driver Micrel KSZ8081 or KSZ8091
[    0.929687] bus: 'mdio_bus': add driver Micrel KSZ8061
[    0.929687] bus: 'mdio_bus': add driver Micrel KSZ9021 Gigabit PHY
[    0.929687] bus: 'mdio_bus': add driver Micrel KSZ9031 Gigabit PHY
[    0.929687] bus: 'mdio_bus': add driver Micrel KSZ8873MLL Switch
[    0.929687] bus: 'mdio_bus': add driver Micrel KSZ886X Switch
[    0.929687] vcan: Virtual CAN interface driver
[    0.937500] CAN device driver interface
[    0.937500] bus: 'spi': add driver mcp251x
[    0.937500] bus: 'spi': driver_probe_device: matched device spi32766.2 with driver mcp251x
[    0.937500] bus: 'spi': really_probe: probing driver mcp251x with device spi32766.2
[    0.937500] mcp251x spi32766.2: no sleep pinctrl state
[    0.937500] mcp251x spi32766.2: no idle pinctrl state
[    0.937500] mcp251x: probe of spi32766.2 failed with error -2
[    0.945312] bus: 'platform': add driver macb
[    0.945312] bus: 'platform': driver_probe_device: matched device f802c000.ethernet with driver macb
[    0.945312] bus: 'platform': really_probe: probing driver macb with device f802c000.ethernet
[    0.945312] macb f802c000.ethernet: no sleep pinctrl state
[    0.945312] macb f802c000.ethernet: no idle pinctrl state
[    0.945312] device: 'eth0': device_add
[    0.945312] PM: Adding info for No Bus:eth0
[    0.945312] device: 'f802c000.etherne': device_add
[    0.945312] PM: Adding info for No Bus:f802c000.etherne
[    0.945312] libphy: MACB_mii_bus: probed
[    0.953125] device: 'f802c000.etherne:01': device_add
[    0.953125] bus: 'mdio_bus': add device f802c000.etherne:01
[    0.953125] PM: Adding info for mdio_bus:f802c000.etherne:01
[    0.953125] bus: 'mdio_bus': driver_probe_device: matched device f802c000.etherne:01 with driver SMSC LAN8710/LAN8720
[    0.953125] bus: 'mdio_bus': really_probe: probing driver SMSC LAN8710/LAN8720 with device f802c000.etherne:01
[    0.953125] SMSC LAN8710/LAN8720 f802c000.etherne:01: no default pinctrl state
[    0.953125] driver: 'f802c000.etherne:01': driver_bound: bound to device 'SMSC LAN8710/LAN8720'
[    0.953125] bus: 'mdio_bus': really_probe: bound device f802c000.etherne:01 to driver SMSC LAN8710/LAN8720
[    1.031250] macb f802c000.ethernet eth0: Cadence MACB at 0xf802c000 irq 27 (00:11:22:33:44:55)
[    1.039062] macb f802c000.ethernet eth0: attached PHY driver [SMSC LAN8710/LAN8720] (mii_bus:phy_addr=f802c000.etherne:01, irq=-1)
[    1.046875] driver: 'f802c000.ethernet': driver_bound: bound to device 'macb'
[    1.046875] bus: 'platform': really_probe: bound device f802c000.ethernet to driver macb
[    1.046875] bus: 'platform': add driver smc91x
[    1.046875] bus: 'platform': add driver smc911x
[    1.046875] bus: 'platform': add driver smsc911x
[    1.046875] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
[    1.054687] ehci-atmel: EHCI Atmel driver
[    1.062500] bus: 'platform': add driver atmel-ehci
[    1.062500] bus: 'platform': driver_probe_device: matched device 700000.ehci with driver atmel-ehci
[    1.062500] bus: 'platform': really_probe: probing driver atmel-ehci with device 700000.ehci
[    1.062500] atmel-ehci 700000.ehci: no default pinctrl state
[    1.062500] atmel-ehci 700000.ehci: EHCI Host Controller
[    1.070312] atmel-ehci 700000.ehci: new USB bus registered, assigned bus number 1
[    1.078125] atmel-ehci 700000.ehci: irq 28, io mem 0x00700000
[    1.093750] atmel-ehci 700000.ehci: USB 2.0 started, EHCI 1.00
[    1.093750] usb usb1: New USB device found, idVendor=1d6b, idProduct=0002
[    1.101562] usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[    1.109375] usb usb1: Product: EHCI Host Controller
[    1.117187] usb usb1: Manufacturer: Linux 3.14.0-rc4+ ehci_hcd
[    1.117187] usb usb1: SerialNumber: 700000.ehci
[    1.125000] device: 'usb1': device_add
[    1.125000] bus: 'usb': add device usb1
[    1.125000] PM: Adding info for usb:usb1
[    1.125000] bus: 'usb': driver_probe_device: matched device usb1 with driver usb
[    1.125000] bus: 'usb': really_probe: probing driver usb with device usb1
[    1.125000] usb usb1: no default pinctrl state
[    1.125000] device: '1-0:1.0': device_add
[    1.125000] bus: 'usb': add device 1-0:1.0
[    1.125000] PM: Adding info for usb:1-0:1.0
[    1.125000] bus: 'usb': driver_probe_device: matched device 1-0:1.0 with driver hub
[    1.125000] bus: 'usb': really_probe: probing driver hub with device 1-0:1.0
[    1.125000] hub 1-0:1.0: no default pinctrl state
[    1.125000] hub 1-0:1.0: USB hub found
[    1.132812] hub 1-0:1.0: 3 ports detected
[    1.132812] device: 'port1': device_add
[    1.132812] PM: Adding info for No Bus:port1
[    1.132812] device: 'port2': device_add
[    1.132812] PM: Adding info for No Bus:port2
[    1.132812] device: 'port3': device_add
[    1.132812] PM: Adding info for No Bus:port3
[    1.140625] driver: '1-0:1.0': driver_bound: bound to device 'hub'
[    1.140625] bus: 'usb': really_probe: bound device 1-0:1.0 to driver hub
[    1.140625] device: 'ep_81': device_add
[    1.140625] PM: Adding info for No Bus:ep_81
[    1.140625] driver: 'usb1': driver_bound: bound to device 'usb'
[    1.140625] bus: 'usb': really_probe: bound device usb1 to driver usb
[    1.140625] device: 'ep_00': device_add
[    1.140625] PM: Adding info for No Bus:ep_00
[    1.140625] driver: '700000.ehci': driver_bound: bound to device 'atmel-ehci'
[    1.140625] bus: 'platform': really_probe: bound device 700000.ehci to driver atmel-ehci
[    1.140625] ohci_hcd: USB 1.1 'Open' Host Controller (OHCI) Driver
[    1.140625] ohci-atmel: OHCI Atmel driver
[    1.148437] bus: 'platform': add driver at91_ohci
[    1.148437] bus: 'platform': driver_probe_device: matched device 600000.ohci with driver at91_ohci
[    1.148437] bus: 'platform': really_probe: probing driver at91_ohci with device 600000.ohci
[    1.148437] at91_ohci 600000.ohci: no default pinctrl state
[    1.148437] at91_ohci 600000.ohci: OHCI Host Controller
[    1.156250] at91_ohci 600000.ohci: new USB bus registered, assigned bus number 2
[    1.164062] at91_ohci 600000.ohci: irq 28, io mem 0x00600000
[    1.226562] usb usb2: New USB device found, idVendor=1d6b, idProduct=0001
[    1.234375] usb usb2: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[    1.242187] usb usb2: Product: OHCI Host Controller
[    1.242187] usb usb2: Manufacturer: Linux 3.14.0-rc4+ ohci_hcd
[    1.250000] usb usb2: SerialNumber: at91
[    1.257812] device: 'usb2': device_add
[    1.257812] bus: 'usb': add device usb2
[    1.257812] PM: Adding info for usb:usb2
[    1.257812] bus: 'usb': driver_probe_device: matched device usb2 with driver usb
[    1.257812] bus: 'usb': really_probe: probing driver usb with device usb2
[    1.257812] usb usb2: no default pinctrl state
[    1.257812] device: '2-0:1.0': device_add
[    1.257812] bus: 'usb': add device 2-0:1.0
[    1.257812] PM: Adding info for usb:2-0:1.0
[    1.257812] bus: 'usb': driver_probe_device: matched device 2-0:1.0 with driver hub
[    1.257812] bus: 'usb': really_probe: probing driver hub with device 2-0:1.0
[    1.257812] hub 2-0:1.0: no default pinctrl state
[    1.257812] hub 2-0:1.0: USB hub found
[    1.265625] hub 2-0:1.0: 3 ports detected
[    1.265625] device: 'port1': device_add
[    1.265625] PM: Adding info for No Bus:port1
[    1.265625] device: 'port2': device_add
[    1.265625] PM: Adding info for No Bus:port2
[    1.265625] device: 'port3': device_add
[    1.265625] PM: Adding info for No Bus:port3
[    1.265625] driver: '2-0:1.0': driver_bound: bound to device 'hub'
[    1.265625] bus: 'usb': really_probe: bound device 2-0:1.0 to driver hub
[    1.265625] device: 'ep_81': device_add
[    1.265625] PM: Adding info for No Bus:ep_81
[    1.265625] driver: 'usb2': driver_bound: bound to device 'usb'
[    1.265625] bus: 'usb': really_probe: bound device usb2 to driver usb
[    1.265625] device: 'ep_00': device_add
[    1.265625] PM: Adding info for No Bus:ep_00
[    1.265625] driver: '600000.ohci': driver_bound: bound to device 'at91_ohci'
[    1.265625] bus: 'platform': really_probe: bound device 600000.ohci to driver at91_ohci
[    1.265625] bus: 'usb': add driver usb-storage
[    1.273437] usbcore: registered new interface driver usb-storage
[    1.273437] bus: 'platform': add driver at91_rtc
[    1.273437] bus: 'platform': driver_probe_device: matched device fffffeb0.rtc with driver at91_rtc
[    1.273437] bus: 'platform': really_probe: probing driver at91_rtc with device fffffeb0.rtc
[    1.273437] at91_rtc fffffeb0.rtc: no default pinctrl state
[    1.273437] device: 'rtc0': device_add
[    1.273437] PM: Adding info for No Bus:rtc0
[    1.281250] at91_rtc fffffeb0.rtc: rtc core: registered fffffeb0.rtc as rtc0
[    1.281250] at91_rtc fffffeb0.rtc: AT91 Real Time Clock driver.
[    1.289062] driver: 'fffffeb0.rtc': driver_bound: bound to device 'at91_rtc'
[    1.289062] bus: 'platform': really_probe: bound device fffffeb0.rtc to driver at91_rtc
[    1.289062] bus: 'platform': add driver rtc-at91sam9
[    1.289062] i2c /dev entries driver
[    1.296875] device class 'i2c-dev': registering
[    1.296875] device: 'i2c-0': device_add
[    1.296875] PM: Adding info for No Bus:i2c-0
[    1.296875] device: 'i2c-1': device_add
[    1.296875] PM: Adding info for No Bus:i2c-1
[    1.296875] bus: 'platform': add driver at91_wdt
[    1.296875] bus: 'platform': remove driver at91_wdt
[    1.296875] driver: 'at91_wdt': driver_release
[    1.296875] bus: 'mmc': add driver mmcblk
[    1.296875] bus: 'spi': add driver mmc_spi
[    1.296875] bus: 'platform': add driver leds-gpio
[    1.296875] bus: 'platform': driver_probe_device: matched device leds.3 with driver leds-gpio
[    1.296875] bus: 'platform': really_probe: probing driver leds-gpio with device leds.3
[    1.296875] leds-gpio leds.3: no default pinctrl state
[    1.296875] device: 'module_led': device_add
[    1.304687] PM: Adding info for No Bus:module_led
[    1.304687] device: 'cpu_led': device_add
[    1.304687] PM: Adding info for No Bus:cpu_led
[    1.304687] device: 'busy_led': device_add
[    1.304687] PM: Adding info for No Bus:busy_led
[    1.304687] device: 'fail_led': device_add
[    1.304687] PM: Adding info for No Bus:fail_led
[    1.304687] driver: 'leds.3': driver_bound: bound to device 'leds-gpio'
[    1.304687] bus: 'platform': really_probe: bound device leds.3 to driver leds-gpio
[    1.304687] bus: 'hid': registered
[    1.304687] bus: 'hid': add driver hid-generic
[    1.304687] bus: 'usb': add driver usbhid
[    1.304687] usbcore: registered new interface driver usbhid
[    1.312500] usbhid: USB HID core driver
[    1.320312] TCP: cubic registered
[    1.320312] NET: Registered protocol family 17
[    1.328125] can: controller area network core (rev 20120528 abi 9)
[    1.335937] NET: Registered protocol family 29
[    1.335937] can: raw protocol (rev 20120528)
[    1.343750] can: broadcast manager protocol (rev 20120528 t)
[    1.343750] device: 'cpu_dma_latency': device_add
[    1.343750] PM: Adding info for No Bus:cpu_dma_latency
[    1.351562] device: 'network_latency': device_add
[    1.351562] PM: Adding info for No Bus:network_latency
[    1.351562] device: 'network_throughput': device_add
[    1.351562] PM: Adding info for No Bus:network_throughput
[    1.351562] device class 'ubi': registering
[    1.351562] device: 'ubi_ctrl': device_add
[    1.351562] PM: Adding info for No Bus:ubi_ctrl
[    1.351562] bus: 'platform': add driver gpio-keys
[    1.351562] bus: 'platform': driver_probe_device: matched device gpio_keys.4 with driver gpio-keys
[    1.351562] bus: 'platform': really_probe: probing driver gpio-keys with device gpio_keys.4
[    1.351562] gpio-keys gpio_keys.4: no default pinctrl state
[    1.351562] device: 'input0': device_add
[    1.351562] PM: Adding info for No Bus:input0
[    1.351562] input: gpio_keys.4 as /devices/gpio_keys.4/input/input0
[    1.359375] device: 'event0': device_add
[    1.359375] PM: Adding info for No Bus:event0
[    1.359375] evbug: Connected device: input0 (gpio_keys.4 at gpio-keys/input0)
[    1.359375] driver: 'gpio_keys.4': driver_bound: bound to device 'gpio-keys'
[    1.359375] bus: 'platform': really_probe: bound device gpio_keys.4 to driver gpio-keys
[    1.367187] at91_rtc fffffeb0.rtc: setting system clock to 2014-02-26 09:47:03 UTC (1393408023)
[    1.375000] bus: 'platform': add driver atmel_mci
[    1.375000] bus: 'platform': driver_probe_device: matched device f0008000.mmc with driver atmel_mci
[    1.375000] bus: 'platform': really_probe: probing driver atmel_mci with device f0008000.mmc
[    1.375000] atmel_mci f0008000.mmc: no sleep pinctrl state
[    1.375000] atmel_mci f0008000.mmc: no idle pinctrl state
[    1.375000] atmel_mci f0008000.mmc: version: 0x504
[    1.375000] atmel_mci f0008000.mmc: using dma0chan4 for DMA transfers
[    1.382812] device: 'mmc0': device_add
[    1.382812] PM: Adding info for No Bus:mmc0
[    1.429687] atmel_mci f0008000.mmc: Atmel MCI controller at 0xf0008000 irq 22, 1 slots
[    1.437500] driver: 'f0008000.mmc': driver_bound: bound to device 'atmel_mci'
[    1.437500] bus: 'platform': really_probe: bound device f0008000.mmc to driver atmel_mci
[    3.031250] macb f802c000.ethernet eth0: link up (100/Full)
[    3.054687] IP-Config: Guessing netmask 255.0.0.0
[    3.054687] IP-Config: Complete:
[    3.054687]      device=eth0, hwaddr=00:11:22:33:44:55, ipaddr=10.185.5.102, mask=255.0.0.0, gw=255.255.255.255
[    3.062500]      host=10.185.5.102, domain=, nis-domain=(none)
[    3.070312]      bootserver=255.255.255.255, rootserver=10.185.5.4, rootpath=
[    3.101562] device: '0:11': device_add
[    3.101562] PM: Adding info for No Bus:0:11
[    3.101562] VFS: Mounted root (nfs filesystem) on device 0:11.
[    3.109375] devtmpfs: mounted
[    3.109375] Freeing unused kernel memory: 136K (c048b000 - c04ad000)
[    3.796875] random: dd urandom read with 21 bits of entropy available
[   45.789062] random: nonblocking pool is initialized

[-- Attachment #3: mymachine.dts --]
[-- Type: text/plain, Size: 6063 bytes --]

/*
 * mymachine.dts - Device Tree file for board, base AT91sam9g25
 * 							  - Board rev V1R1
 *
 * Copyright (C) 2014 Lucas Zampar Bernardi <lucas.zampar@gmail.com>
 *
 * Licensed under GPLv2 or later.
 */
/dts-v1/;
#include "at91sam9g25.dtsi"

/ {
	model = "MyMachine";
	compatible = "zampar,mymachine-v1r1", "atmel,at91sam9x5ek",
		     "atmel,at91sam9x5", "atmel,at91sam9";

	aliases {
		serial0 = &dbgu;
		serial1 = &usart0;
		serial2 = &usart1;
		serial3 = &usart2;
		serial4 = &usart3;
		serial5 = &uart0;
		serial6 = &uart1;
	};

	chosen {
		bootargs = "console=ttyS0,115200 earlyprintk mtdparts=atmel_nand:256k(bootstrap)ro,512k(uboot)ro,256k(env),256k(env_redundant),256k(spare),512k(dtb),6M(kernel)ro,-(rootfs) rootfstype=ubifs ubi.mtd=7 root=ubi0:rootfs rw";
	};

	memory {
		/* 128 MB, change this for 256 MB revision */
		reg = <0x20000000 0x8000000>;
	};

		
	clocks {
		#address-cells = <1>;
		#size-cells = <1>;
		ranges;

		main_clock: clock@0 {
			compatible = "atmel,osc", "fixed-clock";
			clock-frequency = <12000000>;
		};

		mcp2515_clock: mcp25515_clock {
			compatible = "fixed-clock";
			#clock-cells = <0>;
			clock-frequency = <20000000>;
		
	};


	};
		
	ahb {
		apb {
			mmc0: mmc@f0008000 {
				/* N.B. Aria has no SD card detect (CD), assumed present */

				pinctrl-0 = <
					&pinctrl_mmc0_slot0_clk_cmd_dat0
					&pinctrl_mmc0_slot0_dat1_3>;
				status = "okay";
				slot@0 {
					reg = <0>;
					bus-width = <4>;
				};
			};

			i2c0: i2c@f8010000 {
				status = "okay";
				
					24c512@50 {
					compatible = "24c512";
					reg = <0x50>;
					pagesize = <128>;
					};
			};

			i2c1: i2c@f8014000 {
				status = "okay";
			};

			/* TWD2+TCLK2 hidden behind ethernet, so no i2c2 */

			usart0: serial@f801c000 {
				pinctrl-0 = <&pinctrl_usart0
					     &pinctrl_usart0_rts
					     &pinctrl_usart0_cts>;
				status = "disabled";
			};

			usart1: serial@f8020000 {
				pinctrl-0 = <&pinctrl_usart1
					     /* &pinctrl_usart1_rts */
					     /* &pinctrl_usart1_cts */
					    >;
				status = "disabled";
			};

			usart2: serial@f8024000 {
				/* cannot activate RTS2+CTS2, clash with
				 * ethernet on PB0 and PB1 */
				pinctrl-0 = <&pinctrl_usart2>;
				status = "disabled";
			};

			usart3: serial@f8028000 {
				compatible = "atmel,at91sam9260-usart";
				reg = <0xf8028000 0x200>;
				interrupts = <8 4 5>;
				pinctrl-names = "default";
				pinctrl-0 = <&pinctrl_usart3
					     /* &pinctrl_usart3_rts */
					     /* &pinctrl_usart3_cts */
					    >;
				status = "disabled";
			};

			macb0: ethernet@f802c000 {
				phy-mode = "rmii";
				/*
				 * following can be overwritten by bootloader:
				 * for example u-boot 'ftd set' command
				 */
				local-mac-address = [00 00 00 00 00 00];
				status = "okay";
			};

			/*
			 * UART0/1 pins are marked as GPIO on
			 * Aria documentation.
			 * Change to "okay" if you need additional serial ports
			 */
			uart0: serial@f8040000 {
				status = "disabled";
			};

			uart1: serial@f8044000 {
				status = "disabled";
			};

			adc0: adc@f804c000 {
				status = "okay";
				atmel,adc-channels-used = <0xf>;
				atmel,adc-num-channels = <4>;
			};

			dbgu: serial@fffff200 {
				status = "okay";
			};

			pinctrl@fffff400 {
				w1_0 {
					pinctrl_w1_0: w1_0-0 {
						atmel,pins = <0 21 0x0 0x1>; /* PA21 PIO, pull-up */
					};

				};
				
				mcp251x_0 {
					pinctrl_mcp251x_0: mcp251x_0-0 {
						atmel,pins = <AT91_PIOC 12 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_UP>;		/* PC12 periph GPIO - INT */
					};
				};
					
					
			};

			rtc@fffffeb0 {
				status = "okay";
			};
			
			
			spi0: spi@f0000000 {
				status = "okay";
				interrupts = <13 4 5>;
				cs-gpios = <&pioA 14 0>, <&pioA 7 0>, <&pioA 1 0>, <0>;

       			

        			
				mtd_dataflash@0 {
					compatible = "atmel,at45", "atmel,dataflash";
					spi-max-frequency = <10000000>;
					reg = <0>;
				};
				
				can0: can@1 {
					compatible = "microchip,mcp2515";
					reg = <2>;
					spi-max-frequency = <10000000>;
					clocks = <&mcp2515_clock>;
					pinctrl-names = "default";
					pinctrl-0 = <&pinctrl_mcp251x_0>;
					interrupt-parent = <&pioC>;
					interrupts = <12 2>;
				};
		};

	};
	
		usb0: ohci@00600000 {
			status = "okay";
			num-ports = <3>;
		};

		usb1: ehci@00700000 {
			status = "okay";
		};
		
		nand0: nand@40000000 {
			nand-bus-width = <8>;
			nand-ecc-mode = "hw";
			atmel,has-pmecc;	/* Enable PMECC */
			atmel,pmecc-cap = <2>;
			atmel,pmecc-sector-size = <512>;
			nand-on-flash-bbt;
			status = "okay";

			at91bootstrap@0 {
				label = "at91bootstrap";
				reg = <0x0 0x40000>;
			};

			uboot@40000 {
				label = "u-boot";
				reg = <0x40000 0x80000>;
			};

			ubootenv@c0000 {
				label = "U-Boot Env";
				reg = <0xc0000 0x140000>;
			};

			kernel@200000 {
				label = "kernel";
				reg = <0x200000 0x600000>;
			};

			rootfs@800000 {
				label = "rootfs";
				reg = <0x800000 0x1f800000>;
			};
		};
		
	};

	leds {
		compatible = "gpio-leds";

		/* little green LED in middle of cpu module */
		module_led {
			label = "module_led";
			gpios = <&pioB 8 GPIO_ACTIVE_HIGH>; /* PB8 */
			linux,default-trigger = "heartbeat";
		};

		cpu_led {
			label = "cpu_led";
			gpios = <&pioA 29 GPIO_ACTIVE_HIGH>; /* PA29 */
			linux,default-trigger = "heartbeat";
		};

		busy_led {
			label = "busy_led";
			gpios = <&pioA 28 GPIO_ACTIVE_HIGH>; /* PA28 */
			linux,default-trigger = "heartbeat";
		};
		
		fail_led {
			label = "fail_led";
			gpios = <&pioA 27 GPIO_ACTIVE_HIGH>; /* PA27 */
			linux,default-trigger = "heartbeat";
		};
				
	};
	
	gpio_keys {
		compatible = "gpio-keys";

		transfer_button {
			label = "transfer_button";
			gpios = <&pioA 26 GPIO_ACTIVE_LOW>;
			linux,code = <183>; /* F13 Key */
			gpio-key,wakeup;
		};

		custom_button {
			label = "custom_button";
			gpios = <&pioA 25 GPIO_ACTIVE_LOW>;
			linux,code = <184>; /* F14 Key */
			gpio-key,wakeup;
		};
	};
	

	onewire@0 {
		compatible = "w1-gpio";
		gpios = <&pioA 21 GPIO_ACTIVE_LOW>;
		pinctrl-names = "default";
		pinctrl-0 = <&pinctrl_w1_0>;
	};
};

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: MCP2515 DTS support
  2014-02-26 13:12         ` Lucas Zampar Bernardi
@ 2014-02-26 14:50           ` Alexander Shiyan
  2014-02-26 17:36             ` Lucas Zampar Bernardi
  0 siblings, 1 reply; 10+ messages in thread
From: Alexander Shiyan @ 2014-02-26 14:50 UTC (permalink / raw)
  To: Lucas Zampar Bernardi; +Cc: Marc Kleine-Budde, linux-can

Среда, 26 февраля 2014, 10:12 -03:00 от Lucas Zampar Bernardi <lucas.zampar@gmail.com>:
> Hello Alexander,
> 
> 
> Follow attach my DTS file and my dmesg log.
> How you can see, we have "mcp251x: probe of spi32766.2 failed with error 
> -2.".
> I discovered that the cause is the clock config structure, because if 
> I've forced a frequency hardcode all driver works.
> The point where I've forced is:
...

Seems, you are missing "fixed-clock" driver in the kernel.
Is CONFIG_COMMON_CLK option is enabled in your .config?

---

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: MCP2515 DTS support
  2014-02-26 14:50           ` Alexander Shiyan
@ 2014-02-26 17:36             ` Lucas Zampar Bernardi
  2014-02-26 17:50               ` Marc Kleine-Budde
  0 siblings, 1 reply; 10+ messages in thread
From: Lucas Zampar Bernardi @ 2014-02-26 17:36 UTC (permalink / raw)
  To: Alexander Shiyan; +Cc: Marc Kleine-Budde, linux-can

You are right Alexander!
The CONFIG_COMMON_CLK hasn't enable!
But for all SOC AT91_SAM9x5 still uses old clock style (AT91_USE_OLD_CLK):

config SOC_AT91SAM9X5
         bool "AT91SAM9x5 family"
         select HAVE_AT91_DBGU0
         select HAVE_FB_ATMEL
         select SOC_AT91SAM9
         select AT91_USE_OLD_CLK
         select HAVE_AT91_UTMI
         select HAVE_AT91_SMD
         select HAVE_AT91_USB_CLK

and one of dependencies for COMMON_CLK_AT91 is don't be AT91_USE_OLD_CLK

config COMMON_CLK_AT91
         bool
        default AT91_PMC_UNIT && USE_OF && !AT91_USE_OLD_CLK
         select COMMON_CLK

config OLD_CLK_AT91
         bool
         default AT91_PMC_UNIT && AT91_USE_OLD_CLK




Now came my question: Can I use CONFIG_COMMON_CLK without my ARCH 
support? If not, how we will support devices that need CONFIG_COMMON_CLK?



regards,


Lucas

On 26-02-2014 11:50, Alexander Shiyan wrote:
> Среда, 26 февраля 2014, 10:12 -03:00 от Lucas Zampar Bernardi <lucas.zampar@gmail.com>:
>> Hello Alexander,
>>
>>
>> Follow attach my DTS file and my dmesg log.
>> How you can see, we have "mcp251x: probe of spi32766.2 failed with error
>> -2.".
>> I discovered that the cause is the clock config structure, because if
>> I've forced a frequency hardcode all driver works.
>> The point where I've forced is:
> ...
>
> Seems, you are missing "fixed-clock" driver in the kernel.
> Is CONFIG_COMMON_CLK option is enabled in your .config?
>
> ---


^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: MCP2515 DTS support
  2014-02-26 17:36             ` Lucas Zampar Bernardi
@ 2014-02-26 17:50               ` Marc Kleine-Budde
  2014-02-26 18:01                 ` Alexander Shiyan
  0 siblings, 1 reply; 10+ messages in thread
From: Marc Kleine-Budde @ 2014-02-26 17:50 UTC (permalink / raw)
  To: Lucas Zampar Bernardi, Alexander Shiyan; +Cc: linux-can

[-- Attachment #1: Type: text/plain, Size: 2120 bytes --]

On 02/26/2014 06:36 PM, Lucas Zampar Bernardi wrote:
> You are right Alexander!
> The CONFIG_COMMON_CLK hasn't enable!
> But for all SOC AT91_SAM9x5 still uses old clock style (AT91_USE_OLD_CLK):
> 
> config SOC_AT91SAM9X5
>         bool "AT91SAM9x5 family"
>         select HAVE_AT91_DBGU0
>         select HAVE_FB_ATMEL
>         select SOC_AT91SAM9
>         select AT91_USE_OLD_CLK
>         select HAVE_AT91_UTMI
>         select HAVE_AT91_SMD
>         select HAVE_AT91_USB_CLK
> 
> and one of dependencies for COMMON_CLK_AT91 is don't be AT91_USE_OLD_CLK
> 
> config COMMON_CLK_AT91
>         bool
>        default AT91_PMC_UNIT && USE_OF && !AT91_USE_OLD_CLK
>         select COMMON_CLK
> 
> config OLD_CLK_AT91
>         bool
>         default AT91_PMC_UNIT && AT91_USE_OLD_CLK
> 
> 
> 
> 
> Now came my question: Can I use CONFIG_COMMON_CLK without my ARCH
> support? If not, how we will support devices that need CONFIG_COMMON_CLK?

You probably have to wait for common clock support. However you can
still hook platform data to your spi device. For a mxs add this to
arch/arm/mach-mxs/mach-mxs.c:

static int abc_spi_notifier_call(struct notifier_block *nb,
					unsigned long event, void *data)
{
	struct device *dev = data;

	if (event == BUS_NOTIFY_BIND_DRIVER)
		if (strcmp(dev_name(dev), "spi32766.0") == 0)
			dev->platform_data = &abc_pdata;

	return NOTIFY_OK;
}

static struct notifier_block abc_spi_nb = {
	.notifier_call = abc_spi_notifier_call,
};

static void __init abc_post_init(void)
{
	bus_register_notifier(&spi_bus_type, &abc_spi_nb);
}

static void __init mxs_machine_init(void)
{

	of_platform_populate(NULL, of_default_bus_match_table,
			     mxs_auxdata_lookup, NULL);

	if (of_machine_is_compatible("123,abc"))
		abc_post_init();
}

Marc

-- 
Pengutronix e.K.                  | Marc Kleine-Budde           |
Industrial Linux Solutions        | Phone: +49-231-2826-924     |
Vertretung West/Dortmund          | Fax:   +49-5121-206917-5555 |
Amtsgericht Hildesheim, HRA 2686  | http://www.pengutronix.de   |


[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 242 bytes --]

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: MCP2515 DTS support
  2014-02-26 17:50               ` Marc Kleine-Budde
@ 2014-02-26 18:01                 ` Alexander Shiyan
  2014-02-26 18:17                   ` Lucas Zampar Bernardi
  0 siblings, 1 reply; 10+ messages in thread
From: Alexander Shiyan @ 2014-02-26 18:01 UTC (permalink / raw)
  To: Marc Kleine-Budde; +Cc: Lucas Zampar Bernardi, linux-can

Среда, 26 февраля 2014, 18:50 +01:00 от Marc Kleine-Budde <mkl@pengutronix.de>:
> On 02/26/2014 06:36 PM, Lucas Zampar Bernardi wrote:
> > You are right Alexander!
> > The CONFIG_COMMON_CLK hasn't enable!
> > But for all SOC AT91_SAM9x5 still uses old clock style (AT91_USE_OLD_CLK):
> > 
> > config SOC_AT91SAM9X5
> >         bool "AT91SAM9x5 family"
> >         select HAVE_AT91_DBGU0
> >         select HAVE_FB_ATMEL
> >         select SOC_AT91SAM9
> >         select AT91_USE_OLD_CLK
> >         select HAVE_AT91_UTMI
> >         select HAVE_AT91_SMD
> >         select HAVE_AT91_USB_CLK
> > 
> > and one of dependencies for COMMON_CLK_AT91 is don't be AT91_USE_OLD_CLK
> > 
> > config COMMON_CLK_AT91
> >         bool
> >        default AT91_PMC_UNIT && USE_OF && !AT91_USE_OLD_CLK
> >         select COMMON_CLK
> > 
> > config OLD_CLK_AT91
> >         bool
> >         default AT91_PMC_UNIT && AT91_USE_OLD_CLK
> > 
> > 
> > 
> > 
> > Now came my question: Can I use CONFIG_COMMON_CLK without my ARCH
> > support? If not, how we will support devices that need CONFIG_COMMON_CLK?
> 
> You probably have to wait for common clock support. However you can
> still hook platform data to your spi device. For a mxs add this to
> arch/arm/mach-mxs/mach-mxs.c:
> 
> static int abc_spi_notifier_call(struct notifier_block *nb,
> 					unsigned long event, void *data)
...

Nevertheless, support for the CLK API for SOC AT91_SAM9x5 seems
already in the kernel.
https://git.kernel.org/cgit/linux/kernel/git/next/linux-next.git/tree/drivers/clk/at91/pmc.c?id=05202872ca98f8ea61943a9b530417c5503b816f

You can ask about the CLK status in the AT91 mailing list.

---

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: MCP2515 DTS support
  2014-02-26 18:01                 ` Alexander Shiyan
@ 2014-02-26 18:17                   ` Lucas Zampar Bernardi
  0 siblings, 0 replies; 10+ messages in thread
From: Lucas Zampar Bernardi @ 2014-02-26 18:17 UTC (permalink / raw)
  To: Alexander Shiyan, Marc Kleine-Budde; +Cc: linux-can

Tnks a lot guys!

I will check for COMMON_CLK support at linux-at91, but for while, I will 
use the hardcode frequency!

regards,

lucas

On 26-02-2014 15:01, Alexander Shiyan wrote:
> Среда, 26 февраля 2014, 18:50 +01:00 от Marc Kleine-Budde <mkl@pengutronix.de>:
>> On 02/26/2014 06:36 PM, Lucas Zampar Bernardi wrote:
>>> You are right Alexander!
>>> The CONFIG_COMMON_CLK hasn't enable!
>>> But for all SOC AT91_SAM9x5 still uses old clock style (AT91_USE_OLD_CLK):
>>>
>>> config SOC_AT91SAM9X5
>>>          bool "AT91SAM9x5 family"
>>>          select HAVE_AT91_DBGU0
>>>          select HAVE_FB_ATMEL
>>>          select SOC_AT91SAM9
>>>          select AT91_USE_OLD_CLK
>>>          select HAVE_AT91_UTMI
>>>          select HAVE_AT91_SMD
>>>          select HAVE_AT91_USB_CLK
>>>
>>> and one of dependencies for COMMON_CLK_AT91 is don't be AT91_USE_OLD_CLK
>>>
>>> config COMMON_CLK_AT91
>>>          bool
>>>         default AT91_PMC_UNIT && USE_OF && !AT91_USE_OLD_CLK
>>>          select COMMON_CLK
>>>
>>> config OLD_CLK_AT91
>>>          bool
>>>          default AT91_PMC_UNIT && AT91_USE_OLD_CLK
>>>
>>>
>>>
>>>
>>> Now came my question: Can I use CONFIG_COMMON_CLK without my ARCH
>>> support? If not, how we will support devices that need CONFIG_COMMON_CLK?
>> You probably have to wait for common clock support. However you can
>> still hook platform data to your spi device. For a mxs add this to
>> arch/arm/mach-mxs/mach-mxs.c:
>>
>> static int abc_spi_notifier_call(struct notifier_block *nb,
>> 					unsigned long event, void *data)
> ...
>
> Nevertheless, support for the CLK API for SOC AT91_SAM9x5 seems
> already in the kernel.
> https://git.kernel.org/cgit/linux/kernel/git/next/linux-next.git/tree/drivers/clk/at91/pmc.c?id=05202872ca98f8ea61943a9b530417c5503b816f
>
> You can ask about the CLK status in the AT91 mailing list.
>
> ---


^ permalink raw reply	[flat|nested] 10+ messages in thread

end of thread, other threads:[~2014-02-26 18:17 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
     [not found] <1445543c688.2748.cbaa067694a7e68fb76a213b35423fb5@gmail.com>
2014-02-21 16:26 ` MCP2515 DTS support Lucas Zampar Bernardi
2014-02-22 19:46   ` Lucas Zampar Bernardi
2014-02-25 21:35     ` Marc Kleine-Budde
2014-02-26  4:17       ` Alexander Shiyan
2014-02-26 13:12         ` Lucas Zampar Bernardi
2014-02-26 14:50           ` Alexander Shiyan
2014-02-26 17:36             ` Lucas Zampar Bernardi
2014-02-26 17:50               ` Marc Kleine-Budde
2014-02-26 18:01                 ` Alexander Shiyan
2014-02-26 18:17                   ` Lucas Zampar Bernardi

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.