[PATCH linux dev-4.10 v2 1/2] arm/dts: Add I2C master and ports to FSI cfam
Eddie James
eajames at linux.vnet.ibm.com
Thu Jul 6 04:10:07 AEST 2017
On 07/03/2017 03:38 AM, Joel Stanley wrote:
> On Fri, Jun 30, 2017 at 2:12 AM, Eddie James <eajames at linux.vnet.ibm.com> wrote:
>> From: "Edward A. James" <eajames at us.ibm.com>
>>
>> FSI I2C master algorithm probes port devices based on dts.
>>
>> Signed-off-by: Edward A. James <eajames at us.ibm.com>
>> ---
>> arch/arm/boot/dts/aspeed-bmc-opp-romulus.dts | 120 +++++++++++++++++
>> arch/arm/boot/dts/aspeed-bmc-opp-witherspoon.dts | 120 +++++++++++++++++
>> arch/arm/boot/dts/ibm-power9-cfam.dtsi | 164 +++++++++++++++++++++++
>> 3 files changed, 404 insertions(+)
>>
>> diff --git a/arch/arm/boot/dts/aspeed-bmc-opp-romulus.dts b/arch/arm/boot/dts/aspeed-bmc-opp-romulus.dts
>> index d53dc59..4a1a390 100644
>> --- a/arch/arm/boot/dts/aspeed-bmc-opp-romulus.dts
>> +++ b/arch/arm/boot/dts/aspeed-bmc-opp-romulus.dts
>> @@ -72,6 +72,126 @@
>>
>> #include "ibm-power9-cfam.dtsi"
>>
>> +&cfam0_i2c0 {
>> + status = "okay";
>> +};
> The point of separating out the description and enabling of these i2c
> nodes was so we could selectively enable the ones that are in use by
> OpenBMC kernel drivers and userspace applications.
>
> With this change we enable 30 i2c character devices, and consume the
> associated kernel memory.
>
> Did you make any progress with discovering the devices that are required?
>
> I can see from a bug report that the SBE EEPROM is one use case:
>
> errorMessage : ServerI2CInstruction::iic_open invalid device open
> attempt /dev/i2c-100
>
> Could we enable just that one on each processor to unblock people
> using it for this use case while you investigate other uses?
I heard back from Cronus team, they said they want all the ports
(/dev/i2c-100 - 114 and 200 - 214). Manufacturing guys deferred to
Cronus team, so I think that's the best source for which ports we need
for now.
Thanks,
Eddie
>
> Cheers,
>
> Joel
>> +
>> +&cfam0_i2c1 {
>> + status = "okay";
>> +};
>> +
>> +&cfam0_i2c2 {
>> + status = "okay";
>> +};
>> +
>> +&cfam0_i2c3 {
>> + status = "okay";
>> +};
>> +
>> +&cfam0_i2c4 {
>> + status = "okay";
>> +};
>> +
>> +&cfam0_i2c5 {
>> + status = "okay";
>> +};
>> +
>> +&cfam0_i2c6 {
>> + status = "okay";
>> +};
>> +
>> +&cfam0_i2c7 {
>> + status = "okay";
>> +};
>> +
>> +&cfam0_i2c8 {
>> + status = "okay";
>> +};
>> +
>> +&cfam0_i2c9 {
>> + status = "okay";
>> +};
>> +
>> +&cfam0_i2c10 {
>> + status = "okay";
>> +};
>> +
>> +&cfam0_i2c11 {
>> + status = "okay";
>> +};
>> +
>> +&cfam0_i2c12 {
>> + status = "okay";
>> +};
>> +
>> +&cfam0_i2c13 {
>> + status = "okay";
>> +};
>> +
>> +&cfam0_i2c14 {
>> + status = "okay";
>> +};
>> +
>> +&cfam1_i2c0 {
>> + status = "okay";
>> +};
>> +
>> +&cfam1_i2c1 {
>> + status = "okay";
>> +};
>> +
>> +&cfam1_i2c2 {
>> + status = "okay";
>> +};
>> +
>> +&cfam1_i2c3 {
>> + status = "okay";
>> +};
>> +
>> +&cfam1_i2c4 {
>> + status = "okay";
>> +};
>> +
>> +&cfam1_i2c5 {
>> + status = "okay";
>> +};
>> +
>> +&cfam1_i2c6 {
>> + status = "okay";
>> +};
>> +
>> +&cfam1_i2c7 {
>> + status = "okay";
>> +};
>> +
>> +&cfam1_i2c8 {
>> + status = "okay";
>> +};
>> +
>> +&cfam1_i2c9 {
>> + status = "okay";
>> +};
>> +
>> +&cfam1_i2c10 {
>> + status = "okay";
>> +};
>> +
>> +&cfam1_i2c11 {
>> + status = "okay";
>> +};
>> +
>> +&cfam1_i2c12 {
>> + status = "okay";
>> +};
>> +
>> +&cfam1_i2c13 {
>> + status = "okay";
>> +};
>> +
>> +&cfam1_i2c14 {
>> + status = "okay";
>> +};
>> +
>> &fmc {
>> status = "okay";
>> flash at 0 {
>> diff --git a/arch/arm/boot/dts/aspeed-bmc-opp-witherspoon.dts b/arch/arm/boot/dts/aspeed-bmc-opp-witherspoon.dts
>> index 31315d0..4cc99e2 100644
>> --- a/arch/arm/boot/dts/aspeed-bmc-opp-witherspoon.dts
>> +++ b/arch/arm/boot/dts/aspeed-bmc-opp-witherspoon.dts
>> @@ -84,6 +84,126 @@
>>
>> #include "ibm-power9-cfam.dtsi"
>>
>> +&cfam0_i2c0 {
>> + status = "okay";
>> +};
>> +
>> +&cfam0_i2c1 {
>> + status = "okay";
>> +};
>> +
>> +&cfam0_i2c2 {
>> + status = "okay";
>> +};
>> +
>> +&cfam0_i2c3 {
>> + status = "okay";
>> +};
>> +
>> +&cfam0_i2c4 {
>> + status = "okay";
>> +};
>> +
>> +&cfam0_i2c5 {
>> + status = "okay";
>> +};
>> +
>> +&cfam0_i2c6 {
>> + status = "okay";
>> +};
>> +
>> +&cfam0_i2c7 {
>> + status = "okay";
>> +};
>> +
>> +&cfam0_i2c8 {
>> + status = "okay";
>> +};
>> +
>> +&cfam0_i2c9 {
>> + status = "okay";
>> +};
>> +
>> +&cfam0_i2c10 {
>> + status = "okay";
>> +};
>> +
>> +&cfam0_i2c11 {
>> + status = "okay";
>> +};
>> +
>> +&cfam0_i2c12 {
>> + status = "okay";
>> +};
>> +
>> +&cfam0_i2c13 {
>> + status = "okay";
>> +};
>> +
>> +&cfam0_i2c14 {
>> + status = "okay";
>> +};
>> +
>> +&cfam1_i2c0 {
>> + status = "okay";
>> +};
>> +
>> +&cfam1_i2c1 {
>> + status = "okay";
>> +};
>> +
>> +&cfam1_i2c2 {
>> + status = "okay";
>> +};
>> +
>> +&cfam1_i2c3 {
>> + status = "okay";
>> +};
>> +
>> +&cfam1_i2c4 {
>> + status = "okay";
>> +};
>> +
>> +&cfam1_i2c5 {
>> + status = "okay";
>> +};
>> +
>> +&cfam1_i2c6 {
>> + status = "okay";
>> +};
>> +
>> +&cfam1_i2c7 {
>> + status = "okay";
>> +};
>> +
>> +&cfam1_i2c8 {
>> + status = "okay";
>> +};
>> +
>> +&cfam1_i2c9 {
>> + status = "okay";
>> +};
>> +
>> +&cfam1_i2c10 {
>> + status = "okay";
>> +};
>> +
>> +&cfam1_i2c11 {
>> + status = "okay";
>> +};
>> +
>> +&cfam1_i2c12 {
>> + status = "okay";
>> +};
>> +
>> +&cfam1_i2c13 {
>> + status = "okay";
>> +};
>> +
>> +&cfam1_i2c14 {
>> + status = "okay";
>> +};
>> +
>> &fmc {
>> status = "okay";
>> flash at 0 {
>> diff --git a/arch/arm/boot/dts/ibm-power9-cfam.dtsi b/arch/arm/boot/dts/ibm-power9-cfam.dtsi
>> index f29c6e3..ede778d 100644
>> --- a/arch/arm/boot/dts/ibm-power9-cfam.dtsi
>> +++ b/arch/arm/boot/dts/ibm-power9-cfam.dtsi
>> @@ -4,6 +4,88 @@
>> #address-cells = <1>;
>> #size-cells = <1>;
>>
>> + i2c at 1800 {
>> + compatible = "ibm,fsi-i2c-master";
>> + reg = <0x1800 0x400>;
>> + #address-cells = <1>;
>> + #size-cells = <0>;
>> +
>> + cfam0_i2c0: i2c-bus at 0 {
>> + status = "disabled";
>> + reg = <0>;
>> + };
>> +
>> + cfam0_i2c1: i2c-bus at 1 {
>> + status = "disabled";
>> + reg = <1>;
>> + };
>> +
>> + cfam0_i2c2: i2c-bus at 2 {
>> + status = "disabled";
>> + reg = <2>;
>> + };
>> +
>> + cfam0_i2c3: i2c-bus at 3 {
>> + status = "disabled";
>> + reg = <3>;
>> + };
>> +
>> + cfam0_i2c4: i2c-bus at 4 {
>> + status = "disabled";
>> + reg = <4>;
>> + };
>> +
>> + cfam0_i2c5: i2c-bus at 5 {
>> + status = "disabled";
>> + reg = <5>;
>> + };
>> +
>> + cfam0_i2c6: i2c-bus at 6 {
>> + status = "disabled";
>> + reg = <6>;
>> + };
>> +
>> + cfam0_i2c7: i2c-bus at 7 {
>> + status = "disabled";
>> + reg = <7>;
>> + };
>> +
>> + cfam0_i2c8: i2c-bus at 8 {
>> + status = "disabled";
>> + reg = <8>;
>> + };
>> +
>> + cfam0_i2c9: i2c-bus at 9 {
>> + status = "disabled";
>> + reg = <9>;
>> + };
>> +
>> + cfam0_i2c10: i2c-bus at 10 {
>> + status = "disabled";
>> + reg = <10>;
>> + };
>> +
>> + cfam0_i2c11: i2c-bus at 11 {
>> + status = "disabled";
>> + reg = <11>;
>> + };
>> +
>> + cfam0_i2c12: i2c-bus at 12 {
>> + status = "disabled";
>> + reg = <12>;
>> + };
>> +
>> + cfam0_i2c13: i2c-bus at 13 {
>> + status = "disabled";
>> + reg = <13>;
>> + };
>> +
>> + cfam0_i2c14: i2c-bus at 14 {
>> + status = "disabled";
>> + reg = <14>;
>> + };
>> + };
>> +
>> sbefifo at 2400 {
>> compatible = "ibm,p9-sbefifo";
>> reg = <0x2400 0x400>;
>> @@ -31,6 +113,88 @@
>> #address-cells = <1>;
>> #size-cells = <1>;
>>
>> + i2c at 1800 {
>> + compatible = "ibm,fsi-i2c-master";
>> + reg = <0x1800 0x400>;
>> + #address-cells = <1>;
>> + #size-cells = <0>;
>> +
>> + cfam1_i2c0: i2c-bus at 0 {
>> + status = "disabled";
>> + reg = <0>;
>> + };
>> +
>> + cfam1_i2c1: i2c-bus at 1 {
>> + status = "disabled";
>> + reg = <1>;
>> + };
>> +
>> + cfam1_i2c2: i2c-bus at 2 {
>> + status = "disabled";
>> + reg = <2>;
>> + };
>> +
>> + cfam1_i2c3: i2c-bus at 3 {
>> + status = "disabled";
>> + reg = <3>;
>> + };
>> +
>> + cfam1_i2c4: i2c-bus at 4 {
>> + status = "disabled";
>> + reg = <4>;
>> + };
>> +
>> + cfam1_i2c5: i2c-bus at 5 {
>> + status = "disabled";
>> + reg = <5>;
>> + };
>> +
>> + cfam1_i2c6: i2c-bus at 6 {
>> + status = "disabled";
>> + reg = <6>;
>> + };
>> +
>> + cfam1_i2c7: i2c-bus at 7 {
>> + status = "disabled";
>> + reg = <7>;
>> + };
>> +
>> + cfam1_i2c8: i2c-bus at 8 {
>> + status = "disabled";
>> + reg = <8>;
>> + };
>> +
>> + cfam1_i2c9: i2c-bus at 9 {
>> + status = "disabled";
>> + reg = <9>;
>> + };
>> +
>> + cfam1_i2c10: i2c-bus at 10 {
>> + status = "disabled";
>> + reg = <10>;
>> + };
>> +
>> + cfam1_i2c11: i2c-bus at 11 {
>> + status = "disabled";
>> + reg = <11>;
>> + };
>> +
>> + cfam1_i2c12: i2c-bus at 12 {
>> + status = "disabled";
>> + reg = <12>;
>> + };
>> +
>> + cfam1_i2c13: i2c-bus at 13 {
>> + status = "disabled";
>> + reg = <13>;
>> + };
>> +
>> + cfam1_i2c14: i2c-bus at 14 {
>> + status = "disabled";
>> + reg = <14>;
>> + };
>> + };
>> +
>> sbefifo at 2400 {
>> compatible = "ibm,p9-sbefifo";
>> reg = <0x2400 0x400>;
>> --
>> 1.8.3.1
>>
More information about the openbmc
mailing list