diff options
author | Joel Stanley <joel@jms.id.au> | 2015-10-30 09:05:05 +0300 |
---|---|---|
committer | Joel Stanley <joel@jms.id.au> | 2015-10-30 09:09:16 +0300 |
commit | d75c25dae1671f55f8a0356be0f5bb9aa8df5dc2 (patch) | |
tree | a66027620c330488a4613dfcfb826b83ad3b7d61 | |
parent | 5a9be1dd481d48462bc9dd793fcf349c639f01bf (diff) | |
download | linux-d75c25dae1671f55f8a0356be0f5bb9aa8df5dc2.tar.xz |
aspeed/i2c: add all buses to device tree
They will only be enabled if the status property is changed from
"disabled".
Signed-off-by: Joel Stanley <joel@jms.id.au>
-rw-r--r-- | arch/arm/boot/dts/aspeed-bmc-opp-palmetto.dts | 99 | ||||
-rw-r--r-- | drivers/i2c/busses/i2c-aspeed.c | 12 |
2 files changed, 103 insertions, 8 deletions
diff --git a/arch/arm/boot/dts/aspeed-bmc-opp-palmetto.dts b/arch/arm/boot/dts/aspeed-bmc-opp-palmetto.dts index 5be4e8e1ad8c..b14b246403d1 100644 --- a/arch/arm/boot/dts/aspeed-bmc-opp-palmetto.dts +++ b/arch/arm/boot/dts/aspeed-bmc-opp-palmetto.dts @@ -103,6 +103,7 @@ compatible = "aspeed,ast2400-i2c-bus"; bus = <0>; clock-frequency = <100000>; + status = "okay"; }; i2c1: i2c-bus@0x80 { @@ -110,7 +111,105 @@ compatible = "aspeed,ast2400-i2c-bus"; bus = <1>; clock-frequency = <100000>; + status = "okay"; }; + + i2c2: i2c-bus@0xC0 { + reg = <0xC0 0x40>; + compatible = "aspeed,ast2400-i2c-bus"; + bus = <2>; + clock-frequency = <100000>; + status = "disabled"; + }; + + i2c3: i2c-bus@0x100 { + reg = <0x100 0x40>; + compatible = "aspeed,ast2400-i2c-bus"; + bus = <3>; + clock-frequency = <100000>; + status = "disabled"; + }; + + i2c4: i2c-bus@0x140 { + reg = <0x140 0x40>; + compatible = "aspeed,ast2400-i2c-bus"; + bus = <4>; + clock-frequency = <100000>; + status = "disabled"; + }; + + i2c5: i2c-bus@0x180 { + reg = <0x180 0x40>; + compatible = "aspeed,ast2400-i2c-bus"; + bus = <5>; + clock-frequency = <100000>; + status = "disabled"; + }; + + i2c6: i2c-bus@0x1C0 { + reg = <0x1C0 0x40>; + compatible = "aspeed,ast2400-i2c-bus"; + bus = <6>; + clock-frequency = <100000>; + status = "disabled"; + }; + + i2c7: i2c-bus@0x300 { + reg = <0x300 0x40>; + compatible = "aspeed,ast2400-i2c-bus"; + bus = <7>; + clock-frequency = <100000>; + status = "disabled"; + }; + + i2c8: i2c-bus@0x340 { + reg = <0x340 0x40>; + compatible = "aspeed,ast2400-i2c-bus"; + bus = <8>; + clock-frequency = <100000>; + status = "disabled"; + }; + + i2c9: i2c-bus@0x380 { + reg = <0x380 0x40>; + compatible = "aspeed,ast2400-i2c-bus"; + bus = <9>; + clock-frequency = <100000>; + status = "disabled"; + }; + + i2c10: i2c-bus@0x3C0 { + reg = <0x380 0x40>; + compatible = "aspeed,ast2400-i2c-bus"; + bus = <10>; + clock-frequency = <100000>; + status = "disabled"; + }; + + i2c11: i2c-bus@0x400 { + reg = <0x400 0x40>; + compatible = "aspeed,ast2400-i2c-bus"; + bus = <11>; + clock-frequency = <100000>; + status = "disabled"; + }; + + i2c12: i2c-bus@0x440 { + reg = <0x400 0x40>; + compatible = "aspeed,ast2400-i2c-bus"; + bus = <12>; + clock-frequency = <100000>; + status = "disabled"; + }; + + i2c13: i2c-bus@0x480 { + reg = <0x480 0x40>; + compatible = "aspeed,ast2400-i2c-bus"; + bus = <13>; + clock-frequency = <100000>; + status = "disabled"; + }; + }; syscon: syscon@1e6e2000 { diff --git a/drivers/i2c/busses/i2c-aspeed.c b/drivers/i2c/busses/i2c-aspeed.c index b720874027a1..395e965c46a6 100644 --- a/drivers/i2c/busses/i2c-aspeed.c +++ b/drivers/i2c/busses/i2c-aspeed.c @@ -1287,8 +1287,6 @@ static int aspeed_i2c_add_bus(struct device_node *np, if (ret < 0) return -ENXIO; - printk("i2c: adding adapter done\n"); - return 0; } @@ -1325,19 +1323,17 @@ static int ast_i2c_probe(struct platform_device *pdev) return PTR_ERR(dev->pclk); } - for_each_child_of_node(pdev->dev.of_node, np) { - - printk("i2c: trying %s\n", np->name); - + for_each_available_child_of_node(pdev->dev.of_node, np) { if (!of_device_is_compatible(np, "aspeed,ast2400-i2c-bus")) continue; - aspeed_i2c_add_bus(np, dev, pdev); + ret = aspeed_i2c_add_bus(np, dev, pdev); + if (ret < 0) + dev_err(&pdev->dev, "faield to add i2c bus %s\n", np->name); } platform_set_drvdata(pdev, dev); - return 0; } |