Hi William, can you please elaborate on the purpose for the cape-overlay you have written.How did you compile and pushed it into the beagleboneblack?Where did you place the compiled .dtb/.dtbo?
On Thursday, July 28, 2016 at 4:02:40 PM UTC+5:30, William Hermans wrote: > > I use sublime text 3. And no device tree syntax is nothing like python. > > On Thu, Jul 28, 2016 at 3:30 AM, Jane <[email protected] <javascript:>> > wrote: > >> Can you name the editor?Is the dt is also like python where the Tabs and >> special character may ruin its compiling? >> Also does dtc compiler checks for the sanity of the file besides checking >> these tabs,syntax,etc.I mean what if it compiles fine but there is an issue >> in the dt? >> Also can you please elaborate more on the example dt below.Is it a >> device tree or device tree overlay?Also way to compile it. >> >>> >>> >> >> On Wednesday, July 27, 2016 at 10:17:42 AM UTC+5:30, William Hermans >> wrote: >> >>> Note the structure here form this modified file( Modified from Charles >>> S' Universal IO overlay 'univ-all' ) This is for a single pin instead of >>> all pins. >>> https://github.com/beagleboard/bb.org-overlays/blob/master/src/arm/univ-all-00A0.dts >>> >>> IN short here is what is required: >>> >>> >>> - /dts-v1/; >>> - /plugin/; >>> - / { >>> - compatible = "ti,beaglebone", "ti,beaglebone-black", >>> "ti,beaglebone-green"; >>> - part-number = "univ-P8_07"; >>> - version = "00A0"; >>> >>> Passed that exclusive-use = "P8.7"; ive seen in each overlay for pins >>> each uses. BUt if you examine this file closely it should become apparent >>> what is required to make a like overlay function. This specific file is >>> mean to offer the ability to change pin mux dynamically as the system is >>> running. So there are 5 possibilities from this file, but initially the pin >>> is configured as input. >>> >>> I will tell you what helps me a good bit while editing device tree >>> files. You need a good editor that will allow you to arbitrarily set syntax >>> highlighting. Then, I personally set syntax highlighting to "C". >>> >>> /dts-v1/; >>> /plugin/; >>> >>> / { >>> compatible = "ti,beaglebone", "ti,beaglebone-black", >>> "ti,beaglebone-green"; >>> >>> /* identification */ >>> part-number = "univ-P8_07"; >>> version = "00A0"; >>> >>> /* state the resources this cape uses */ >>> exclusive-use = "P8.7"; >>> >>> /* P8_07 (ZCZ ball R7 ) */ >>> P8_07_default_pin: pinmux_P8_07_default_pin { >>> pinctrl-single,pins = <0x090 0x37>; }; /* Mode 7, Pull-Up, >>> RxActive */ >>> P8_07_gpio_pin: pinmux_P8_07_gpio_pin { >>> pinctrl-single,pins = <0x090 0x2F>; }; /* Mode 7, RxActive >>> */ >>> P8_07_gpio_pu_pin: pinmux_P8_07_gpio_pu_pin { >>> pinctrl-single,pins = <0x090 0x37>; }; /* Mode 7, Pull-Up, >>> RxActive */ >>> P8_07_gpio_pd_pin: pinmux_P8_07_gpio_pd_pin { >>> pinctrl-single,pins = <0x090 0x27>; }; /* Mode 7, >>> Pull-Down, RxActive */ >>> P8_07_timer_pin: pinmux_P8_07_timer_pin { >>> pinctrl-single,pins = <0x090 0x32>; }; /* Mode 2, Pull-Up, >>> RxActive */ >>> >>> fragment@1 { >>> target = <&ocp>; >>> __overlay__ { >>> >>> P8_07_pinmux { >>> compatible = "bone-pinmux-helper"; >>> status = "okay"; >>> pinctrl-names = "default", "gpio", "gpio_pu", "gpio_pd", >>> "timer"; >>> pinctrl-0 = <&P8_07_default_pin>; >>> pinctrl-1 = <&P8_07_gpio_pin>; >>> pinctrl-2 = <&P8_07_gpio_pu_pin>; >>> pinctrl-3 = <&P8_07_gpio_pd_pin>; >>> pinctrl-4 = <&P8_07_timer_pin>; >>> }; >>> }; >>> }; >>> >>> fragment@2 { >>> target = <&ocp>; >>> __overlay__ { >>> >>> cape-universal { >>> compatible = "gpio-of-helper"; >>> status = "okay"; >>> pinctrl-names = "default"; >>> pinctrl-0 = <>; >>> >>> P8_07 { >>> gpio-name = "P8_07"; >>> gpio = <&gpio2 2 0>; >>> input; >>> dir-changeable; >>> }; >>> }; >>> }; >>> }; >>> }; >>> >>> On Mon, Jul 25, 2016 at 10:53 AM, Raul Piper <[email protected]> >>> wrote: >>> >>>> Hi Greg, >>>> Thankyou for the elaborative post and the link you sent.My >>>> understanding is mainly theoretical and inlined with what you wrote.. >>>> >>>> Yes,I have been scanning across many links on google and stack overflow >>>> but not able to find single one convincing. >>>> >>>> I came to conclusion that i will write a hello world gpio driver with >>>> lots of printk and build it along with the dts file by placing it in >>>> arch/arm/boot/dts and then loading that kernel image.According to >>>> R.Nelson's link i will copy the dtb files as well. >>>> Init--> probe-->register platform driver(.compatible string in the >>>> platform_device structure ) should throw something to go ahead with then. >>>> >>>> But still the loop holes in the understanding like why to copy all the >>>> dtb files,how to build only that dtb file and copy it in the lib/firmware >>>> and dynamically insmod the driver ....where does overlays come into the >>>> picture...can the drivers without dtb implementation be accepted in >>>> kernelmain line... >>>> >>>> Really looking for some example code here. >>>> >>>> On Monday 25 July 2016, Greg <[email protected]> wrote: >>>> >>>>> I'm not sure there is a one-stop shop for understanding the Device >>>>> Tree anywhere. >>>>> >>>>> There are at least 4 file types involved: >>>>> >>>>> 1. dts- This is the source code (text file) which is a data >>>>> structure to describe hardware. >>>>> 2. dtsi- A sub-chunk or "include" file which is used inside dts >>>>> files. It's somewhat similar to an "include" or "import" in programming >>>>> languages. >>>>> 3. dtb- Device tree blob. This is the compiled version of the dts. >>>>> This is what gets loaded at boot time. It's the foundation of the system >>>>> used by the kernel. >>>>> 4. dtbo- Device tree overlay. This can be loaded after boot time. >>>>> This is how the Beaglebone adjusts itself when different "capes" are >>>>> plugged in. It does this by reading information stored in the EEPROM in >>>>> the cape. These "overlays" can also be loaded at the command line using >>>>> the "slots" in the sysfs virtual file system. Look for a substantial >>>>> collection of already done overlays in the directory /lib/firmware. If >>>>> you >>>>> want to make your own overlay, /lib/firmware is where you want to place >>>>> it. >>>>> >>>>> This topic is really confusing, and no doubt my notes above are full >>>>> of flaws. >>>>> >>>>> You can work through and understand all of the above. However, >>>>> depending on the complexity of what you are trying to do, this may be >>>>> sufficient: >>>>> >>>>> https://github.com/cdsteinkuehler/beaglebone-universal-io >>>>> >>>>> Using the config-pin -f option and a simple text file you can use your >>>>> .profile or similar start-up configuration file to set the pins to your >>>>> requirements. >>>>> This is a relatively straight-forward solution to tacking the problem. >>>>> >>>>> In my opinion the device tree is a major hurdle to making progress >>>>> with the Beaglebones. If you google you will get a bunch of out-dated >>>>> information, so be careful what you read on the net. Perhaps someone >>>>> will >>>>> suggest single source of accurate information on this topic. >>>>> >>>>> Regards, >>>>> Greg >>>>> >>>>> -- >>>>> For more options, visit http://beagleboard.org/discuss >>>>> --- >>>>> You received this message because you are subscribed to a topic in the >>>>> Google Groups "BeagleBoard" group. >>>>> To unsubscribe from this topic, visit >>>>> https://groups.google.com/d/topic/beagleboard/cLDC6Le0Z4A/unsubscribe. >>>>> To unsubscribe from this group and all its topics, send an email to >>>>> [email protected]. >>>>> To view this discussion on the web visit >>>>> https://groups.google.com/d/msgid/beagleboard/2a565144-1715-4bc2-ae74-b6415a30dea1%40googlegroups.com >>>>> >>>>> <https://groups.google.com/d/msgid/beagleboard/2a565144-1715-4bc2-ae74-b6415a30dea1%40googlegroups.com?utm_medium=email&utm_source=footer> >>>>> . >>>>> For more options, visit https://groups.google.com/d/optout. >>>>> >>>> -- >>>> For more options, visit http://beagleboard.org/discuss >>>> --- >>>> You received this message because you are subscribed to the Google >>>> Groups "BeagleBoard" group. >>>> To unsubscribe from this group and stop receiving emails from it, send >>>> an email to [email protected]. >>>> To view this discussion on the web visit >>>> https://groups.google.com/d/msgid/beagleboard/CAEwN%2BMB16im1R%2BtCPjpSk86sQ-2Lr4207yRU9Y_OrCBZfqeOEw%40mail.gmail.com >>>> >>>> <https://groups.google.com/d/msgid/beagleboard/CAEwN%2BMB16im1R%2BtCPjpSk86sQ-2Lr4207yRU9Y_OrCBZfqeOEw%40mail.gmail.com?utm_medium=email&utm_source=footer> >>>> . >>>> >>>> For more options, visit https://groups.google.com/d/optout. >>>> >>> >>> -- >> For more options, visit http://beagleboard.org/discuss >> --- >> You received this message because you are subscribed to the Google Groups >> "BeagleBoard" group. >> To unsubscribe from this group and stop receiving emails from it, send an >> email to [email protected] <javascript:>. >> To view this discussion on the web visit >> https://groups.google.com/d/msgid/beagleboard/483a935f-3d71-47e6-85db-dad2313dcd48%40googlegroups.com >> >> <https://groups.google.com/d/msgid/beagleboard/483a935f-3d71-47e6-85db-dad2313dcd48%40googlegroups.com?utm_medium=email&utm_source=footer> >> . >> >> For more options, visit https://groups.google.com/d/optout. >> > > -- For more options, visit http://beagleboard.org/discuss --- You received this message because you are subscribed to the Google Groups "BeagleBoard" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/beagleboard/f1b09e8f-2975-4f6a-a890-444f01b9d4d6%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.
