OMAP4: hwmod: Naming of address space
Added a name to address space belonging to SDMA and MPU facilitating the driver to get the address space info by name. Added a revision member inorder to facilitate the driver to differentiate between mcbsp in different omap. Also added a platform_get_irq in probe to get irq number by index since from OMAP4, there will be a single irq line. Signed-off-by: Benoit Cousson <b-cousson@ti.com> Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com> Signed-off-by: Tony Lindgren <tony@atomide.com>
This commit is contained in:
parent
dc48e5fc78
commit
cb7e9ded32
3 changed files with 13 additions and 0 deletions
|
@ -25,6 +25,7 @@
|
|||
#include <plat/gpio.h>
|
||||
#include <plat/dma.h>
|
||||
#include <plat/mcspi.h>
|
||||
#include <plat/mcbsp.h>
|
||||
|
||||
#include "omap_hwmod_common_data.h"
|
||||
|
||||
|
@ -2737,6 +2738,7 @@ static struct omap_hwmod_class_sysconfig omap44xx_mcbsp_sysc = {
|
|||
static struct omap_hwmod_class omap44xx_mcbsp_hwmod_class = {
|
||||
.name = "mcbsp",
|
||||
.sysc = &omap44xx_mcbsp_sysc,
|
||||
.rev = MCBSP_CONFIG_TYPE4,
|
||||
};
|
||||
|
||||
/* mcbsp1 */
|
||||
|
@ -2752,6 +2754,7 @@ static struct omap_hwmod_dma_info omap44xx_mcbsp1_sdma_reqs[] = {
|
|||
|
||||
static struct omap_hwmod_addr_space omap44xx_mcbsp1_addrs[] = {
|
||||
{
|
||||
.name = "mpu",
|
||||
.pa_start = 0x40122000,
|
||||
.pa_end = 0x401220ff,
|
||||
.flags = ADDR_TYPE_RT
|
||||
|
@ -2770,6 +2773,7 @@ static struct omap_hwmod_ocp_if omap44xx_l4_abe__mcbsp1 = {
|
|||
|
||||
static struct omap_hwmod_addr_space omap44xx_mcbsp1_dma_addrs[] = {
|
||||
{
|
||||
.name = "dma",
|
||||
.pa_start = 0x49022000,
|
||||
.pa_end = 0x490220ff,
|
||||
.flags = ADDR_TYPE_RT
|
||||
|
@ -2823,6 +2827,7 @@ static struct omap_hwmod_dma_info omap44xx_mcbsp2_sdma_reqs[] = {
|
|||
|
||||
static struct omap_hwmod_addr_space omap44xx_mcbsp2_addrs[] = {
|
||||
{
|
||||
.name = "mpu",
|
||||
.pa_start = 0x40124000,
|
||||
.pa_end = 0x401240ff,
|
||||
.flags = ADDR_TYPE_RT
|
||||
|
@ -2841,6 +2846,7 @@ static struct omap_hwmod_ocp_if omap44xx_l4_abe__mcbsp2 = {
|
|||
|
||||
static struct omap_hwmod_addr_space omap44xx_mcbsp2_dma_addrs[] = {
|
||||
{
|
||||
.name = "dma",
|
||||
.pa_start = 0x49024000,
|
||||
.pa_end = 0x490240ff,
|
||||
.flags = ADDR_TYPE_RT
|
||||
|
@ -2894,6 +2900,7 @@ static struct omap_hwmod_dma_info omap44xx_mcbsp3_sdma_reqs[] = {
|
|||
|
||||
static struct omap_hwmod_addr_space omap44xx_mcbsp3_addrs[] = {
|
||||
{
|
||||
.name = "mpu",
|
||||
.pa_start = 0x40126000,
|
||||
.pa_end = 0x401260ff,
|
||||
.flags = ADDR_TYPE_RT
|
||||
|
@ -2912,6 +2919,7 @@ static struct omap_hwmod_ocp_if omap44xx_l4_abe__mcbsp3 = {
|
|||
|
||||
static struct omap_hwmod_addr_space omap44xx_mcbsp3_dma_addrs[] = {
|
||||
{
|
||||
.name = "dma",
|
||||
.pa_start = 0x49026000,
|
||||
.pa_end = 0x490260ff,
|
||||
.flags = ADDR_TYPE_RT
|
||||
|
|
|
@ -39,6 +39,7 @@ static struct platform_device omap_mcbsp##port_nr = { \
|
|||
|
||||
#define MCBSP_CONFIG_TYPE2 0x2
|
||||
#define MCBSP_CONFIG_TYPE3 0x3
|
||||
#define MCBSP_CONFIG_TYPE4 0x4
|
||||
|
||||
#define OMAP7XX_MCBSP1_BASE 0xfffb1000
|
||||
#define OMAP7XX_MCBSP2_BASE 0xfffb1800
|
||||
|
|
|
@ -1812,6 +1812,10 @@ static int __devinit omap_mcbsp_probe(struct platform_device *pdev)
|
|||
mcbsp->tx_irq = platform_get_irq_byname(pdev, "tx");
|
||||
mcbsp->rx_irq = platform_get_irq_byname(pdev, "rx");
|
||||
|
||||
/* From OMAP4 there will be a single irq line */
|
||||
if (mcbsp->tx_irq == -ENXIO)
|
||||
mcbsp->tx_irq = platform_get_irq(pdev, 0);
|
||||
|
||||
res = platform_get_resource_byname(pdev, IORESOURCE_DMA, "rx");
|
||||
if (!res) {
|
||||
dev_err(&pdev->dev, "%s:mcbsp%d has invalid rx DMA channel\n",
|
||||
|
|
Loading…
Reference in a new issue