[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