Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
L
linux
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Kirill Smelkov
linux
Commits
1770a898
Commit
1770a898
authored
May 19, 2010
by
Ben Dooks
Browse files
Options
Browse Files
Download
Plain Diff
ARM: Merge for-2635/s5p-audio
Merge branch 'for-2635/s5p-audio' into for-linus/samsung2
parents
1e8ff636
73455207
Changes
14
Show whitespace changes
Inline
Side-by-side
Showing
14 changed files
with
710 additions
and
0 deletions
+710
-0
arch/arm/mach-s5p6440/Makefile
arch/arm/mach-s5p6440/Makefile
+3
-0
arch/arm/mach-s5p6440/dev-audio.c
arch/arm/mach-s5p6440/dev-audio.c
+127
-0
arch/arm/mach-s5p6440/include/mach/map.h
arch/arm/mach-s5p6440/include/mach/map.h
+6
-0
arch/arm/mach-s5p6440/mach-smdk6440.c
arch/arm/mach-s5p6440/mach-smdk6440.c
+1
-0
arch/arm/mach-s5p6442/Makefile
arch/arm/mach-s5p6442/Makefile
+3
-0
arch/arm/mach-s5p6442/dev-audio.c
arch/arm/mach-s5p6442/dev-audio.c
+197
-0
arch/arm/mach-s5p6442/include/mach/map.h
arch/arm/mach-s5p6442/include/mach/map.h
+8
-0
arch/arm/mach-s5p6442/mach-smdk6442.c
arch/arm/mach-s5p6442/mach-smdk6442.c
+1
-0
arch/arm/mach-s5pv210/Makefile
arch/arm/mach-s5pv210/Makefile
+4
-0
arch/arm/mach-s5pv210/dev-audio.c
arch/arm/mach-s5pv210/dev-audio.c
+327
-0
arch/arm/mach-s5pv210/include/mach/map.h
arch/arm/mach-s5pv210/include/mach/map.h
+13
-0
arch/arm/mach-s5pv210/mach-smdkc110.c
arch/arm/mach-s5pv210/mach-smdkc110.c
+2
-0
arch/arm/mach-s5pv210/mach-smdkv210.c
arch/arm/mach-s5pv210/mach-smdkv210.c
+2
-0
arch/arm/plat-samsung/include/plat/devs.h
arch/arm/plat-samsung/include/plat/devs.h
+16
-0
No files found.
arch/arm/mach-s5p6440/Makefile
View file @
1770a898
...
...
@@ -17,3 +17,6 @@ obj-$(CONFIG_CPU_S5P6440) += cpu.o init.o clock.o gpio.o dma.o
# machine support
obj-$(CONFIG_MACH_SMDK6440)
+=
mach-smdk6440.o
# device support
obj-y
+=
dev-audio.o
arch/arm/mach-s5p6440/dev-audio.c
0 → 100644
View file @
1770a898
/* linux/arch/arm/mach-s5p6440/dev-audio.c
*
* Copyright (c) 2010 Samsung Electronics Co. Ltd
* Jaswinder Singh <jassi.brar@samsung.com>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 as
* published by the Free Software Foundation.
*/
#include <linux/platform_device.h>
#include <linux/dma-mapping.h>
#include <plat/gpio-cfg.h>
#include <plat/audio.h>
#include <mach/gpio.h>
#include <mach/map.h>
#include <mach/dma.h>
#include <mach/irqs.h>
static
int
s5p6440_cfg_i2s
(
struct
platform_device
*
pdev
)
{
/* configure GPIO for i2s port */
switch
(
pdev
->
id
)
{
case
-
1
:
s3c_gpio_cfgpin
(
S5P6440_GPR
(
4
),
S3C_GPIO_SFN
(
5
));
s3c_gpio_cfgpin
(
S5P6440_GPR
(
5
),
S3C_GPIO_SFN
(
5
));
s3c_gpio_cfgpin
(
S5P6440_GPR
(
6
),
S3C_GPIO_SFN
(
5
));
s3c_gpio_cfgpin
(
S5P6440_GPR
(
7
),
S3C_GPIO_SFN
(
5
));
s3c_gpio_cfgpin
(
S5P6440_GPR
(
8
),
S3C_GPIO_SFN
(
5
));
s3c_gpio_cfgpin
(
S5P6440_GPR
(
13
),
S3C_GPIO_SFN
(
5
));
s3c_gpio_cfgpin
(
S5P6440_GPR
(
14
),
S3C_GPIO_SFN
(
5
));
break
;
default:
printk
(
KERN_ERR
"Invalid Device %d
\n
"
,
pdev
->
id
);
return
-
EINVAL
;
}
return
0
;
}
static
struct
s3c_audio_pdata
s3c_i2s_pdata
=
{
.
cfg_gpio
=
s5p6440_cfg_i2s
,
};
static
struct
resource
s5p6440_iis0_resource
[]
=
{
[
0
]
=
{
.
start
=
S5P6440_PA_I2S
,
.
end
=
S5P6440_PA_I2S
+
0x100
-
1
,
.
flags
=
IORESOURCE_MEM
,
},
[
1
]
=
{
.
start
=
DMACH_I2S0_TX
,
.
end
=
DMACH_I2S0_TX
,
.
flags
=
IORESOURCE_DMA
,
},
[
2
]
=
{
.
start
=
DMACH_I2S0_RX
,
.
end
=
DMACH_I2S0_RX
,
.
flags
=
IORESOURCE_DMA
,
},
};
struct
platform_device
s5p6440_device_iis
=
{
.
name
=
"s3c64xx-iis-v4"
,
.
id
=
-
1
,
.
num_resources
=
ARRAY_SIZE
(
s5p6440_iis0_resource
),
.
resource
=
s5p6440_iis0_resource
,
.
dev
=
{
.
platform_data
=
&
s3c_i2s_pdata
,
},
};
/* PCM Controller platform_devices */
static
int
s5p6440_pcm_cfg_gpio
(
struct
platform_device
*
pdev
)
{
switch
(
pdev
->
id
)
{
case
0
:
s3c_gpio_cfgpin
(
S5P6440_GPR
(
7
),
S3C_GPIO_SFN
(
2
));
s3c_gpio_cfgpin
(
S5P6440_GPR
(
13
),
S3C_GPIO_SFN
(
2
));
s3c_gpio_cfgpin
(
S5P6440_GPR
(
14
),
S3C_GPIO_SFN
(
2
));
s3c_gpio_cfgpin
(
S5P6440_GPR
(
8
),
S3C_GPIO_SFN
(
2
));
s3c_gpio_cfgpin
(
S5P6440_GPR
(
6
),
S3C_GPIO_SFN
(
2
));
break
;
default:
printk
(
KERN_DEBUG
"Invalid PCM Controller number!"
);
return
-
EINVAL
;
}
return
0
;
}
static
struct
s3c_audio_pdata
s3c_pcm_pdata
=
{
.
cfg_gpio
=
s5p6440_pcm_cfg_gpio
,
};
static
struct
resource
s5p6440_pcm0_resource
[]
=
{
[
0
]
=
{
.
start
=
S5P6440_PA_PCM
,
.
end
=
S5P6440_PA_PCM
+
0x100
-
1
,
.
flags
=
IORESOURCE_MEM
,
},
[
1
]
=
{
.
start
=
DMACH_PCM0_TX
,
.
end
=
DMACH_PCM0_TX
,
.
flags
=
IORESOURCE_DMA
,
},
[
2
]
=
{
.
start
=
DMACH_PCM0_RX
,
.
end
=
DMACH_PCM0_RX
,
.
flags
=
IORESOURCE_DMA
,
},
};
struct
platform_device
s5p6440_device_pcm
=
{
.
name
=
"samsung-pcm"
,
.
id
=
0
,
.
num_resources
=
ARRAY_SIZE
(
s5p6440_pcm0_resource
),
.
resource
=
s5p6440_pcm0_resource
,
.
dev
=
{
.
platform_data
=
&
s3c_pcm_pdata
,
},
};
arch/arm/mach-s5p6440/include/mach/map.h
View file @
1770a898
...
...
@@ -63,6 +63,12 @@
#define S5P6440_PA_SDRAM (0x20000000)
#define S5P_PA_SDRAM S5P6440_PA_SDRAM
/* I2S */
#define S5P6440_PA_I2S 0xF2000000
/* PCM */
#define S5P6440_PA_PCM 0xF2100000
/* compatibiltiy defines. */
#define S3C_PA_UART S5P6440_PA_UART
#define S3C_PA_IIC S5P6440_PA_IIC0
...
...
arch/arm/mach-s5p6440/mach-smdk6440.c
View file @
1770a898
...
...
@@ -84,6 +84,7 @@ static struct s3c2410_uartcfg smdk6440_uartcfgs[] __initdata = {
};
static
struct
platform_device
*
smdk6440_devices
[]
__initdata
=
{
&
s5p6440_device_iis
,
};
static
void
__init
smdk6440_map_io
(
void
)
...
...
arch/arm/mach-s5p6442/Makefile
View file @
1770a898
...
...
@@ -17,3 +17,6 @@ obj-$(CONFIG_CPU_S5P6442) += cpu.o init.o clock.o dma.o
# machine support
obj-$(CONFIG_MACH_SMDK6442)
+=
mach-smdk6442.o
# device support
obj-y
+=
dev-audio.o
arch/arm/mach-s5p6442/dev-audio.c
0 → 100644
View file @
1770a898
/* linux/arch/arm/mach-s5p6442/dev-audio.c
*
* Copyright (c) 2010 Samsung Electronics Co. Ltd
* Jaswinder Singh <jassi.brar@samsung.com>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 as
* published by the Free Software Foundation.
*/
#include <linux/platform_device.h>
#include <linux/dma-mapping.h>
#include <plat/gpio-cfg.h>
#include <plat/audio.h>
#include <mach/gpio.h>
#include <mach/map.h>
#include <mach/dma.h>
#include <mach/irqs.h>
static
int
s5p6442_cfg_i2s
(
struct
platform_device
*
pdev
)
{
/* configure GPIO for i2s port */
switch
(
pdev
->
id
)
{
case
1
:
s3c_gpio_cfgpin
(
S5P6442_GPC1
(
0
),
S3C_GPIO_SFN
(
2
));
s3c_gpio_cfgpin
(
S5P6442_GPC1
(
1
),
S3C_GPIO_SFN
(
2
));
s3c_gpio_cfgpin
(
S5P6442_GPC1
(
2
),
S3C_GPIO_SFN
(
2
));
s3c_gpio_cfgpin
(
S5P6442_GPC1
(
3
),
S3C_GPIO_SFN
(
2
));
s3c_gpio_cfgpin
(
S5P6442_GPC1
(
4
),
S3C_GPIO_SFN
(
2
));
break
;
case
-
1
:
s3c_gpio_cfgpin
(
S5P6442_GPC0
(
0
),
S3C_GPIO_SFN
(
2
));
s3c_gpio_cfgpin
(
S5P6442_GPC0
(
1
),
S3C_GPIO_SFN
(
2
));
s3c_gpio_cfgpin
(
S5P6442_GPC0
(
2
),
S3C_GPIO_SFN
(
2
));
s3c_gpio_cfgpin
(
S5P6442_GPC0
(
3
),
S3C_GPIO_SFN
(
2
));
s3c_gpio_cfgpin
(
S5P6442_GPC0
(
4
),
S3C_GPIO_SFN
(
2
));
break
;
default:
printk
(
KERN_ERR
"Invalid Device %d
\n
"
,
pdev
->
id
);
return
-
EINVAL
;
}
return
0
;
}
static
struct
s3c_audio_pdata
s3c_i2s_pdata
=
{
.
cfg_gpio
=
s5p6442_cfg_i2s
,
};
static
struct
resource
s5p6442_iis0_resource
[]
=
{
[
0
]
=
{
.
start
=
S5P6442_PA_I2S0
,
.
end
=
S5P6442_PA_I2S0
+
0x100
-
1
,
.
flags
=
IORESOURCE_MEM
,
},
[
1
]
=
{
.
start
=
DMACH_I2S0_TX
,
.
end
=
DMACH_I2S0_TX
,
.
flags
=
IORESOURCE_DMA
,
},
[
2
]
=
{
.
start
=
DMACH_I2S0_RX
,
.
end
=
DMACH_I2S0_RX
,
.
flags
=
IORESOURCE_DMA
,
},
};
struct
platform_device
s5p6442_device_iis0
=
{
.
name
=
"s3c64xx-iis-v4"
,
.
id
=
-
1
,
.
num_resources
=
ARRAY_SIZE
(
s5p6442_iis0_resource
),
.
resource
=
s5p6442_iis0_resource
,
.
dev
=
{
.
platform_data
=
&
s3c_i2s_pdata
,
},
};
static
struct
resource
s5p6442_iis1_resource
[]
=
{
[
0
]
=
{
.
start
=
S5P6442_PA_I2S1
,
.
end
=
S5P6442_PA_I2S1
+
0x100
-
1
,
.
flags
=
IORESOURCE_MEM
,
},
[
1
]
=
{
.
start
=
DMACH_I2S1_TX
,
.
end
=
DMACH_I2S1_TX
,
.
flags
=
IORESOURCE_DMA
,
},
[
2
]
=
{
.
start
=
DMACH_I2S1_RX
,
.
end
=
DMACH_I2S1_RX
,
.
flags
=
IORESOURCE_DMA
,
},
};
struct
platform_device
s5p6442_device_iis1
=
{
.
name
=
"s3c64xx-iis"
,
.
id
=
1
,
.
num_resources
=
ARRAY_SIZE
(
s5p6442_iis1_resource
),
.
resource
=
s5p6442_iis1_resource
,
.
dev
=
{
.
platform_data
=
&
s3c_i2s_pdata
,
},
};
/* PCM Controller platform_devices */
static
int
s5p6442_pcm_cfg_gpio
(
struct
platform_device
*
pdev
)
{
switch
(
pdev
->
id
)
{
case
0
:
s3c_gpio_cfgpin
(
S5P6442_GPC0
(
0
),
S3C_GPIO_SFN
(
3
));
s3c_gpio_cfgpin
(
S5P6442_GPC0
(
1
),
S3C_GPIO_SFN
(
3
));
s3c_gpio_cfgpin
(
S5P6442_GPC0
(
2
),
S3C_GPIO_SFN
(
3
));
s3c_gpio_cfgpin
(
S5P6442_GPC0
(
3
),
S3C_GPIO_SFN
(
3
));
s3c_gpio_cfgpin
(
S5P6442_GPC0
(
4
),
S3C_GPIO_SFN
(
3
));
break
;
case
1
:
s3c_gpio_cfgpin
(
S5P6442_GPC1
(
0
),
S3C_GPIO_SFN
(
3
));
s3c_gpio_cfgpin
(
S5P6442_GPC1
(
1
),
S3C_GPIO_SFN
(
3
));
s3c_gpio_cfgpin
(
S5P6442_GPC1
(
2
),
S3C_GPIO_SFN
(
3
));
s3c_gpio_cfgpin
(
S5P6442_GPC1
(
3
),
S3C_GPIO_SFN
(
3
));
s3c_gpio_cfgpin
(
S5P6442_GPC1
(
4
),
S3C_GPIO_SFN
(
3
));
break
;
default:
printk
(
KERN_DEBUG
"Invalid PCM Controller number!"
);
return
-
EINVAL
;
}
return
0
;
}
static
struct
s3c_audio_pdata
s3c_pcm_pdata
=
{
.
cfg_gpio
=
s5p6442_pcm_cfg_gpio
,
};
static
struct
resource
s5p6442_pcm0_resource
[]
=
{
[
0
]
=
{
.
start
=
S5P6442_PA_PCM0
,
.
end
=
S5P6442_PA_PCM0
+
0x100
-
1
,
.
flags
=
IORESOURCE_MEM
,
},
[
1
]
=
{
.
start
=
DMACH_PCM0_TX
,
.
end
=
DMACH_PCM0_TX
,
.
flags
=
IORESOURCE_DMA
,
},
[
2
]
=
{
.
start
=
DMACH_PCM0_RX
,
.
end
=
DMACH_PCM0_RX
,
.
flags
=
IORESOURCE_DMA
,
},
};
struct
platform_device
s5p6442_device_pcm0
=
{
.
name
=
"samsung-pcm"
,
.
id
=
0
,
.
num_resources
=
ARRAY_SIZE
(
s5p6442_pcm0_resource
),
.
resource
=
s5p6442_pcm0_resource
,
.
dev
=
{
.
platform_data
=
&
s3c_pcm_pdata
,
},
};
static
struct
resource
s5p6442_pcm1_resource
[]
=
{
[
0
]
=
{
.
start
=
S5P6442_PA_PCM1
,
.
end
=
S5P6442_PA_PCM1
+
0x100
-
1
,
.
flags
=
IORESOURCE_MEM
,
},
[
1
]
=
{
.
start
=
DMACH_PCM1_TX
,
.
end
=
DMACH_PCM1_TX
,
.
flags
=
IORESOURCE_DMA
,
},
[
2
]
=
{
.
start
=
DMACH_PCM1_RX
,
.
end
=
DMACH_PCM1_RX
,
.
flags
=
IORESOURCE_DMA
,
},
};
struct
platform_device
s5p6442_device_pcm1
=
{
.
name
=
"samsung-pcm"
,
.
id
=
1
,
.
num_resources
=
ARRAY_SIZE
(
s5p6442_pcm1_resource
),
.
resource
=
s5p6442_pcm1_resource
,
.
dev
=
{
.
platform_data
=
&
s3c_pcm_pdata
,
},
};
arch/arm/mach-s5p6442/include/mach/map.h
View file @
1770a898
...
...
@@ -54,6 +54,14 @@
#define S5P6442_PA_SDRAM (0x20000000)
#define S5P_PA_SDRAM S5P6442_PA_SDRAM
/* I2S */
#define S5P6442_PA_I2S0 0xC0B00000
#define S5P6442_PA_I2S1 0xF2200000
/* PCM */
#define S5P6442_PA_PCM0 0xF2400000
#define S5P6442_PA_PCM1 0xF2500000
/* compatibiltiy defines. */
#define S3C_PA_UART S5P6442_PA_UART
#define S3C_PA_IIC S5P6442_PA_IIC0
...
...
arch/arm/mach-s5p6442/mach-smdk6442.c
View file @
1770a898
...
...
@@ -65,6 +65,7 @@ static struct s3c2410_uartcfg smdk6442_uartcfgs[] __initdata = {
};
static
struct
platform_device
*
smdk6442_devices
[]
__initdata
=
{
&
s5p6442_device_iis0
,
};
static
void
__init
smdk6442_map_io
(
void
)
...
...
arch/arm/mach-s5pv210/Makefile
View file @
1770a898
...
...
@@ -18,3 +18,7 @@ obj-$(CONFIG_CPU_S5PV210) += cpu.o init.o clock.o dma.o gpiolib.o
obj-$(CONFIG_MACH_SMDKV210)
+=
mach-smdkv210.o
obj-$(CONFIG_MACH_SMDKC110)
+=
mach-smdkc110.o
# device support
obj-y
+=
dev-audio.o
arch/arm/mach-s5pv210/dev-audio.c
0 → 100644
View file @
1770a898
/* linux/arch/arm/mach-s5pv210/dev-audio.c
*
* Copyright (c) 2010 Samsung Electronics Co. Ltd
* Jaswinder Singh <jassi.brar@samsung.com>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 as
* published by the Free Software Foundation.
*/
#include <linux/platform_device.h>
#include <linux/dma-mapping.h>
#include <plat/gpio-cfg.h>
#include <plat/audio.h>
#include <mach/gpio.h>
#include <mach/map.h>
#include <mach/dma.h>
#include <mach/irqs.h>
static
int
s5pv210_cfg_i2s
(
struct
platform_device
*
pdev
)
{
/* configure GPIO for i2s port */
switch
(
pdev
->
id
)
{
case
1
:
s3c_gpio_cfgpin
(
S5PV210_GPC0
(
0
),
S3C_GPIO_SFN
(
2
));
s3c_gpio_cfgpin
(
S5PV210_GPC0
(
1
),
S3C_GPIO_SFN
(
2
));
s3c_gpio_cfgpin
(
S5PV210_GPC0
(
2
),
S3C_GPIO_SFN
(
2
));
s3c_gpio_cfgpin
(
S5PV210_GPC0
(
3
),
S3C_GPIO_SFN
(
2
));
s3c_gpio_cfgpin
(
S5PV210_GPC0
(
4
),
S3C_GPIO_SFN
(
2
));
break
;
case
2
:
s3c_gpio_cfgpin
(
S5PV210_GPC1
(
0
),
S3C_GPIO_SFN
(
4
));
s3c_gpio_cfgpin
(
S5PV210_GPC1
(
1
),
S3C_GPIO_SFN
(
4
));
s3c_gpio_cfgpin
(
S5PV210_GPC1
(
2
),
S3C_GPIO_SFN
(
4
));
s3c_gpio_cfgpin
(
S5PV210_GPC1
(
3
),
S3C_GPIO_SFN
(
4
));
s3c_gpio_cfgpin
(
S5PV210_GPC1
(
4
),
S3C_GPIO_SFN
(
4
));
break
;
case
-
1
:
s3c_gpio_cfgpin
(
S5PV210_GPI
(
0
),
S3C_GPIO_SFN
(
2
));
s3c_gpio_cfgpin
(
S5PV210_GPI
(
1
),
S3C_GPIO_SFN
(
2
));
s3c_gpio_cfgpin
(
S5PV210_GPI
(
2
),
S3C_GPIO_SFN
(
2
));
s3c_gpio_cfgpin
(
S5PV210_GPI
(
3
),
S3C_GPIO_SFN
(
2
));
s3c_gpio_cfgpin
(
S5PV210_GPI
(
4
),
S3C_GPIO_SFN
(
2
));
s3c_gpio_cfgpin
(
S5PV210_GPI
(
5
),
S3C_GPIO_SFN
(
2
));
s3c_gpio_cfgpin
(
S5PV210_GPI
(
6
),
S3C_GPIO_SFN
(
2
));
break
;
default:
printk
(
KERN_ERR
"Invalid Device %d
\n
"
,
pdev
->
id
);
return
-
EINVAL
;
}
return
0
;
}
static
struct
s3c_audio_pdata
s3c_i2s_pdata
=
{
.
cfg_gpio
=
s5pv210_cfg_i2s
,
};
static
struct
resource
s5pv210_iis0_resource
[]
=
{
[
0
]
=
{
.
start
=
S5PV210_PA_IIS0
,
.
end
=
S5PV210_PA_IIS0
+
0x100
-
1
,
.
flags
=
IORESOURCE_MEM
,
},
[
1
]
=
{
.
start
=
DMACH_I2S0_TX
,
.
end
=
DMACH_I2S0_TX
,
.
flags
=
IORESOURCE_DMA
,
},
[
2
]
=
{
.
start
=
DMACH_I2S0_RX
,
.
end
=
DMACH_I2S0_RX
,
.
flags
=
IORESOURCE_DMA
,
},
};
struct
platform_device
s5pv210_device_iis0
=
{
.
name
=
"s3c64xx-iis-v4"
,
.
id
=
-
1
,
.
num_resources
=
ARRAY_SIZE
(
s5pv210_iis0_resource
),
.
resource
=
s5pv210_iis0_resource
,
.
dev
=
{
.
platform_data
=
&
s3c_i2s_pdata
,
},
};
static
struct
resource
s5pv210_iis1_resource
[]
=
{
[
0
]
=
{
.
start
=
S5PV210_PA_IIS1
,
.
end
=
S5PV210_PA_IIS1
+
0x100
-
1
,
.
flags
=
IORESOURCE_MEM
,
},
[
1
]
=
{
.
start
=
DMACH_I2S1_TX
,
.
end
=
DMACH_I2S1_TX
,
.
flags
=
IORESOURCE_DMA
,
},
[
2
]
=
{
.
start
=
DMACH_I2S1_RX
,
.
end
=
DMACH_I2S1_RX
,
.
flags
=
IORESOURCE_DMA
,
},
};
struct
platform_device
s5pv210_device_iis1
=
{
.
name
=
"s3c64xx-iis"
,
.
id
=
1
,
.
num_resources
=
ARRAY_SIZE
(
s5pv210_iis1_resource
),
.
resource
=
s5pv210_iis1_resource
,
.
dev
=
{
.
platform_data
=
&
s3c_i2s_pdata
,
},
};
static
struct
resource
s5pv210_iis2_resource
[]
=
{
[
0
]
=
{
.
start
=
S5PV210_PA_IIS2
,
.
end
=
S5PV210_PA_IIS2
+
0x100
-
1
,
.
flags
=
IORESOURCE_MEM
,
},
[
1
]
=
{
.
start
=
DMACH_I2S2_TX
,
.
end
=
DMACH_I2S2_TX
,
.
flags
=
IORESOURCE_DMA
,
},
[
2
]
=
{
.
start
=
DMACH_I2S2_RX
,
.
end
=
DMACH_I2S2_RX
,
.
flags
=
IORESOURCE_DMA
,
},
};
struct
platform_device
s5pv210_device_iis2
=
{
.
name
=
"s3c64xx-iis"
,
.
id
=
2
,
.
num_resources
=
ARRAY_SIZE
(
s5pv210_iis2_resource
),
.
resource
=
s5pv210_iis2_resource
,
.
dev
=
{
.
platform_data
=
&
s3c_i2s_pdata
,
},
};
/* PCM Controller platform_devices */
static
int
s5pv210_pcm_cfg_gpio
(
struct
platform_device
*
pdev
)
{
switch
(
pdev
->
id
)
{
case
0
:
s3c_gpio_cfgpin
(
S5PV210_GPI
(
0
),
S3C_GPIO_SFN
(
3
));
s3c_gpio_cfgpin
(
S5PV210_GPI
(
1
),
S3C_GPIO_SFN
(
3
));
s3c_gpio_cfgpin
(
S5PV210_GPI
(
2
),
S3C_GPIO_SFN
(
3
));
s3c_gpio_cfgpin
(
S5PV210_GPI
(
3
),
S3C_GPIO_SFN
(
3
));
s3c_gpio_cfgpin
(
S5PV210_GPI
(
4
),
S3C_GPIO_SFN
(
3
));
break
;
case
1
:
s3c_gpio_cfgpin
(
S5PV210_GPC0
(
0
),
S3C_GPIO_SFN
(
3
));
s3c_gpio_cfgpin
(
S5PV210_GPC0
(
1
),
S3C_GPIO_SFN
(
3
));
s3c_gpio_cfgpin
(
S5PV210_GPC0
(
2
),
S3C_GPIO_SFN
(
3
));
s3c_gpio_cfgpin
(
S5PV210_GPC0
(
3
),
S3C_GPIO_SFN
(
3
));
s3c_gpio_cfgpin
(
S5PV210_GPC0
(
4
),
S3C_GPIO_SFN
(
3
));
break
;
case
2
:
s3c_gpio_cfgpin
(
S5PV210_GPC1
(
0
),
S3C_GPIO_SFN
(
2
));
s3c_gpio_cfgpin
(
S5PV210_GPC1
(
1
),
S3C_GPIO_SFN
(
2
));
s3c_gpio_cfgpin
(
S5PV210_GPC1
(
2
),
S3C_GPIO_SFN
(
2
));
s3c_gpio_cfgpin
(
S5PV210_GPC1
(
3
),
S3C_GPIO_SFN
(
2
));
s3c_gpio_cfgpin
(
S5PV210_GPC1
(
4
),
S3C_GPIO_SFN
(
2
));
break
;
default:
printk
(
KERN_DEBUG
"Invalid PCM Controller number!"
);
return
-
EINVAL
;
}
return
0
;
}
static
struct
s3c_audio_pdata
s3c_pcm_pdata
=
{
.
cfg_gpio
=
s5pv210_pcm_cfg_gpio
,
};
static
struct
resource
s5pv210_pcm0_resource
[]
=
{
[
0
]
=
{
.
start
=
S5PV210_PA_PCM0
,
.
end
=
S5PV210_PA_PCM0
+
0x100
-
1
,
.
flags
=
IORESOURCE_MEM
,
},
[
1
]
=
{
.
start
=
DMACH_PCM0_TX
,
.
end
=
DMACH_PCM0_TX
,
.
flags
=
IORESOURCE_DMA
,
},
[
2
]
=
{
.
start
=
DMACH_PCM0_RX
,
.
end
=
DMACH_PCM0_RX
,
.
flags
=
IORESOURCE_DMA
,
},
};
struct
platform_device
s5pv210_device_pcm0
=
{
.
name
=
"samsung-pcm"
,
.
id
=
0
,
.
num_resources
=
ARRAY_SIZE
(
s5pv210_pcm0_resource
),
.
resource
=
s5pv210_pcm0_resource
,
.
dev
=
{
.
platform_data
=
&
s3c_pcm_pdata
,
},
};
static
struct
resource
s5pv210_pcm1_resource
[]
=
{
[
0
]
=
{
.
start
=
S5PV210_PA_PCM1
,
.
end
=
S5PV210_PA_PCM1
+
0x100
-
1
,
.
flags
=
IORESOURCE_MEM
,
},
[
1
]
=
{
.
start
=
DMACH_PCM1_TX
,
.
end
=
DMACH_PCM1_TX
,
.
flags
=
IORESOURCE_DMA
,
},
[
2
]
=
{
.
start
=
DMACH_PCM1_RX
,
.
end
=
DMACH_PCM1_RX
,
.
flags
=
IORESOURCE_DMA
,
},
};
struct
platform_device
s5pv210_device_pcm1
=
{
.
name
=
"samsung-pcm"
,
.
id
=
1
,
.
num_resources
=
ARRAY_SIZE
(
s5pv210_pcm1_resource
),
.
resource
=
s5pv210_pcm1_resource
,
.
dev
=
{
.
platform_data
=
&
s3c_pcm_pdata
,
},
};
static
struct
resource
s5pv210_pcm2_resource
[]
=
{
[
0
]
=
{
.
start
=
S5PV210_PA_PCM2
,
.
end
=
S5PV210_PA_PCM2
+
0x100
-
1
,
.
flags
=
IORESOURCE_MEM
,
},
[
1
]
=
{
.
start
=
DMACH_PCM2_TX
,
.
end
=
DMACH_PCM2_TX
,
.
flags
=
IORESOURCE_DMA
,
},
[
2
]
=
{
.
start
=
DMACH_PCM2_RX
,
.
end
=
DMACH_PCM2_RX
,
.
flags
=
IORESOURCE_DMA
,
},
};
struct
platform_device
s5pv210_device_pcm2
=
{
.
name
=
"samsung-pcm"
,
.
id
=
2
,
.
num_resources
=
ARRAY_SIZE
(
s5pv210_pcm2_resource
),
.
resource
=
s5pv210_pcm2_resource
,
.
dev
=
{
.
platform_data
=
&
s3c_pcm_pdata
,
},
};
/* AC97 Controller platform devices */
static
int
s5pv210_ac97_cfg_gpio
(
struct
platform_device
*
pdev
)
{
s3c_gpio_cfgpin
(
S5PV210_GPC0
(
0
),
S3C_GPIO_SFN
(
4
));
s3c_gpio_cfgpin
(
S5PV210_GPC0
(
1
),
S3C_GPIO_SFN
(
4
));
s3c_gpio_cfgpin
(
S5PV210_GPC0
(
2
),
S3C_GPIO_SFN
(
4
));
s3c_gpio_cfgpin
(
S5PV210_GPC0
(
3
),
S3C_GPIO_SFN
(
4
));
s3c_gpio_cfgpin
(
S5PV210_GPC0
(
4
),
S3C_GPIO_SFN
(
4
));
return
0
;
}
static
struct
resource
s5pv210_ac97_resource
[]
=
{
[
0
]
=
{
.
start
=
S5PV210_PA_AC97
,
.
end
=
S5PV210_PA_AC97
+
0x100
-
1
,
.
flags
=
IORESOURCE_MEM
,
},
[
1
]
=
{
.
start
=
DMACH_AC97_PCMOUT
,
.
end
=
DMACH_AC97_PCMOUT
,
.
flags
=
IORESOURCE_DMA
,
},
[
2
]
=
{
.
start
=
DMACH_AC97_PCMIN
,
.
end
=
DMACH_AC97_PCMIN
,
.
flags
=
IORESOURCE_DMA
,
},
[
3
]
=
{
.
start
=
DMACH_AC97_MICIN
,
.
end
=
DMACH_AC97_MICIN
,
.
flags
=
IORESOURCE_DMA
,
},
[
4
]
=
{
.
start
=
IRQ_AC97
,
.
end
=
IRQ_AC97
,
.
flags
=
IORESOURCE_IRQ
,
},
};
static
struct
s3c_audio_pdata
s3c_ac97_pdata
=
{
.
cfg_gpio
=
s5pv210_ac97_cfg_gpio
,
};
static
u64
s5pv210_ac97_dmamask
=
DMA_BIT_MASK
(
32
);
struct
platform_device
s5pv210_device_ac97
=
{
.
name
=
"s3c-ac97"
,
.
id
=
-
1
,
.
num_resources
=
ARRAY_SIZE
(
s5pv210_ac97_resource
),
.
resource
=
s5pv210_ac97_resource
,
.
dev
=
{
.
platform_data
=
&
s3c_ac97_pdata
,
.
dma_mask
=
&
s5pv210_ac97_dmamask
,
.
coherent_dma_mask
=
DMA_BIT_MASK
(
32
),
},
};
arch/arm/mach-s5pv210/include/mach/map.h
View file @
1770a898
...
...
@@ -62,6 +62,19 @@
#define S5PV210_PA_SDRAM (0x20000000)
#define S5P_PA_SDRAM S5PV210_PA_SDRAM
/* I2S */
#define S5PV210_PA_IIS0 0xEEE30000
#define S5PV210_PA_IIS1 0xE2100000
#define S5PV210_PA_IIS2 0xE2A00000
/* PCM */
#define S5PV210_PA_PCM0 0xE2300000
#define S5PV210_PA_PCM1 0xE1200000
#define S5PV210_PA_PCM2 0xE2B00000
/* AC97 */
#define S5PV210_PA_AC97 0xE2200000
/* compatibiltiy defines. */
#define S3C_PA_UART S5PV210_PA_UART
#define S3C_PA_IIC S5PV210_PA_IIC0
...
...
arch/arm/mach-s5pv210/mach-smdkc110.c
View file @
1770a898
...
...
@@ -72,6 +72,8 @@ static struct s3c2410_uartcfg smdkv210_uartcfgs[] __initdata = {
};
static
struct
platform_device
*
smdkc110_devices
[]
__initdata
=
{
&
s5pv210_device_iis0
,
&
s5pv210_device_ac97
,
};
static
void
__init
smdkc110_map_io
(
void
)
...
...
arch/arm/mach-s5pv210/mach-smdkv210.c
View file @
1770a898
...
...
@@ -72,6 +72,8 @@ static struct s3c2410_uartcfg smdkv210_uartcfgs[] __initdata = {
};
static
struct
platform_device
*
smdkv210_devices
[]
__initdata
=
{
&
s5pv210_device_iis0
,
&
s5pv210_device_ac97
,
};
static
void
__init
smdkv210_map_io
(
void
)
...
...
arch/arm/plat-samsung/include/plat/devs.h
View file @
1770a898
...
...
@@ -64,6 +64,22 @@ extern struct platform_device s3c_device_nand;
extern
struct
platform_device
s3c_device_usbgadget
;
extern
struct
platform_device
s3c_device_usb_hsotg
;
extern
struct
platform_device
s5pv210_device_ac97
;
extern
struct
platform_device
s5pv210_device_pcm0
;
extern
struct
platform_device
s5pv210_device_pcm1
;
extern
struct
platform_device
s5pv210_device_pcm2
;
extern
struct
platform_device
s5pv210_device_iis0
;
extern
struct
platform_device
s5pv210_device_iis1
;
extern
struct
platform_device
s5pv210_device_iis2
;
extern
struct
platform_device
s5p6442_device_pcm0
;
extern
struct
platform_device
s5p6442_device_pcm1
;
extern
struct
platform_device
s5p6442_device_iis0
;
extern
struct
platform_device
s5p6442_device_iis1
;
extern
struct
platform_device
s5p6440_device_pcm
;
extern
struct
platform_device
s5p6440_device_iis
;
/* s3c2440 specific devices */
#ifdef CONFIG_CPU_S3C2440
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment