Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
L
linux-davinci
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Redmine
Redmine
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Operations
Operations
Metrics
Environments
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
linux
linux-davinci
Commits
61533841
Commit
61533841
authored
Sep 24, 2009
by
Sascha Hauer
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
pcm038: Add SPI/MC13783 support
Signed-off-by:
Sascha Hauer
<
s.hauer@pengutronix.de
>
parent
de41fddd
Changes
1
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
94 additions
and
2 deletions
+94
-2
arch/arm/mach-mx2/pcm038.c
arch/arm/mach-mx2/pcm038.c
+94
-2
No files found.
arch/arm/mach-mx2/pcm038.c
View file @
61533841
...
@@ -23,6 +23,10 @@
...
@@ -23,6 +23,10 @@
#include <linux/mtd/plat-ram.h>
#include <linux/mtd/plat-ram.h>
#include <linux/mtd/physmap.h>
#include <linux/mtd/physmap.h>
#include <linux/platform_device.h>
#include <linux/platform_device.h>
#include <linux/regulator/machine.h>
#include <linux/mfd/mc13783.h>
#include <linux/spi/spi.h>
#include <linux/irq.h>
#include <asm/mach-types.h>
#include <asm/mach-types.h>
#include <asm/mach/arch.h>
#include <asm/mach/arch.h>
...
@@ -35,6 +39,7 @@
...
@@ -35,6 +39,7 @@
#include <mach/iomux.h>
#include <mach/iomux.h>
#include <mach/imx-uart.h>
#include <mach/imx-uart.h>
#include <mach/mxc_nand.h>
#include <mach/mxc_nand.h>
#include <mach/spi.h>
#include "devices.h"
#include "devices.h"
...
@@ -78,8 +83,6 @@ static int pcm038_pins[] = {
...
@@ -78,8 +83,6 @@ static int pcm038_pins[] = {
PC6_PF_I2C2_SCL
,
PC6_PF_I2C2_SCL
,
/* SPI1 */
/* SPI1 */
PD25_PF_CSPI1_RDY
,
PD25_PF_CSPI1_RDY
,
PD27_PF_CSPI1_SS1
,
PD28_PF_CSPI1_SS0
,
PD29_PF_CSPI1_SCLK
,
PD29_PF_CSPI1_SCLK
,
PD30_PF_CSPI1_MISO
,
PD30_PF_CSPI1_MISO
,
PD31_PF_CSPI1_MOSI
,
PD31_PF_CSPI1_MOSI
,
...
@@ -196,6 +199,86 @@ static struct i2c_board_info pcm038_i2c_devices[] = {
...
@@ -196,6 +199,86 @@ static struct i2c_board_info pcm038_i2c_devices[] = {
}
}
};
};
static
int
pcm038_spi_cs
[]
=
{
GPIO_PORTD
+
28
};
static
struct
spi_imx_master
pcm038_spi_0_data
=
{
.
chipselect
=
pcm038_spi_cs
,
.
num_chipselect
=
ARRAY_SIZE
(
pcm038_spi_cs
),
};
static
struct
regulator_consumer_supply
sdhc1_consumers
[]
=
{
{
.
dev
=
&
mxc_sdhc_device1
.
dev
,
.
supply
=
"sdhc_vcc"
,
},
};
static
struct
regulator_init_data
sdhc1_data
=
{
.
constraints
=
{
.
min_uV
=
3000000
,
.
max_uV
=
3400000
,
.
valid_ops_mask
=
REGULATOR_CHANGE_VOLTAGE
|
REGULATOR_CHANGE_MODE
|
REGULATOR_CHANGE_STATUS
,
.
valid_modes_mask
=
REGULATOR_MODE_NORMAL
|
REGULATOR_MODE_FAST
,
.
always_on
=
0
,
.
boot_on
=
0
,
},
.
num_consumer_supplies
=
ARRAY_SIZE
(
sdhc1_consumers
),
.
consumer_supplies
=
sdhc1_consumers
,
};
static
struct
regulator_consumer_supply
cam_consumers
[]
=
{
{
.
dev
=
NULL
,
.
supply
=
"imx_cam_vcc"
,
},
};
static
struct
regulator_init_data
cam_data
=
{
.
constraints
=
{
.
min_uV
=
3000000
,
.
max_uV
=
3400000
,
.
valid_ops_mask
=
REGULATOR_CHANGE_VOLTAGE
|
REGULATOR_CHANGE_MODE
|
REGULATOR_CHANGE_STATUS
,
.
valid_modes_mask
=
REGULATOR_MODE_NORMAL
|
REGULATOR_MODE_FAST
,
.
always_on
=
0
,
.
boot_on
=
0
,
},
.
num_consumer_supplies
=
ARRAY_SIZE
(
cam_consumers
),
.
consumer_supplies
=
cam_consumers
,
};
struct
mc13783_regulator_init_data
pcm038_regulators
[]
=
{
{
.
id
=
MC13783_REGU_VCAM
,
.
init_data
=
&
cam_data
,
},
{
.
id
=
MC13783_REGU_VMMC1
,
.
init_data
=
&
sdhc1_data
,
},
};
static
struct
mc13783_platform_data
pcm038_pmic
=
{
.
regulators
=
pcm038_regulators
,
.
num_regulators
=
ARRAY_SIZE
(
pcm038_regulators
),
.
flags
=
MC13783_USE_ADC
|
MC13783_USE_REGULATOR
|
MC13783_USE_TOUCHSCREEN
,
};
static
struct
spi_board_info
pcm038_spi_board_info
[]
__initdata
=
{
{
.
modalias
=
"mc13783"
,
.
irq
=
IRQ_GPIOB
(
23
),
.
max_speed_hz
=
300000
,
.
bus_num
=
0
,
.
chip_select
=
0
,
.
platform_data
=
&
pcm038_pmic
,
.
mode
=
SPI_CS_HIGH
,
}
};
static
void
__init
pcm038_init
(
void
)
static
void
__init
pcm038_init
(
void
)
{
{
mxc_gpio_setup_multiple_pins
(
pcm038_pins
,
ARRAY_SIZE
(
pcm038_pins
),
mxc_gpio_setup_multiple_pins
(
pcm038_pins
,
ARRAY_SIZE
(
pcm038_pins
),
...
@@ -219,6 +302,15 @@ static void __init pcm038_init(void)
...
@@ -219,6 +302,15 @@ static void __init pcm038_init(void)
/* PE18 for user-LED D40 */
/* PE18 for user-LED D40 */
mxc_gpio_mode
(
GPIO_PORTE
|
18
|
GPIO_GPIO
|
GPIO_OUT
);
mxc_gpio_mode
(
GPIO_PORTE
|
18
|
GPIO_GPIO
|
GPIO_OUT
);
mxc_gpio_mode
(
GPIO_PORTD
|
28
|
GPIO_GPIO
|
GPIO_OUT
);
/* MC13783 IRQ */
mxc_gpio_mode
(
GPIO_PORTB
|
23
|
GPIO_GPIO
|
GPIO_IN
);
mxc_register_device
(
&
mxc_spi_device0
,
&
pcm038_spi_0_data
);
spi_register_board_info
(
pcm038_spi_board_info
,
ARRAY_SIZE
(
pcm038_spi_board_info
));
platform_add_devices
(
platform_devices
,
ARRAY_SIZE
(
platform_devices
));
platform_add_devices
(
platform_devices
,
ARRAY_SIZE
(
platform_devices
));
#ifdef CONFIG_MACH_PCM970_BASEBOARD
#ifdef CONFIG_MACH_PCM970_BASEBOARD
...
...
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