Commit 0cde72284c9c7d4b348ece9e1fe136f787185cd7

Authored by Gabor Juhos
Committed by Ralf Baechle
1 parent 0aabf1a4d9

MIPS: ath79: add initial support for the Atheros PB44 reference board

Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
Cc: Imre Kaloz <kaloz@openwrt.org>
Cc: linux-mips@linux-mips.org
Cc: Luis R. Rodriguez <lrodriguez@atheros.com>
Cc: Cliff Holden <Cliff.Holden@Atheros.com>
Cc: Kathy Giori <Kathy.Giori@Atheros.com>
Patchwork: https://patchwork.linux-mips.org/patch/1950/
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>

Showing 4 changed files with 73 additions and 0 deletions Side-by-side Diff

arch/mips/ath79/Kconfig
1 1 if ATH79
2 2  
  3 +menu "Atheros AR71XX/AR724X/AR913X machine selection"
  4 +
  5 +config ATH79_MACH_PB44
  6 + bool "Atheros PB44 reference board"
  7 + select SOC_AR71XX
  8 + help
  9 + Say 'Y' here if you want your kernel to support the
  10 + Atheros PB44 reference board.
  11 +
  12 +endmenu
  13 +
3 14 config SOC_AR71XX
4 15 def_bool n
5 16  
arch/mips/ath79/Makefile
... ... @@ -16,4 +16,9 @@
16 16 # Devices
17 17 #
18 18 obj-y += dev-common.o
  19 +
  20 +#
  21 +# Machines
  22 +#
  23 +obj-$(CONFIG_ATH79_MACH_PB44) += mach-pb44.o
arch/mips/ath79/mach-pb44.c
  1 +/*
  2 + * Atheros PB44 reference board support
  3 + *
  4 + * Copyright (C) 2009-2010 Gabor Juhos <juhosg@openwrt.org>
  5 + *
  6 + * This program is free software; you can redistribute it and/or modify it
  7 + * under the terms of the GNU General Public License version 2 as published
  8 + * by the Free Software Foundation.
  9 + */
  10 +
  11 +#include <linux/init.h>
  12 +#include <linux/platform_device.h>
  13 +#include <linux/i2c.h>
  14 +#include <linux/i2c-gpio.h>
  15 +#include <linux/i2c/pcf857x.h>
  16 +
  17 +#include "machtypes.h"
  18 +
  19 +#define PB44_GPIO_I2C_SCL 0
  20 +#define PB44_GPIO_I2C_SDA 1
  21 +
  22 +#define PB44_GPIO_EXP_BASE 16
  23 +
  24 +static struct i2c_gpio_platform_data pb44_i2c_gpio_data = {
  25 + .sda_pin = PB44_GPIO_I2C_SDA,
  26 + .scl_pin = PB44_GPIO_I2C_SCL,
  27 +};
  28 +
  29 +static struct platform_device pb44_i2c_gpio_device = {
  30 + .name = "i2c-gpio",
  31 + .id = 0,
  32 + .dev = {
  33 + .platform_data = &pb44_i2c_gpio_data,
  34 + }
  35 +};
  36 +
  37 +static struct pcf857x_platform_data pb44_pcf857x_data = {
  38 + .gpio_base = PB44_GPIO_EXP_BASE,
  39 +};
  40 +
  41 +static struct i2c_board_info pb44_i2c_board_info[] __initdata = {
  42 + {
  43 + I2C_BOARD_INFO("pcf8575", 0x20),
  44 + .platform_data = &pb44_pcf857x_data,
  45 + },
  46 +};
  47 +
  48 +static void __init pb44_init(void)
  49 +{
  50 + i2c_register_board_info(0, pb44_i2c_board_info,
  51 + ARRAY_SIZE(pb44_i2c_board_info));
  52 + platform_device_register(&pb44_i2c_gpio_device);
  53 +}
  54 +
  55 +MIPS_MACHINE(ATH79_MACH_PB44, "PB44", "Atheros PB44 reference board",
  56 + pb44_init);
arch/mips/ath79/machtypes.h
... ... @@ -16,6 +16,7 @@
16 16  
17 17 enum ath79_mach_type {
18 18 ATH79_MACH_GENERIC = 0,
  19 + ATH79_MACH_PB44, /* Atheros PB44 reference board */
19 20 };
20 21  
21 22 #endif /* _ATH79_MACHTYPE_H */