I just noticed the faster way of toggling pins by using mmap, and after 
trying chiragnagpal's example, I could achieve 2.6MHz. 



Example was for 1 pin only, now I want to use 8 pins, so I edited .dtc file 
as following:

/*
* Copyright (C) 2012 Texas Instruments Incorporated - http://www.ti.com/
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Purpose License Version 2 as
* published by the Free Software Foundation
*
* Original from: 
github.com/jadonk/validation-scripts/blob/master/test-capemgr/
*
* Modified by Derek Molloy for the example on www.derekmolloy.ie
* that maps GPIO pins for the example
*/


/dts-v1/;
/plugin/;


/{
       compatible = "ti,beaglebone", "ti,beaglebone-black";
       part-number = "DM-GPIO-Test";
       version = "00A0";


       fragment@0 {
             target = <&am33xx_pinmux>;


             __overlay__ {
                  pinctrl_test: DM_GPIO_Test_Pins {
                        pinctrl-single,pins = <


                                0x070 0x07  /* P9_11 60 OUTPUT MODE7 - The 
LED Output */
                                0x078 0x07  /* P9_12 60 OUTPUT MODE7 - The 
LED Output */
                                0x074 0x07  /* P9_13 60 OUTPUT MODE7 - The 
LED Output */
                                0x048 0x07  /* P9_14 60 OUTPUT MODE7 - The 
LED Output */
                                0x040 0x07  /* P9_15 60 OUTPUT MODE7 - The 
LED Output */
                                0x04c 0x07  /* P9_16 60 OUTPUT MODE7 - The 
LED Output */
                                0x15c 0x07  /* P9_17 60 OUTPUT MODE7 - The 
LED Output */
                                0x158 0x07  /* P9_18 60 OUTPUT MODE7 - The 
LED Output */




                               /* OUTPUT  GPIO(mode7) 0x07 pulldown, 0x17 
pullup, 0x?f no pullup/down */
                               /* INPUT   GPIO(mode7) 0x27 pulldown, 0x37 
pullup, 0x?f no pullup/down */


                        >;
                  };
             };
       };


       fragment@1 {
                target = <&ocp>;
                __overlay__ {
                        test_helper: helper {
                                compatible = "bone-pinmux-helper";
                                pinctrl-names = "default";
                                pinctrl-0 = <&pinctrl_test>;
                                status = "okay";
                        };
                };
        };
};


However I could not figure out how to edit the header file used in the 
example. Here is the header file of the example:

#ifndef _BEAGLEBONE_GPIO_H_
#define _BEAGLEBONE_GPIO_H_


#define GPIO1_START_ADDR 0x4804C000
#define GPIO1_END_ADDR 0x4804DFFF
#define GPIO1_SIZE (GPIO1_END_ADDR - GPIO1_START_ADDR)
#define GPIO_OE 0x134
#define GPIO_SETDATAOUT 0x194
#define GPIO_CLEARDATAOUT 0x190




#define PIN (1<<28)




#endif


*Questions:*

*1)* I could not find START_ADDR, END_ADDR, OE, SETDATAOUT, CLEARDATAOUT 
from technical manual. Where can I find them for the pins from P9_11 ... 
upto P9_18

*2)* what is the explanation of the following statement? What does it do?
define PIN ( 1<<28) 

*3) *I am going to use it for SPI communication, so since the timing is 
critical, and Linux is not RT, there is a possibility that some other 
interrupts may damage my communaction. Do you think that it would be a 
problem? If yes, what precautions can I get?

Regards,
Frank

-- 
For more options, visit http://beagleboard.org/discuss
--- 
You received this message because you are subscribed to the Google Groups 
"BeagleBoard" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/beagleboard/fe2ed36d-96bb-43d3-aeee-9e85fcbfd04b%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to