All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v4 00/11] pruss mfd drivers.
@ 2011-04-22 12:08 Subhasish Ghosh
  2011-04-22 12:08   ` Subhasish Ghosh
                   ` (10 more replies)
  0 siblings, 11 replies; 162+ messages in thread
From: Subhasish Ghosh @ 2011-04-22 12:08 UTC (permalink / raw)
  To: linux-arm-kernel

				PRUSS Functional Block Diagram
		/-------------------------------------------------------\
		|							|
		|			|------|			|
	32GPO<------->PRU CORE-0 <----->|      |<----> DRAM 0		|
	30GPI<------->(4KB IRAM)	|  S   |	(512 Bytes)	|
		|			|      |			|
	32GPO<------->PRU CORE-1 <----->|  C   |<----> DRAM 1		|
	30GPI<------->(4KB IRAM)	|      |	(512 Bytes)	|
		|			|  R   |			|
		|			|      |			|
Ints to ARM/	|	Interrupt <---->|      |-------------------------> Master I/F (to SCR2)
DSP INTC <------------->Controller	|      |<------------------------- Slave I/F (from SCR2)
Events from	|	(INTC)		|------|			|
Periph + PRUs	|							|
		\-------------------------------------------------------/

Programmable Realtime Unit (PRU) is basically a 32-bit RISC
processor available within TI's DA8XX SOCs. It consists of local
instruction and data RAM and also has access to SOC resources
via a Switched Central Resource (SCR).

There are two PRU's available within DA8XX SOC's PRUSS, hence providing
two execution cores. Devices/Protocols can be emulated on these utilizing
either both or only one of the PRUs independently.

The rational behind the MFD driver being the fact that multiple devices can
be implemented on the cores independently.
It's also possible, as in our case, to implement a single device on both
the PRU's resulting in improved load sharing.

A detailed description is also available here:
http://processors.wiki.ti.com/index.php/Programmable_Realtime_Unit_Subsystem

version 4:
=========
MFD:
* added mfd_cells in the board file
* exported seperate multiwrite/read functions
* removed clk_get_pruss api
* improved coding style
* removed code duplications
* renamed files to pruss based
* used make C=1
* added __iomem cookie for io addresses
* used iowrite/read instead of __raw variants

SUART:
* changes for the new mfd_cell implementation
* code cleanup
* used iowrite/read instead of __raw variants
* used make C=1

NOTE:
* as requested by the owner the CAN driver patch is submitted seperately.

version 3:
=========
* added locking to mfd driver.
* removed typedefs.
* resource allocation through mfd.
* renamed da8xx_register_pruss to da8xx_register_pruss_mfd.
* removed da8xx_pruss directory for suart.
* combined all suart headers.
* modified register structure for pruss.
* added function clk_add_alias_mcasp.
* suart api layer cleanup.
* removed semaphore usage.
* updated to latest internal code base.
* removed __suart_err/dbg.

version 2:
==========
* added pruss TTY Soft-UART driver.
* added pruss Soft-UART board and platform changes.
* fixed previous review comments.
* reordered patch sequence.

version 1:
==========
* added pruss mfd driver.

Subhasish Ghosh (11):
  mfd: add pruss mfd driver.
  da850: add pruss clock.
  da850: pruss platform specific additions.
  da850: pruss board specific additions.
  mfd: pruss SUART private data.
  da850: pruss SUART board specific additions.
  da850: pruss SUART platform specific additions.
  tty: add pruss SUART driver
  mfd: pruss CAN private data.
  da850: pruss CAN platform specific additions.
  da850: pruss CAN board specific additions.

 arch/arm/mach-davinci/board-da850-evm.c    |  104 ++
 arch/arm/mach-davinci/da850.c              |   12 +
 arch/arm/mach-davinci/devices-da8xx.c      |   81 ++
 arch/arm/mach-davinci/include/mach/da8xx.h |    4 +
 arch/arm/mach-davinci/include/mach/mux.h   |    5 +
 drivers/mfd/Kconfig                        |   10 +
 drivers/mfd/Makefile                       |    1 +
 drivers/mfd/pruss.c                        |  513 +++++++++
 drivers/tty/serial/Kconfig                 |   18 +
 drivers/tty/serial/Makefile                |    6 +
 drivers/tty/serial/pruss_suart.c           | 1061 +++++++++++++++++
 drivers/tty/serial/pruss_suart.h           | 1038 +++++++++++++++++
 drivers/tty/serial/pruss_suart_api.c       | 1710 ++++++++++++++++++++++++++++
 drivers/tty/serial/pruss_suart_utils.c     |  393 +++++++
 include/linux/mfd/pruss.h                  |  140 +++
 include/linux/mfd/pruss_core.h             |  128 +++
 include/linux/serial_core.h                |    2 +
 17 files changed, 5226 insertions(+), 0 deletions(-)
 create mode 100644 drivers/mfd/pruss.c
 create mode 100644 drivers/tty/serial/pruss_suart.c
 create mode 100644 drivers/tty/serial/pruss_suart.h
 create mode 100644 drivers/tty/serial/pruss_suart_api.c
 create mode 100644 drivers/tty/serial/pruss_suart_utils.c
 create mode 100644 include/linux/mfd/pruss.h
 create mode 100644 include/linux/mfd/pruss_core.h

-- 
1.7.2.3

^ permalink raw reply	[flat|nested] 162+ messages in thread
* Re: [PATCH v4 01/11] mfd: add pruss mfd driver.
@ 2011-05-20  5:38 Subhasish Ghosh
  0 siblings, 0 replies; 162+ messages in thread
From: Subhasish Ghosh @ 2011-05-20  5:38 UTC (permalink / raw)
  To: Arnd Bergmann, Mark Brown
  Cc: Nori, Sekhar, linux-arm-kernel, davinci-linux-open-source, sachi,
	Samuel Ortiz, open list, Watkins, Melissa

Hi,

Anything regarding this.

>>> > My whole point has been that you register them from the main pruss 
>>> > driver
>>> > based on run-time data instead of compile-time pre-configured stuff in 
>>> > the
>>> > board file.
>>>
>>> I'm not so sure - if the usage is fixed as a result of the pins on the
>>> device being wired a CAN bus then it seems reasonable to tell the system
>>> about that so it'll stop the user trying to run SPI or something against
>>> it at runtime.
>>
>> I'm mostly worried about the case where the pins are not hardwired for
>> some specific function -- Subhasish was mentioning that these may be
>> implemented using a pluggable extension board and I want to make sure
>> that you are not required to recompile the kernel when changing the
>> extension board.
>>
>> However, you made a good point that in many cases it will be hardwired
>> so it may be valuable to preconfigure this in a way that does not require
>> scripts to set up variables in sysfs when you already know what is there.
>>
>> Note that my suggestion to put the device name into the firmware file
>> covers this case, because you can then simply ship a firmware blob that
>> matches the hardware configuration. Thinking about the future device
>> tree setup, you can even put the firmware blob itself into a property
>> in the device tree file.
>>
>
> I earlier had an implementation where I used a pruss_devices structure
> in the board file.
>
> http://linux.omap.com/pipermail/davinci-linux-open-source/
> 2011-March/022339.html.
>
> We can use this implementation along with the sysfs to load the devices
> runtime. The configs that I have in the board_file for the devices 
> structure, are fixed for a board. To swap the boards, we do not need to
> re-compile the kernel.
>
>
> 

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

end of thread, other threads:[~2011-05-30 15:28 UTC | newest]

Thread overview: 162+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2011-04-22 12:08 [PATCH v4 00/11] pruss mfd drivers Subhasish Ghosh
2011-04-22 11:50 ` [PATCH v4 08/11] tty: add pruss SUART driver Subhasish Ghosh
2011-04-22 12:08   ` Subhasish Ghosh
2011-04-25 21:20   ` Greg KH
2011-04-25 21:20     ` Greg KH
2011-04-26  6:51     ` Nori, Sekhar
2011-04-26  6:51       ` Nori, Sekhar
2011-04-26 12:45       ` Greg KH
2011-04-26 12:45         ` Greg KH
2011-04-27  5:23         ` Subhasish Ghosh
2011-04-27  5:23           ` Subhasish Ghosh
2011-04-27 11:19           ` Nori, Sekhar
2011-04-27 11:19             ` Nori, Sekhar
2011-04-27 13:15             ` Subhasish Ghosh
2011-04-27 13:15               ` Subhasish Ghosh
2011-04-27 17:50               ` Nori, Sekhar
2011-04-27 17:50                 ` Nori, Sekhar
2011-05-02  8:34                 ` Subhasish Ghosh
2011-05-02  8:34                   ` Subhasish Ghosh
2011-05-02 17:15                   ` Nori, Sekhar
2011-05-02 17:15                     ` Nori, Sekhar
2011-05-10 10:54             ` Subhasish Ghosh
2011-05-10 10:54               ` Subhasish Ghosh
2011-05-10 13:13               ` Nori, Sekhar
2011-05-10 13:13                 ` Nori, Sekhar
2011-05-13 12:10                 ` Subhasish Ghosh
2011-05-13 12:10                   ` Subhasish Ghosh
2011-05-09 13:39   ` Subhasish Ghosh
2011-05-09 13:39     ` Subhasish Ghosh
2011-05-09 13:46     ` Alan Cox
2011-05-09 13:46       ` Alan Cox
2011-05-09 13:50       ` Subhasish Ghosh
2011-05-09 13:50         ` Subhasish Ghosh
2011-05-09 13:55         ` Alan Cox
2011-05-09 13:55           ` Alan Cox
2011-05-10  6:17           ` Subhasish Ghosh
2011-05-10  6:17             ` Subhasish Ghosh
2011-05-10 13:32             ` Alan Cox
2011-05-10 13:32               ` Alan Cox
2011-05-11  7:01               ` Subhasish Ghosh
2011-05-11  7:01                 ` Subhasish Ghosh
2011-05-11 10:35                 ` Alan Cox
2011-05-11 10:35                   ` Alan Cox
2011-04-22 12:08 ` [PATCH v4 01/11] mfd: add pruss mfd driver Subhasish Ghosh
2011-04-22 12:08   ` Subhasish Ghosh
2011-04-22 16:00   ` Marc Kleine-Budde
2011-04-22 16:00     ` Marc Kleine-Budde
2011-04-27  6:39     ` Subhasish Ghosh
2011-04-27  6:39       ` Subhasish Ghosh
2011-04-27  7:29       ` Marc Kleine-Budde
2011-04-27  7:29         ` Marc Kleine-Budde
2011-04-27  9:12         ` Russell King - ARM Linux
2011-04-27  9:12           ` Russell King - ARM Linux
2011-04-27 13:18           ` Subhasish Ghosh
2011-04-27 13:18             ` Subhasish Ghosh
2011-04-27 13:35             ` Marc Kleine-Budde
2011-04-27 13:35               ` Marc Kleine-Budde
2011-04-28  7:22               ` Subhasish Ghosh
2011-04-28  7:22                 ` Subhasish Ghosh
2011-04-28  7:46                 ` Arnd Bergmann
2011-04-28  7:46                   ` Arnd Bergmann
2011-04-27 13:16   ` Arnd Bergmann
2011-04-27 13:16     ` Arnd Bergmann
2011-04-27 13:38     ` Subhasish Ghosh
2011-04-27 13:38       ` Subhasish Ghosh
2011-04-27 14:05       ` Arnd Bergmann
2011-04-27 14:05         ` Arnd Bergmann
2011-04-28  7:17         ` Subhasish Ghosh
2011-04-28  7:17           ` Subhasish Ghosh
2011-04-28  7:35           ` Arnd Bergmann
2011-04-28  7:35             ` Arnd Bergmann
2011-05-04  7:18             ` Subhasish Ghosh
2011-05-04  7:18               ` Subhasish Ghosh
2011-05-04 13:44               ` Arnd Bergmann
2011-05-04 13:44                 ` Arnd Bergmann
2011-05-04 14:38               ` Nori, Sekhar
2011-05-04 14:38                 ` Nori, Sekhar
2011-05-05 13:25                 ` Subhasish Ghosh
2011-05-05 13:25                   ` Subhasish Ghosh
2011-05-05 14:12                   ` Arnd Bergmann
2011-05-05 14:12                     ` Arnd Bergmann
2011-05-10  9:53                     ` Subhasish Ghosh
2011-05-10  9:53                       ` Subhasish Ghosh
2011-05-10 21:44                       ` Arnd Bergmann
2011-05-10 21:44                         ` Arnd Bergmann
2011-05-11  9:28                         ` Subhasish Ghosh
2011-05-11  9:28                           ` Subhasish Ghosh
2011-05-11 20:03                           ` Arnd Bergmann
2011-05-11 20:03                             ` Arnd Bergmann
2011-05-13 10:55                             ` Subhasish Ghosh
2011-05-13 10:55                               ` Subhasish Ghosh
2011-05-14 16:01                               ` Mark Brown
2011-05-14 16:01                                 ` Mark Brown
2011-05-14 20:33                                 ` Arnd Bergmann
2011-05-14 20:33                                   ` Arnd Bergmann
2011-05-14 22:14                                   ` Mark Brown
2011-05-14 22:14                                     ` Mark Brown
2011-05-15  9:33                                     ` Arnd Bergmann
2011-05-15  9:33                                       ` Arnd Bergmann
2011-05-16  6:06                                       ` Subhasish Ghosh
2011-05-16  6:06                                         ` Subhasish Ghosh
2011-05-23 15:30                                         ` Arnd Bergmann
2011-05-23 15:30                                           ` Arnd Bergmann
2011-05-24 12:17                                           ` Subhasish Ghosh
2011-05-24 12:17                                             ` Subhasish Ghosh
2011-05-24 12:40                                             ` Arnd Bergmann
2011-05-24 12:40                                               ` Arnd Bergmann
2011-05-24 13:43                                               ` Greg KH
2011-05-24 13:43                                                 ` Greg KH
2011-05-30 13:25                                                 ` Subhasish Ghosh
2011-05-30 13:25                                                   ` Subhasish Ghosh
2011-05-30 14:02                                                   ` Greg KH
2011-05-30 14:02                                                     ` Greg KH
2011-05-30 14:38                                                     ` Subhasish Ghosh
2011-05-30 14:38                                                       ` Subhasish Ghosh
2011-05-30 14:04                                                   ` Arnd Bergmann
2011-05-30 14:04                                                     ` Arnd Bergmann
2011-05-30 14:13                                                     ` Subhasish Ghosh
2011-05-30 14:13                                                       ` Subhasish Ghosh
2011-05-30 14:43                                                       ` Arnd Bergmann
2011-05-30 14:43                                                         ` Arnd Bergmann
2011-05-30 15:28                                                         ` Subhasish Ghosh
2011-05-30 15:28                                                           ` Subhasish Ghosh
2011-05-22 20:24                                   ` Samuel Ortiz
2011-05-22 20:24                                     ` Samuel Ortiz
2011-05-22 20:21                             ` Samuel Ortiz
2011-05-22 20:21                               ` Samuel Ortiz
2011-05-23 15:13                               ` Arnd Bergmann
2011-05-23 15:13                                 ` Arnd Bergmann
2011-04-22 12:08 ` [PATCH v4 02/11] da850: add pruss clock Subhasish Ghosh
2011-04-22 12:08   ` Subhasish Ghosh
2011-04-22 12:08 ` [PATCH v4 03/11] da850: pruss platform specific additions Subhasish Ghosh
2011-04-22 12:08   ` Subhasish Ghosh
2011-04-26 11:06   ` Sergei Shtylyov
2011-04-26 11:06     ` Sergei Shtylyov
2011-04-27  6:43     ` Subhasish Ghosh
2011-04-27  6:43       ` Subhasish Ghosh
2011-04-27 10:05       ` Sergei Shtylyov
2011-04-27 10:05         ` Sergei Shtylyov
2011-04-27 10:19         ` Subhasish Ghosh
2011-04-27 10:19           ` Subhasish Ghosh
2011-04-22 12:08 ` [PATCH v4 04/11] da850: pruss board " Subhasish Ghosh
2011-04-22 12:08   ` Subhasish Ghosh
2011-04-22 12:08 ` [PATCH v4 05/11] mfd: pruss SUART private data Subhasish Ghosh
2011-04-22 12:08   ` Subhasish Ghosh
2011-04-22 12:08 ` [PATCH v4 06/11] da850: pruss SUART board specific additions Subhasish Ghosh
2011-04-22 12:08   ` Subhasish Ghosh
2011-04-22 12:08 ` [PATCH v4 07/11] da850: pruss SUART platform " Subhasish Ghosh
2011-04-22 12:08   ` Subhasish Ghosh
2011-04-22 12:08 ` [PATCH v4 09/11] mfd: pruss CAN private data Subhasish Ghosh
2011-04-22 12:08   ` Subhasish Ghosh
2011-04-22 12:08 ` [PATCH v4 10/11] da850: pruss CAN platform specific additions Subhasish Ghosh
2011-04-22 12:08   ` Subhasish Ghosh
2011-04-22 12:08 ` [PATCH v4 11/11] da850: pruss CAN board " Subhasish Ghosh
2011-04-22 12:08   ` Subhasish Ghosh
2011-04-22 16:03   ` Marc Kleine-Budde
2011-04-22 16:03     ` Marc Kleine-Budde
2011-04-26 10:57   ` Sergei Shtylyov
2011-04-26 10:57     ` Sergei Shtylyov
2011-04-27  7:03     ` Subhasish Ghosh
2011-04-27  7:03       ` Subhasish Ghosh
2011-05-20  5:38 [PATCH v4 01/11] mfd: add pruss mfd driver Subhasish Ghosh

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.