Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 173343
b: refs/heads/master
c: 990c09d
h: refs/heads/master
i:
  173341: 41db519
  173339: 3248748
  173335: a8847c6
  173327: da18e84
  173311: faa1a28
v: v3
  • Loading branch information
Miguel Aguilar authored and Kevin Hilman committed Nov 25, 2009
1 parent 6e1588a commit 7dfbbc5
Show file tree
Hide file tree
Showing 5 changed files with 77 additions and 4 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 1ce52121c415457e92c281aaec4b38a864278fa2
refs/heads/master: 990c09d5f5b2079e8bf3c6615c78fa5ed2b97147
38 changes: 38 additions & 0 deletions trunk/arch/arm/mach-davinci/board-dm365-evm.c
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@
#include <linux/mtd/mtd.h>
#include <linux/mtd/partitions.h>
#include <linux/mtd/nand.h>
#include <linux/input.h>

#include <asm/mach-types.h>
#include <asm/mach/arch.h>
Expand All @@ -34,6 +35,7 @@
#include <mach/serial.h>
#include <mach/mmc.h>
#include <mach/nand.h>
#include <mach/keyscan.h>

static inline int have_imager(void)
{
Expand Down Expand Up @@ -190,6 +192,38 @@ static struct davinci_i2c_platform_data i2c_pdata = {
.bus_delay = 0 /* usec */,
};

#ifdef CONFIG_KEYBOARD_DAVINCI
static unsigned short dm365evm_keymap[] = {
KEY_KP2,
KEY_LEFT,
KEY_EXIT,
KEY_DOWN,
KEY_ENTER,
KEY_UP,
KEY_KP1,
KEY_RIGHT,
KEY_MENU,
KEY_RECORD,
KEY_REWIND,
KEY_KPMINUS,
KEY_STOP,
KEY_FASTFORWARD,
KEY_KPPLUS,
KEY_PLAYPAUSE,
0
};

static struct davinci_ks_platform_data dm365evm_ks_data = {
.keymap = dm365evm_keymap,
.keymapsize = ARRAY_SIZE(dm365evm_keymap),
.rep = 1,
/* Scan period = strobe + interval */
.strobe = 0x5,
.interval = 0x2,
.matrix_type = DAVINCI_KEYSCAN_MATRIX_4X4,
};
#endif

static int cpld_mmc_get_cd(int module)
{
if (!cpld)
Expand Down Expand Up @@ -476,6 +510,10 @@ static __init void dm365_evm_init(void)
evm_init_cpld();

dm365_init_asp(&dm365_evm_snd_data);

#ifdef CONFIG_KEYBOARD_DAVINCI
dm365_init_ks(&dm365evm_ks_data);
#endif
}

static __init void dm365_evm_irq_init(void)
Expand Down
32 changes: 31 additions & 1 deletion trunk/arch/arm/mach-davinci/dm365.c
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,7 @@
#include <mach/serial.h>
#include <mach/common.h>
#include <mach/asp.h>
#include <mach/keyscan.h>

#include "clock.h"
#include "mux.h"
Expand Down Expand Up @@ -530,7 +531,7 @@ MUX_CFG(DM365, EMAC_CRS, 3, 2, 1, 1, false)
MUX_CFG(DM365, EMAC_MDIO, 3, 1, 1, 1, false)
MUX_CFG(DM365, EMAC_MDCLK, 3, 0, 1, 1, false)

MUX_CFG(DM365, KEYPAD, 2, 0, 0x3f, 0x3f, false)
MUX_CFG(DM365, KEYSCAN, 2, 0, 0x3f, 0x3f, false)

MUX_CFG(DM365, PWM0, 1, 0, 3, 2, false)
MUX_CFG(DM365, PWM0_G23, 3, 26, 3, 3, false)
Expand Down Expand Up @@ -849,6 +850,28 @@ static struct map_desc dm365_io_desc[] = {
},
};

static struct resource dm365_ks_resources[] = {
{
/* registers */
.start = DM365_KEYSCAN_BASE,
.end = DM365_KEYSCAN_BASE + SZ_1K - 1,
.flags = IORESOURCE_MEM,
},
{
/* interrupt */
.start = IRQ_DM365_KEYINT,
.end = IRQ_DM365_KEYINT,
.flags = IORESOURCE_IRQ,
},
};

static struct platform_device dm365_ks_device = {
.name = "davinci_keyscan",
.id = 0,
.num_resources = ARRAY_SIZE(dm365_ks_resources),
.resource = dm365_ks_resources,
};

/* Contents of JTAG ID register used to identify exact cpu type */
static struct davinci_id dm365_ids[] = {
{
Expand Down Expand Up @@ -948,6 +971,13 @@ void __init dm365_init_asp(struct snd_platform_data *pdata)
platform_device_register(&dm365_asp_device);
}

void __init dm365_init_ks(struct davinci_ks_platform_data *pdata)
{
davinci_cfg_reg(DM365_KEYSCAN);
dm365_ks_device.dev.platform_data = pdata;
platform_device_register(&dm365_ks_device);
}

void __init dm365_init(void)
{
davinci_common_init(&davinci_soc_info_dm365);
Expand Down
5 changes: 5 additions & 0 deletions trunk/arch/arm/mach-davinci/include/mach/dm365.h
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@
#include <mach/hardware.h>
#include <mach/emac.h>
#include <mach/asp.h>
#include <mach/keyscan.h>

#define DM365_EMAC_BASE (0x01D07000)
#define DM365_EMAC_CNTRL_OFFSET (0x0000)
Expand All @@ -25,7 +26,11 @@
#define DM365_EMAC_MDIO_OFFSET (0x4000)
#define DM365_EMAC_CNTRL_RAM_SIZE (0x2000)

/* Base of key scan register bank */
#define DM365_KEYSCAN_BASE (0x01C69400)

void __init dm365_init(void);
void __init dm365_init_asp(struct snd_platform_data *pdata);
void __init dm365_init_ks(struct davinci_ks_platform_data *pdata);

#endif /* __ASM_ARCH_DM365_H */
4 changes: 2 additions & 2 deletions trunk/arch/arm/mach-davinci/include/mach/mux.h
Original file line number Diff line number Diff line change
Expand Up @@ -237,8 +237,8 @@ enum davinci_dm365_index {
DM365_EMAC_MDIO,
DM365_EMAC_MDCLK,

/* Keypad */
DM365_KEYPAD,
/* Key Scan */
DM365_KEYSCAN,

/* PWM */
DM365_PWM0,
Expand Down

0 comments on commit 7dfbbc5

Please sign in to comment.