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 |