You should speak to Jason Reeder (author of PRU examples) or Suman Anna (author of RPMSG) and learn how to use the virtualio. In essence, you can create peripherals on the PRU but to Linux they will look like a peripheral on the SOC. I’m currently traveling so I don’t have access to my desktop. I think TI define this as firmware defined peripherals.
Regards, John > On Aug 1, 2016, at 3:50 PM, Mark A. Yoder <[email protected]> wrote: > > I have a question about building a kernel driver for my PRU software pwm that > mimics the hardware pwm sysfs interface. > Background: > I have a simple kernel driver[1] now working with my PRU based pwd code. > Once you have the code running on the PRU you can: > bone$ insmod pwm.ko channel=1 > bone$ cd /sys/kernel/pwm/pwm1 > bone$ ls > duty_cycle enable period > bone$ echo 2000 > period > bone$ echo 1000 > duty_cycle > > Now you have a pwm signal on channel 1 with a period of 2000ns and an on time > of 1000 ns. > > The hardware pwms appear in /sys/class/pwm. You can use them via: > bone$ cd /sys/class/pwm/pwmchip0 > bone$ echo 0 > export > bone$ cd pwm0 > bone$ echo 2000 > period > bone$ echo 1000 > duty_cycle > > The question: > How do I build a kernel module so my software pwms will appear along with the > hardware pwms? That is, I want my software pwms to appear as pwmchipX and > then you could: > bone$ cd /sys/class/pwm/pwmchipX > bone$ echo 0 > export > bone$ cd pwm0 > bone$ echo 2000 > period > bone$ echo 1000 > duty_cycle > To run the PRU pwms. > > Does anyone have pointers to kernel tutorials to do this? > > Thanks... > > --Mark > [1] > https://github.com/MarkAYoder/BeagleBoard-exercises/tree/master/pru/examples/pwm/kernel > > -- > For more options, visit http://beagleboard.org/discuss > <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] > <mailto:[email protected]>. > To view this discussion on the web visit > https://groups.google.com/d/msgid/beagleboard/b8ef1af3-914f-48cd-b555-22b47dee072f%40googlegroups.com > > <https://groups.google.com/d/msgid/beagleboard/b8ef1af3-914f-48cd-b555-22b47dee072f%40googlegroups.com?utm_medium=email&utm_source=footer>. > For more options, visit https://groups.google.com/d/optout > <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/D93C7AD4-C861-4CEB-B571-AFC1ACF55902%40gmail.com. For more options, visit https://groups.google.com/d/optout.
