forked from Minki/linux
b61d157589
Extends the driver to get properties from device tree. Rather than pass the N & M factors in DT, use the more standard clock-frequency property. Calculate N & M at run time. In order to do this, we need to know tclk. So the driver uses clk_get() etc in order to get the clock and clk_get_rate() to determine the tclk rate. Not all platforms however have CLK, so some #ifdefery is needed to ensure the driver still compiles when CLK is not available. Signed-off-by: Andrew Lunn <andrew@lunn.ch> [wsa: converted some ints to u32 to match signedness] Signed-off-by: Wolfram Sang <w.sang@pengutronix.de>
52 lines
1.4 KiB
Plaintext
52 lines
1.4 KiB
Plaintext
* Marvell MMP I2C controller
|
|
|
|
Required properties :
|
|
|
|
- reg : Offset and length of the register set for the device
|
|
- compatible : should be "mrvl,mmp-twsi" where mmp is the name of a
|
|
compatible processor, e.g. pxa168, pxa910, mmp2, mmp3.
|
|
For the pxa2xx/pxa3xx, an additional node "mrvl,pxa-i2c" is required
|
|
as shown in the example below.
|
|
|
|
Recommended properties :
|
|
|
|
- interrupts : the interrupt number
|
|
- interrupt-parent : the phandle for the interrupt controller that
|
|
services interrupts for this device. If the parent is the default
|
|
interrupt controller in device tree, it could be ignored.
|
|
- mrvl,i2c-polling : Disable interrupt of i2c controller. Polling
|
|
status register of i2c controller instead.
|
|
- mrvl,i2c-fast-mode : Enable fast mode of i2c controller.
|
|
|
|
Examples:
|
|
twsi1: i2c@d4011000 {
|
|
compatible = "mrvl,mmp-twsi";
|
|
reg = <0xd4011000 0x1000>;
|
|
interrupts = <7>;
|
|
mrvl,i2c-fast-mode;
|
|
};
|
|
|
|
twsi2: i2c@d4025000 {
|
|
compatible = "mrvl,mmp-twsi";
|
|
reg = <0xd4025000 0x1000>;
|
|
interrupts = <58>;
|
|
};
|
|
|
|
* Marvell MV64XXX I2C controller
|
|
|
|
Required properties :
|
|
|
|
- reg : Offset and length of the register set for the device
|
|
- compatible : Should be "marvell,mv64xxx-i2c"
|
|
- interrupts : The interrupt number
|
|
- clock-frequency : Desired I2C bus clock frequency in Hz.
|
|
|
|
Examples:
|
|
|
|
i2c@11000 {
|
|
compatible = "marvell,mv64xxx-i2c";
|
|
reg = <0x11000 0x20>;
|
|
interrupts = <29>;
|
|
clock-frequency = <100000>;
|
|
};
|