Skip to content

Commit

Permalink
Merge branch 'depends/i2c/lpc32xx' into next/dt
Browse files Browse the repository at this point in the history
As a prerequisite for merging the lpc32xx DT changes, this
pulls in the depends/i2c/lpc32xx branch that contains
changes to the pnx-i2c driver, which are already in the
i2c tree. The branch is available also on

   git://git.antcom.de/linux-2.6.git lpc32xx/i2c

Roland Stigge <stigge@antcom.de> writes:

 this is the series of the 4 patches adding device tree support to i2c-pnx
 (used by LPC32xx) that Wolfram Sang already applied to the i2c subsystem.
 Since both drivers/i2c/ and mach-lpc32xx are touched here, there will
 probably be conflicts that you need to be aware of.

 I'm posting this again for arm-soc since the actual mach-lpc32xx specific
 DT conversion builds upon those changes (see next pull request), especially
 in arch/arm/mach-lpc32xx/common.c.

 Wolfram already gave permission to merge this via arm-soc, but please
 coordinate and tell me if I can help resolving this.

Further, this implicitly updates the next/dt branch to v3.4-rc4, which
causes a trivial conflict from a change in one branch in code that
gets removed in another.

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
[olof: rebuilt branch due to drop of an early merge]
Signed-off-by: Olof Johansson <olof@lixom.net>
  • Loading branch information
Arnd Bergmann authored and Olof Johansson committed May 9, 2012
2 parents 19f36bf + b41a216 commit 48bfdb2
Show file tree
Hide file tree
Showing 227 changed files with 1,968 additions and 1,480 deletions.
2 changes: 1 addition & 1 deletion Documentation/DocBook/media/v4l/pixfmt-nv12m.xml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<refentry id="V4L2-PIX-FMT-NV12M">
<refmeta>
<refentrytitle>V4L2_PIX_FMT_NV12M ('NV12M')</refentrytitle>
<refentrytitle>V4L2_PIX_FMT_NV12M ('NM12')</refentrytitle>
&manvol;
</refmeta>
<refnamediv>
Expand Down
2 changes: 1 addition & 1 deletion Documentation/DocBook/media/v4l/pixfmt-yuv420m.xml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<refentry id="V4L2-PIX-FMT-YUV420M">
<refmeta>
<refentrytitle>V4L2_PIX_FMT_YUV420M ('YU12M')</refentrytitle>
<refentrytitle>V4L2_PIX_FMT_YUV420M ('YM12')</refentrytitle>
&manvol;
</refmeta>
<refnamediv>
Expand Down
36 changes: 36 additions & 0 deletions Documentation/devicetree/bindings/i2c/pnx.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
* NXP PNX I2C Controller

Required properties:

- reg: Offset and length of the register set for the device
- compatible: should be "nxp,pnx-i2c"
- interrupts: configure one interrupt line
- #address-cells: always 1 (for i2c addresses)
- #size-cells: always 0
- interrupt-parent: the phandle for the interrupt controller that
services interrupts for this device.

Optional properties:

- clock-frequency: desired I2C bus clock frequency in Hz, Default: 100000 Hz

Examples:

i2c1: i2c@400a0000 {
compatible = "nxp,pnx-i2c";
reg = <0x400a0000 0x100>;
interrupt-parent = <&mic>;
interrupts = <51 0>;
#address-cells = <1>;
#size-cells = <0>;
};

i2c2: i2c@400a8000 {
compatible = "nxp,pnx-i2c";
reg = <0x400a8000 0x100>;
interrupt-parent = <&mic>;
interrupts = <50 0>;
#address-cells = <1>;
#size-cells = <0>;
clock-frequency = <100000>;
};
4 changes: 2 additions & 2 deletions MAINTAINERS
Original file line number Diff line number Diff line change
Expand Up @@ -2321,9 +2321,9 @@ S: Supported
F: drivers/acpi/dock.c

DOCUMENTATION
M: Randy Dunlap <rdunlap@xenotime.net>
M: Rob Landley <rob@landley.net>
L: linux-doc@vger.kernel.org
T: quilt http://xenotime.net/kernel-doc-patches/current/
T: TBD
S: Maintained
F: Documentation/

Expand Down
2 changes: 1 addition & 1 deletion Makefile
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
VERSION = 3
PATCHLEVEL = 4
SUBLEVEL = 0
EXTRAVERSION = -rc3
EXTRAVERSION = -rc4
NAME = Saber-toothed Squirrel

# *DOCUMENTATION*
Expand Down
1 change: 1 addition & 0 deletions arch/arm/configs/imx_v4_v5_defconfig
Original file line number Diff line number Diff line change
Expand Up @@ -112,6 +112,7 @@ CONFIG_WATCHDOG=y
CONFIG_IMX2_WDT=y
CONFIG_MFD_MC13XXX=y
CONFIG_REGULATOR=y
CONFIG_REGULATOR_FIXED_VOLTAGE=y
CONFIG_REGULATOR_MC13783=y
CONFIG_REGULATOR_MC13892=y
CONFIG_FB=y
Expand Down
9 changes: 4 additions & 5 deletions arch/arm/configs/u8500_defconfig
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,6 @@ CONFIG_MODULE_UNLOAD=y
# CONFIG_LBDAF is not set
# CONFIG_BLK_DEV_BSG is not set
CONFIG_ARCH_U8500=y
CONFIG_UX500_SOC_DB5500=y
CONFIG_UX500_SOC_DB8500=y
CONFIG_MACH_HREFV60=y
CONFIG_MACH_SNOWBALL=y
CONFIG_MACH_U5500=y
Expand Down Expand Up @@ -39,7 +37,6 @@ CONFIG_CAIF=y
CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
CONFIG_BLK_DEV_RAM=y
CONFIG_BLK_DEV_RAM_SIZE=65536
CONFIG_MISC_DEVICES=y
CONFIG_AB8500_PWM=y
CONFIG_SENSORS_BH1780=y
CONFIG_NETDEVICES=y
Expand All @@ -65,16 +62,18 @@ CONFIG_SERIAL_AMBA_PL011=y
CONFIG_SERIAL_AMBA_PL011_CONSOLE=y
CONFIG_HW_RANDOM=y
CONFIG_HW_RANDOM_NOMADIK=y
CONFIG_I2C=y
CONFIG_I2C_NOMADIK=y
CONFIG_SPI=y
CONFIG_SPI_PL022=y
CONFIG_GPIO_STMPE=y
CONFIG_GPIO_TC3589X=y
CONFIG_POWER_SUPPLY=y
CONFIG_AB8500_BM=y
CONFIG_AB8500_BATTERY_THERM_ON_BATCTRL=y
CONFIG_MFD_STMPE=y
CONFIG_MFD_TC3589X=y
CONFIG_AB5500_CORE=y
CONFIG_AB8500_CORE=y
CONFIG_REGULATOR=y
CONFIG_REGULATOR_AB8500=y
# CONFIG_HID_SUPPORT is not set
CONFIG_USB_GADGET=y
Expand Down
1 change: 0 additions & 1 deletion arch/arm/mach-at91/at91rm9200_devices.c
Original file line number Diff line number Diff line change
Expand Up @@ -1173,7 +1173,6 @@ void __init at91_add_device_serial(void)
printk(KERN_INFO "AT91: No default serial console defined.\n");
}
#else
void __init __deprecated at91_init_serial(struct at91_uart_config *config) {}
void __init at91_register_uart(unsigned id, unsigned portnr, unsigned pins) {}
void __init at91_set_serial_console(unsigned portnr) {}
void __init at91_add_device_serial(void) {}
Expand Down
2 changes: 2 additions & 0 deletions arch/arm/mach-at91/at91rm9200_time.c
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@
#include <linux/interrupt.h>
#include <linux/irq.h>
#include <linux/clockchips.h>
#include <linux/export.h>

#include <asm/mach/time.h>

Expand Down Expand Up @@ -176,6 +177,7 @@ static struct clock_event_device clkevt = {
};

void __iomem *at91_st_base;
EXPORT_SYMBOL_GPL(at91_st_base);

void __init at91rm9200_ioremap_st(u32 addr)
{
Expand Down
2 changes: 1 addition & 1 deletion arch/arm/mach-at91/board-rm9200ek.c
Original file line number Diff line number Diff line change
Expand Up @@ -117,7 +117,7 @@ static struct i2c_board_info __initdata ek_i2c_devices[] = {
};

#define EK_FLASH_BASE AT91_CHIPSELECT_0
#define EK_FLASH_SIZE SZ_2M
#define EK_FLASH_SIZE SZ_8M

static struct physmap_flash_data ek_flash_data = {
.width = 2,
Expand Down
5 changes: 3 additions & 2 deletions arch/arm/mach-at91/board-sam9261ek.c
Original file line number Diff line number Diff line change
Expand Up @@ -85,8 +85,6 @@ static struct resource dm9000_resource[] = {
.flags = IORESOURCE_MEM
},
[2] = {
.start = AT91_PIN_PC11,
.end = AT91_PIN_PC11,
.flags = IORESOURCE_IRQ
| IORESOURCE_IRQ_LOWEDGE | IORESOURCE_IRQ_HIGHEDGE,
}
Expand Down Expand Up @@ -130,6 +128,8 @@ static struct sam9_smc_config __initdata dm9000_smc_config = {

static void __init ek_add_device_dm9000(void)
{
struct resource *r = &dm9000_resource[2];

/* Configure chip-select 2 (DM9000) */
sam9_smc_configure(0, 2, &dm9000_smc_config);

Expand All @@ -139,6 +139,7 @@ static void __init ek_add_device_dm9000(void)
/* Configure Interrupt pin as input, no pull-up */
at91_set_gpio_input(AT91_PIN_PC11, 0);

r->start = r->end = gpio_to_irq(AT91_PIN_PC11);
platform_device_register(&dm9000_device);
}
#else
Expand Down
1 change: 1 addition & 0 deletions arch/arm/mach-at91/clock.c
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,7 @@
#include "generic.h"

void __iomem *at91_pmc_base;
EXPORT_SYMBOL_GPL(at91_pmc_base);

/*
* There's a lot more which can be done with clocks, including cpufreq
Expand Down
2 changes: 1 addition & 1 deletion arch/arm/mach-at91/include/mach/at91_pmc.h
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ extern void __iomem *at91_pmc_base;
#define at91_pmc_write(field, value) \
__raw_writel(value, at91_pmc_base + field)
#else
.extern at91_aic_base
.extern at91_pmc_base
#endif

#define AT91_PMC_SCER 0x00 /* System Clock Enable Register */
Expand Down
2 changes: 2 additions & 0 deletions arch/arm/mach-at91/setup.c
Original file line number Diff line number Diff line change
Expand Up @@ -54,6 +54,7 @@ void __init at91_init_interrupts(unsigned int *priority)
}

void __iomem *at91_ramc_base[2];
EXPORT_SYMBOL_GPL(at91_ramc_base);

void __init at91_ioremap_ramc(int id, u32 addr, u32 size)
{
Expand Down Expand Up @@ -292,6 +293,7 @@ void __init at91_ioremap_rstc(u32 base_addr)
}

void __iomem *at91_matrix_base;
EXPORT_SYMBOL_GPL(at91_matrix_base);

void __init at91_ioremap_matrix(u32 base_addr)
{
Expand Down
4 changes: 2 additions & 2 deletions arch/arm/mach-bcmring/core.c
Original file line number Diff line number Diff line change
Expand Up @@ -52,8 +52,8 @@
#include <mach/csp/chipcHw_inline.h>
#include <mach/csp/tmrHw_reg.h>

static AMBA_APB_DEVICE(uartA, "uarta", MM_ADDR_IO_UARTA, { IRQ_UARTA }, NULL);
static AMBA_APB_DEVICE(uartB, "uartb", MM_ADDR_IO_UARTB, { IRQ_UARTB }, NULL);
static AMBA_APB_DEVICE(uartA, "uartA", 0, MM_ADDR_IO_UARTA, {IRQ_UARTA}, NULL);
static AMBA_APB_DEVICE(uartB, "uartB", 0, MM_ADDR_IO_UARTB, {IRQ_UARTB}, NULL);

static struct clk pll1_clk = {
.name = "PLL1",
Expand Down
6 changes: 4 additions & 2 deletions arch/arm/mach-imx/imx27-dt.c
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ static const struct of_dev_auxdata imx27_auxdata_lookup[] __initconst = {
static int __init imx27_avic_add_irq_domain(struct device_node *np,
struct device_node *interrupt_parent)
{
irq_domain_add_simple(np, 0);
irq_domain_add_legacy(np, 64, 0, 0, &irq_domain_simple_ops, NULL);
return 0;
}

Expand All @@ -44,7 +44,9 @@ static int __init imx27_gpio_add_irq_domain(struct device_node *np,
{
static int gpio_irq_base = MXC_GPIO_IRQ_START + ARCH_NR_GPIOS;

irq_domain_add_simple(np, gpio_irq_base);
gpio_irq_base -= 32;
irq_domain_add_legacy(np, 32, gpio_irq_base, 0, &irq_domain_simple_ops,
NULL);

return 0;
}
Expand Down
2 changes: 1 addition & 1 deletion arch/arm/mach-imx/mm-imx5.c
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ static void imx5_idle(void)
}
clk_enable(gpc_dvfs_clk);
mx5_cpu_lp_set(WAIT_UNCLOCKED_POWER_OFF);
if (tzic_enable_wake() != 0)
if (!tzic_enable_wake())
cpu_do_idle();
clk_disable(gpc_dvfs_clk);
}
Expand Down
67 changes: 42 additions & 25 deletions arch/arm/mach-lpc32xx/common.c
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,6 @@

#include <asm/mach/map.h>

#include <mach/i2c.h>
#include <mach/hardware.h>
#include <mach/platform.h>
#include "common.h"
Expand All @@ -53,46 +52,64 @@ struct platform_device lpc32xx_watchdog_device = {
/*
* I2C busses
*/
static struct i2c_pnx_data i2c0_data = {
.name = I2C_CHIP_NAME "1",
.base = LPC32XX_I2C1_BASE,
.irq = IRQ_LPC32XX_I2C_1,
static struct resource i2c0_resources[] = {
[0] = {
.start = LPC32XX_I2C1_BASE,
.end = LPC32XX_I2C1_BASE + 0x100 - 1,
.flags = IORESOURCE_MEM,
},
[1] = {
.start = IRQ_LPC32XX_I2C_1,
.end = IRQ_LPC32XX_I2C_1,
.flags = IORESOURCE_IRQ,
},
};

static struct i2c_pnx_data i2c1_data = {
.name = I2C_CHIP_NAME "2",
.base = LPC32XX_I2C2_BASE,
.irq = IRQ_LPC32XX_I2C_2,
static struct resource i2c1_resources[] = {
[0] = {
.start = LPC32XX_I2C2_BASE,
.end = LPC32XX_I2C2_BASE + 0x100 - 1,
.flags = IORESOURCE_MEM,
},
[1] = {
.start = IRQ_LPC32XX_I2C_2,
.end = IRQ_LPC32XX_I2C_2,
.flags = IORESOURCE_IRQ,
},
};

static struct i2c_pnx_data i2c2_data = {
.name = "USB-I2C",
.base = LPC32XX_OTG_I2C_BASE,
.irq = IRQ_LPC32XX_USB_I2C,
static struct resource i2c2_resources[] = {
[0] = {
.start = LPC32XX_OTG_I2C_BASE,
.end = LPC32XX_OTG_I2C_BASE + 0x100 - 1,
.flags = IORESOURCE_MEM,
},
[1] = {
.start = IRQ_LPC32XX_USB_I2C,
.end = IRQ_LPC32XX_USB_I2C,
.flags = IORESOURCE_IRQ,
},
};

struct platform_device lpc32xx_i2c0_device = {
.name = "pnx-i2c",
.name = "pnx-i2c.0",
.id = 0,
.dev = {
.platform_data = &i2c0_data,
},
.num_resources = ARRAY_SIZE(i2c0_resources),
.resource = i2c0_resources,
};

struct platform_device lpc32xx_i2c1_device = {
.name = "pnx-i2c",
.name = "pnx-i2c.1",
.id = 1,
.dev = {
.platform_data = &i2c1_data,
},
.num_resources = ARRAY_SIZE(i2c1_resources),
.resource = i2c1_resources,
};

struct platform_device lpc32xx_i2c2_device = {
.name = "pnx-i2c",
.name = "pnx-i2c.2",
.id = 2,
.dev = {
.platform_data = &i2c2_data,
},
.num_resources = ARRAY_SIZE(i2c2_resources),
.resource = i2c2_resources,
};

/* TSC (Touch Screen Controller) */
Expand Down
Loading

0 comments on commit 48bfdb2

Please sign in to comment.