|
@@ -18,6 +18,8 @@
|
|
#include <linux/io.h>
|
|
#include <linux/io.h>
|
|
#include <linux/fsl_devices.h>
|
|
#include <linux/fsl_devices.h>
|
|
#include <linux/fec.h>
|
|
#include <linux/fec.h>
|
|
|
|
+#include <linux/gpio_keys.h>
|
|
|
|
+#include <linux/input.h>
|
|
|
|
|
|
#include <mach/common.h>
|
|
#include <mach/common.h>
|
|
#include <mach/hardware.h>
|
|
#include <mach/hardware.h>
|
|
@@ -38,6 +40,7 @@
|
|
#define BABBAGE_USBH1_STP (0*32 + 27) /* GPIO_1_27 */
|
|
#define BABBAGE_USBH1_STP (0*32 + 27) /* GPIO_1_27 */
|
|
#define BABBAGE_PHY_RESET (1*32 + 5) /* GPIO_2_5 */
|
|
#define BABBAGE_PHY_RESET (1*32 + 5) /* GPIO_2_5 */
|
|
#define BABBAGE_FEC_PHY_RESET (1*32 + 14) /* GPIO_2_14 */
|
|
#define BABBAGE_FEC_PHY_RESET (1*32 + 14) /* GPIO_2_14 */
|
|
|
|
+#define BABBAGE_POWER_KEY (1*32 + 21) /* GPIO_2_21 */
|
|
|
|
|
|
/* USB_CTRL_1 */
|
|
/* USB_CTRL_1 */
|
|
#define MX51_USB_CTRL_1_OFFSET 0x10
|
|
#define MX51_USB_CTRL_1_OFFSET 0x10
|
|
@@ -47,6 +50,21 @@
|
|
#define MX51_USB_PLL_DIV_19_2_MHZ 0x01
|
|
#define MX51_USB_PLL_DIV_19_2_MHZ 0x01
|
|
#define MX51_USB_PLL_DIV_24_MHZ 0x02
|
|
#define MX51_USB_PLL_DIV_24_MHZ 0x02
|
|
|
|
|
|
|
|
+static struct gpio_keys_button babbage_buttons[] = {
|
|
|
|
+ {
|
|
|
|
+ .gpio = BABBAGE_POWER_KEY,
|
|
|
|
+ .code = BTN_0,
|
|
|
|
+ .desc = "PWR",
|
|
|
|
+ .active_low = 1,
|
|
|
|
+ .wakeup = 1,
|
|
|
|
+ },
|
|
|
|
+};
|
|
|
|
+
|
|
|
|
+static const struct gpio_keys_platform_data imx_button_data __initconst = {
|
|
|
|
+ .buttons = babbage_buttons,
|
|
|
|
+ .nbuttons = ARRAY_SIZE(babbage_buttons),
|
|
|
|
+};
|
|
|
|
+
|
|
static struct pad_desc mx51babbage_pads[] = {
|
|
static struct pad_desc mx51babbage_pads[] = {
|
|
/* UART1 */
|
|
/* UART1 */
|
|
MX51_PAD_UART1_RXD__UART1_RXD,
|
|
MX51_PAD_UART1_RXD__UART1_RXD,
|
|
@@ -298,6 +316,7 @@ __setup("otg_mode=", babbage_otg_mode);
|
|
static void __init mxc_board_init(void)
|
|
static void __init mxc_board_init(void)
|
|
{
|
|
{
|
|
struct pad_desc usbh1stp = MX51_PAD_USBH1_STP__USBH1_STP;
|
|
struct pad_desc usbh1stp = MX51_PAD_USBH1_STP__USBH1_STP;
|
|
|
|
+ struct pad_desc power_key = MX51_PAD_EIM_A27__GPIO_2_21;
|
|
|
|
|
|
#if defined(CONFIG_CPU_FREQ_IMX)
|
|
#if defined(CONFIG_CPU_FREQ_IMX)
|
|
get_cpu_op = mx51_get_cpu_op;
|
|
get_cpu_op = mx51_get_cpu_op;
|
|
@@ -308,6 +327,11 @@ static void __init mxc_board_init(void)
|
|
babbage_fec_reset();
|
|
babbage_fec_reset();
|
|
imx51_add_fec(NULL);
|
|
imx51_add_fec(NULL);
|
|
|
|
|
|
|
|
+ /* Set the PAD settings for the pwr key. */
|
|
|
|
+ power_key.pad_ctrl = MX51_GPIO_PAD_CTRL_2;
|
|
|
|
+ mxc_iomux_v3_setup_pad(&power_key);
|
|
|
|
+ imx51_add_gpio_keys(&imx_button_data);
|
|
|
|
+
|
|
imx51_add_imx_i2c(0, &babbage_i2c_data);
|
|
imx51_add_imx_i2c(0, &babbage_i2c_data);
|
|
imx51_add_imx_i2c(1, &babbage_i2c_data);
|
|
imx51_add_imx_i2c(1, &babbage_i2c_data);
|
|
mxc_register_device(&mxc_hsi2c_device, &babbage_hsi2c_data);
|
|
mxc_register_device(&mxc_hsi2c_device, &babbage_hsi2c_data);
|