diff options
| author | Andrew Lunn <andrew@lunn.ch> | 2012-07-20 07:51:55 -0400 |
|---|---|---|
| committer | Andrew Lunn <andrew@lunn.ch> | 2012-07-27 10:48:29 -0400 |
| commit | e91cac0a7746b2ce9d4134098678e3cc8cbf032d (patch) | |
| tree | 35ac0f4b38fbe3034faa82c9c19909bac47112ff | |
| parent | 763721205eaa14f097694a3b65f87b74ba6dfe40 (diff) | |
ARM: Orion: Add arch support needed for I2C via DT.
The MV64XXX I2C driver needs a clock in order to calculate the baud
rate factors. So add an clk to the clk tree. Also add the base DT
properties for kirkwood devices.
Signed-off-by: Andrew Lunn <andrew@lunn.ch>
Conflicts:
arch/arm/mach-kirkwood/common.c
| -rw-r--r-- | arch/arm/boot/dts/kirkwood.dtsi | 10 | ||||
| -rw-r--r-- | arch/arm/mach-kirkwood/board-dt.c | 2 | ||||
| -rw-r--r-- | arch/arm/mach-kirkwood/common.c | 2 | ||||
| -rw-r--r-- | arch/arm/plat-orion/common.c | 1 |
4 files changed, 15 insertions, 0 deletions
diff --git a/arch/arm/boot/dts/kirkwood.dtsi b/arch/arm/boot/dts/kirkwood.dtsi index 3aaad7d147de..3df24cd03c07 100644 --- a/arch/arm/boot/dts/kirkwood.dtsi +++ b/arch/arm/boot/dts/kirkwood.dtsi | |||
| @@ -82,5 +82,15 @@ | |||
| 82 | /* set partition map and/or chip-delay in board dts */ | 82 | /* set partition map and/or chip-delay in board dts */ |
| 83 | status = "disabled"; | 83 | status = "disabled"; |
| 84 | }; | 84 | }; |
| 85 | |||
| 86 | i2c@11000 { | ||
| 87 | compatible = "marvell,mv64xxx-i2c"; | ||
| 88 | reg = <0x11000 0x20>; | ||
| 89 | #address-cells = <1>; | ||
| 90 | #size-cells = <0>; | ||
| 91 | interrupts = <29>; | ||
| 92 | clock-frequency = <100000>; | ||
| 93 | status = "disabled"; | ||
| 94 | }; | ||
| 85 | }; | 95 | }; |
| 86 | }; | 96 | }; |
diff --git a/arch/arm/mach-kirkwood/board-dt.c b/arch/arm/mach-kirkwood/board-dt.c index 8f8da5d9a8dd..24c8fdd174d1 100644 --- a/arch/arm/mach-kirkwood/board-dt.c +++ b/arch/arm/mach-kirkwood/board-dt.c | |||
| @@ -28,6 +28,8 @@ static struct of_device_id kirkwood_dt_match_table[] __initdata = { | |||
| 28 | 28 | ||
| 29 | struct of_dev_auxdata kirkwood_auxdata_lookup[] __initdata = { | 29 | struct of_dev_auxdata kirkwood_auxdata_lookup[] __initdata = { |
| 30 | OF_DEV_AUXDATA("marvell,orion-spi", 0xf1010600, "orion_spi.0", NULL), | 30 | OF_DEV_AUXDATA("marvell,orion-spi", 0xf1010600, "orion_spi.0", NULL), |
| 31 | OF_DEV_AUXDATA("marvell,mv64xxx-i2c", 0xf1011000, "mv64xxx_i2c.0", | ||
| 32 | NULL), | ||
| 31 | {}, | 33 | {}, |
| 32 | }; | 34 | }; |
| 33 | 35 | ||
diff --git a/arch/arm/mach-kirkwood/common.c b/arch/arm/mach-kirkwood/common.c index c9201539ffbd..c4b64adcbfce 100644 --- a/arch/arm/mach-kirkwood/common.c +++ b/arch/arm/mach-kirkwood/common.c | |||
| @@ -17,6 +17,7 @@ | |||
| 17 | #include <linux/dma-mapping.h> | 17 | #include <linux/dma-mapping.h> |
| 18 | #include <linux/clk-provider.h> | 18 | #include <linux/clk-provider.h> |
| 19 | #include <linux/spinlock.h> | 19 | #include <linux/spinlock.h> |
| 20 | #include <linux/mv643xx_i2c.h> | ||
| 20 | #include <net/dsa.h> | 21 | #include <net/dsa.h> |
| 21 | #include <asm/page.h> | 22 | #include <asm/page.h> |
| 22 | #include <asm/timex.h> | 23 | #include <asm/timex.h> |
| @@ -276,6 +277,7 @@ void __init kirkwood_clk_init(void) | |||
| 276 | orion_clkdev_add("0", "pcie", pex0); | 277 | orion_clkdev_add("0", "pcie", pex0); |
| 277 | orion_clkdev_add("1", "pcie", pex1); | 278 | orion_clkdev_add("1", "pcie", pex1); |
| 278 | orion_clkdev_add(NULL, "kirkwood-i2s", audio); | 279 | orion_clkdev_add(NULL, "kirkwood-i2s", audio); |
| 280 | orion_clkdev_add(NULL, MV64XXX_I2C_CTLR_NAME ".0", runit); | ||
| 279 | 281 | ||
| 280 | /* Marvell says runit is used by SPI, UART, NAND, TWSI, ..., | 282 | /* Marvell says runit is used by SPI, UART, NAND, TWSI, ..., |
| 281 | * so should never be gated. | 283 | * so should never be gated. |
diff --git a/arch/arm/plat-orion/common.c b/arch/arm/plat-orion/common.c index c1793786aea9..d245a87dc014 100644 --- a/arch/arm/plat-orion/common.c +++ b/arch/arm/plat-orion/common.c | |||
| @@ -47,6 +47,7 @@ void __init orion_clkdev_init(struct clk *tclk) | |||
| 47 | orion_clkdev_add(NULL, MV643XX_ETH_NAME ".2", tclk); | 47 | orion_clkdev_add(NULL, MV643XX_ETH_NAME ".2", tclk); |
| 48 | orion_clkdev_add(NULL, MV643XX_ETH_NAME ".3", tclk); | 48 | orion_clkdev_add(NULL, MV643XX_ETH_NAME ".3", tclk); |
| 49 | orion_clkdev_add(NULL, "orion_wdt", tclk); | 49 | orion_clkdev_add(NULL, "orion_wdt", tclk); |
| 50 | orion_clkdev_add(NULL, MV64XXX_I2C_CTLR_NAME ".0", tclk); | ||
| 50 | } | 51 | } |
| 51 | 52 | ||
| 52 | /* Fill in the resources structure and link it into the platform | 53 | /* Fill in the resources structure and link it into the platform |
