Ben, On 08/05/2011 04:24 PM, Rob Herring wrote: > From: Rob Herring <rob.herring@xxxxxxxxxxx> > > Add of_match_table and DT style i2c registration to designware i2c > driver. > > Signed-off-by: Rob Herring <rob.herring@xxxxxxxxxxx> > Acked-by: Grant Likely <grant.likely@xxxxxxxxxxxx> > Cc: devicetree-discuss@xxxxxxxxxxxxxxxx > Cc: Ben Dooks <ben-linux@xxxxxxxxx> > Cc: linux-i2c@xxxxxxxxxxxxxxx > --- Any comments on this? If not, will you apply to your tree? Rob > Documentation/devicetree/bindings/i2c/dw-i2c.txt | 23 ++++++++++++++++++++++ > drivers/i2c/busses/i2c-designware.c | 8 +++++++ > 2 files changed, 31 insertions(+), 0 deletions(-) > create mode 100644 Documentation/devicetree/bindings/i2c/dw-i2c.txt > > diff --git a/Documentation/devicetree/bindings/i2c/dw-i2c.txt b/Documentation/devicetree/bindings/i2c/dw-i2c.txt > new file mode 100644 > index 0000000..cbcb404 > --- /dev/null > +++ b/Documentation/devicetree/bindings/i2c/dw-i2c.txt > @@ -0,0 +1,23 @@ > +* Synopsys DesignWare I2C > + > +Required properties : > + > + - compatible : should be "snps,designware-i2c" > + - reg : Offset and length of the register set for the device > + - interrupts : <IRQ> where IRQ is the interrupt number. > + > +Recommended properties : > + > + - clock-frequency : desired I2C bus clock frequency in Hz. > + > +Example : > + > + i2c@f0000 { > + #address-cells = <1>; > + #size-cells = <0>; > + compatible = "snps,designware-i2c"; > + reg = <0xf0000 0x1000>; > + interrupts = <11>; > + clock-frequency = <400000>; > + }; > + > diff --git a/drivers/i2c/busses/i2c-designware.c b/drivers/i2c/busses/i2c-designware.c > index b7a51c4..0223b98 100644 > --- a/drivers/i2c/busses/i2c-designware.c > +++ b/drivers/i2c/busses/i2c-designware.c > @@ -769,6 +769,7 @@ static int __devinit dw_i2c_probe(struct platform_device *pdev) > sizeof(adap->name)); > adap->algo = &i2c_dw_algo; > adap->dev.parent = &pdev->dev; > + adap->dev.of_node = pdev->dev.of_node; > > adap->nr = pdev->id; > r = i2c_add_numbered_adapter(adap); > @@ -819,6 +820,12 @@ static int __devexit dw_i2c_remove(struct platform_device *pdev) > return 0; > } > > +static const struct of_device_id dw_i2c_of_match[] = { > + { .compatible = "snps,designware-i2c", }, > + {}, > +}; > +MODULE_DEVICE_TABLE(of, dw_i2c_of_match); > + > /* work with hotplug and coldplug */ > MODULE_ALIAS("platform:i2c_designware"); > > @@ -827,6 +834,7 @@ static struct platform_driver dw_i2c_driver = { > .driver = { > .name = "i2c_designware", > .owner = THIS_MODULE, > + .of_match_table = dw_i2c_of_match, > }, > }; > -- To unsubscribe from this list: send the line "unsubscribe linux-i2c" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html