All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH linux dev-4.10 v2 0/2] arm/dts: Add I2C master and ports to FSI cfam
@ 2017-06-29 16:42 Eddie James
  2017-06-29 16:42 ` [PATCH linux dev-4.10 v2 1/2] " Eddie James
  2017-06-29 16:42 ` [PATCH linux dev-4.10 v2 2/2] drivers/i2c: Fix devicetree parsing in FSI-attached I2C master algo Eddie James
  0 siblings, 2 replies; 6+ messages in thread
From: Eddie James @ 2017-06-29 16:42 UTC (permalink / raw)
  To: openbmc; +Cc: joel, Edward A. James

From: "Edward A. James" <eajames@us.ibm.com>

Fix the devicetree parsing in the driver, and add the FSI-attached I2C devices
to the devicetree.

changes since v1:
 * Change port entries to i2c-bus.
 * Label the i2c-buses and disable them in the POWER9 include file, include
   them in the specific machine files.
 * Add driver changes.

Edward A. James (2):
  arm/dts: Add I2C master and ports to FSI cfam
  drivers/i2c: Fix devicetree parsing in FSI-attached I2C master algo

 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 +++++++++++++++++++++++
 drivers/i2c/busses/i2c-fsi.c                     |  11 +-
 4 files changed, 410 insertions(+), 5 deletions(-)

-- 
1.8.3.1

^ permalink raw reply	[flat|nested] 6+ messages in thread

* [PATCH linux dev-4.10 v2 1/2] arm/dts: Add I2C master and ports to FSI cfam
  2017-06-29 16:42 [PATCH linux dev-4.10 v2 0/2] arm/dts: Add I2C master and ports to FSI cfam Eddie James
@ 2017-06-29 16:42 ` Eddie James
  2017-07-03  8:38   ` Joel Stanley
  2017-06-29 16:42 ` [PATCH linux dev-4.10 v2 2/2] drivers/i2c: Fix devicetree parsing in FSI-attached I2C master algo Eddie James
  1 sibling, 1 reply; 6+ messages in thread
From: Eddie James @ 2017-06-29 16:42 UTC (permalink / raw)
  To: openbmc; +Cc: joel, Edward A. James

From: "Edward A. James" <eajames@us.ibm.com>

FSI I2C master algorithm probes port devices based on dts.

Signed-off-by: Edward A. James <eajames@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";
+};
+
+&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@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@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@1800 {
+			compatible = "ibm,fsi-i2c-master";
+			reg = <0x1800 0x400>;
+			#address-cells = <1>;
+			#size-cells = <0>;
+
+			cfam0_i2c0: i2c-bus@0 {
+				status = "disabled";
+				reg = <0>;
+			};
+
+			cfam0_i2c1: i2c-bus@1 {
+				status = "disabled";
+				reg = <1>;
+			};
+
+			cfam0_i2c2: i2c-bus@2 {
+				status = "disabled";
+				reg = <2>;
+			};
+
+			cfam0_i2c3: i2c-bus@3 {
+				status = "disabled";
+				reg = <3>;
+			};
+
+			cfam0_i2c4: i2c-bus@4 {
+				status = "disabled";
+				reg = <4>;
+			};
+
+			cfam0_i2c5: i2c-bus@5 {
+				status = "disabled";
+				reg = <5>;
+			};
+
+			cfam0_i2c6: i2c-bus@6 {
+				status = "disabled";
+				reg = <6>;
+			};
+
+			cfam0_i2c7: i2c-bus@7 {
+				status = "disabled";
+				reg = <7>;
+			};
+
+			cfam0_i2c8: i2c-bus@8 {
+				status = "disabled";
+				reg = <8>;
+			};
+
+			cfam0_i2c9: i2c-bus@9 {
+				status = "disabled";
+				reg = <9>;
+			};
+
+			cfam0_i2c10: i2c-bus@10 {
+				status = "disabled";
+				reg = <10>;
+			};
+
+			cfam0_i2c11: i2c-bus@11 {
+				status = "disabled";
+				reg = <11>;
+			};
+
+			cfam0_i2c12: i2c-bus@12 {
+				status = "disabled";
+				reg = <12>;
+			};
+
+			cfam0_i2c13: i2c-bus@13 {
+				status = "disabled";
+				reg = <13>;
+			};
+
+			cfam0_i2c14: i2c-bus@14 {
+				status = "disabled";
+				reg = <14>;
+			};
+		};
+
 		sbefifo@2400 {
 			compatible = "ibm,p9-sbefifo";
 			reg = <0x2400 0x400>;
@@ -31,6 +113,88 @@
 				#address-cells = <1>;
 				#size-cells = <1>;
 
+				i2c@1800 {
+					compatible = "ibm,fsi-i2c-master";
+					reg = <0x1800 0x400>;
+					#address-cells = <1>;
+					#size-cells = <0>;
+
+					cfam1_i2c0: i2c-bus@0 {
+						status = "disabled";
+						reg = <0>;
+					};
+
+					cfam1_i2c1: i2c-bus@1 {
+						status = "disabled";
+						reg = <1>;
+					};
+
+					cfam1_i2c2: i2c-bus@2 {
+						status = "disabled";
+						reg = <2>;
+					};
+
+					cfam1_i2c3: i2c-bus@3 {
+						status = "disabled";
+						reg = <3>;
+					};
+
+					cfam1_i2c4: i2c-bus@4 {
+						status = "disabled";
+						reg = <4>;
+					};
+
+					cfam1_i2c5: i2c-bus@5 {
+						status = "disabled";
+						reg = <5>;
+					};
+
+					cfam1_i2c6: i2c-bus@6 {
+						status = "disabled";
+						reg = <6>;
+					};
+
+					cfam1_i2c7: i2c-bus@7 {
+						status = "disabled";
+						reg = <7>;
+					};
+
+					cfam1_i2c8: i2c-bus@8 {
+						status = "disabled";
+						reg = <8>;
+					};
+
+					cfam1_i2c9: i2c-bus@9 {
+						status = "disabled";
+						reg = <9>;
+					};
+
+					cfam1_i2c10: i2c-bus@10 {
+						status = "disabled";
+						reg = <10>;
+					};
+
+					cfam1_i2c11: i2c-bus@11 {
+						status = "disabled";
+						reg = <11>;
+					};
+
+					cfam1_i2c12: i2c-bus@12 {
+						status = "disabled";
+						reg = <12>;
+					};
+
+					cfam1_i2c13: i2c-bus@13 {
+						status = "disabled";
+						reg = <13>;
+					};
+
+					cfam1_i2c14: i2c-bus@14 {
+						status = "disabled";
+						reg = <14>;
+					};
+				};
+
 				sbefifo@2400 {
 					compatible = "ibm,p9-sbefifo";
 					reg = <0x2400 0x400>;
-- 
1.8.3.1

^ permalink raw reply related	[flat|nested] 6+ messages in thread

* [PATCH linux dev-4.10 v2 2/2] drivers/i2c: Fix devicetree parsing in FSI-attached I2C master algo
  2017-06-29 16:42 [PATCH linux dev-4.10 v2 0/2] arm/dts: Add I2C master and ports to FSI cfam Eddie James
  2017-06-29 16:42 ` [PATCH linux dev-4.10 v2 1/2] " Eddie James
@ 2017-06-29 16:42 ` Eddie James
  1 sibling, 0 replies; 6+ messages in thread
From: Eddie James @ 2017-06-29 16:42 UTC (permalink / raw)
  To: openbmc; +Cc: joel, Edward A. James

From: "Edward A. James" <eajames@us.ibm.com>

Add compatible check for the master device node. Change "port" to "reg"
for the port number property. Check that the port node is available.

Signed-off-by: Edward A. James <eajames@us.ibm.com>
---
 drivers/i2c/busses/i2c-fsi.c | 11 ++++++-----
 1 file changed, 6 insertions(+), 5 deletions(-)

diff --git a/drivers/i2c/busses/i2c-fsi.c b/drivers/i2c/busses/i2c-fsi.c
index b4eb102..d5135b4 100644
--- a/drivers/i2c/busses/i2c-fsi.c
+++ b/drivers/i2c/busses/i2c-fsi.c
@@ -568,10 +568,11 @@ static int fsi_i2c_probe(struct device *dev)
 	ida_init(&i2c->ida);
 	INIT_LIST_HEAD(&i2c->ports);
 
-	if (dev->of_node) {
+	if (dev->of_node &&
+	    of_device_is_compatible(dev->of_node, "ibm,fsi-i2c-master")) {
 		/* add adapter for each i2c port of the master */
-		for_each_child_of_node(dev->of_node, np) {
-			rc = of_property_read_u32(np, "port", &port_no);
+		for_each_available_child_of_node(dev->of_node, np) {
+			rc = of_property_read_u32(np, "reg", &port_no);
 			if (rc || port_no > 0xFFFF)
 				continue;
 
@@ -600,7 +601,7 @@ static int fsi_i2c_probe(struct device *dev)
 
 			snprintf(port->adapter.name,
 				 sizeof(port->adapter.name),
-				 "fsi_i2c-%u", port_no);
+				 "fsi%d_i2c%u", i2c->idx, port_no);
 
 			rc = i2c_add_numbered_adapter(&port->adapter);
 			if (rc < 0)
@@ -643,7 +644,7 @@ static int fsi_i2c_remove(struct device *dev)
 static struct fsi_driver fsi_i2c_driver = {
 	.id_table = fsi_i2c_ids,
 	.drv = {
-		.name = "i2c_master_fsi",
+		.name = "fsi_i2c_master",
 		.bus = &fsi_bus_type,
 		.probe = fsi_i2c_probe,
 		.remove = fsi_i2c_remove,
-- 
1.8.3.1

^ permalink raw reply related	[flat|nested] 6+ messages in thread

* Re: [PATCH linux dev-4.10 v2 1/2] arm/dts: Add I2C master and ports to FSI cfam
  2017-06-29 16:42 ` [PATCH linux dev-4.10 v2 1/2] " Eddie James
@ 2017-07-03  8:38   ` Joel Stanley
  2017-07-05 18:10     ` Eddie James
  0 siblings, 1 reply; 6+ messages in thread
From: Joel Stanley @ 2017-07-03  8:38 UTC (permalink / raw)
  To: Eddie James
  Cc: OpenBMC Maillist, Edward A. James, Benjamin Herrenschmidt,
	Jeremy Kerr, Stewart Smith

On Fri, Jun 30, 2017 at 2:12 AM, Eddie James <eajames@linux.vnet.ibm.com> wrote:
> From: "Edward A. James" <eajames@us.ibm.com>
>
> FSI I2C master algorithm probes port devices based on dts.
>
> Signed-off-by: Edward A. James <eajames@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?

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@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@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@1800 {
> +                       compatible = "ibm,fsi-i2c-master";
> +                       reg = <0x1800 0x400>;
> +                       #address-cells = <1>;
> +                       #size-cells = <0>;
> +
> +                       cfam0_i2c0: i2c-bus@0 {
> +                               status = "disabled";
> +                               reg = <0>;
> +                       };
> +
> +                       cfam0_i2c1: i2c-bus@1 {
> +                               status = "disabled";
> +                               reg = <1>;
> +                       };
> +
> +                       cfam0_i2c2: i2c-bus@2 {
> +                               status = "disabled";
> +                               reg = <2>;
> +                       };
> +
> +                       cfam0_i2c3: i2c-bus@3 {
> +                               status = "disabled";
> +                               reg = <3>;
> +                       };
> +
> +                       cfam0_i2c4: i2c-bus@4 {
> +                               status = "disabled";
> +                               reg = <4>;
> +                       };
> +
> +                       cfam0_i2c5: i2c-bus@5 {
> +                               status = "disabled";
> +                               reg = <5>;
> +                       };
> +
> +                       cfam0_i2c6: i2c-bus@6 {
> +                               status = "disabled";
> +                               reg = <6>;
> +                       };
> +
> +                       cfam0_i2c7: i2c-bus@7 {
> +                               status = "disabled";
> +                               reg = <7>;
> +                       };
> +
> +                       cfam0_i2c8: i2c-bus@8 {
> +                               status = "disabled";
> +                               reg = <8>;
> +                       };
> +
> +                       cfam0_i2c9: i2c-bus@9 {
> +                               status = "disabled";
> +                               reg = <9>;
> +                       };
> +
> +                       cfam0_i2c10: i2c-bus@10 {
> +                               status = "disabled";
> +                               reg = <10>;
> +                       };
> +
> +                       cfam0_i2c11: i2c-bus@11 {
> +                               status = "disabled";
> +                               reg = <11>;
> +                       };
> +
> +                       cfam0_i2c12: i2c-bus@12 {
> +                               status = "disabled";
> +                               reg = <12>;
> +                       };
> +
> +                       cfam0_i2c13: i2c-bus@13 {
> +                               status = "disabled";
> +                               reg = <13>;
> +                       };
> +
> +                       cfam0_i2c14: i2c-bus@14 {
> +                               status = "disabled";
> +                               reg = <14>;
> +                       };
> +               };
> +
>                 sbefifo@2400 {
>                         compatible = "ibm,p9-sbefifo";
>                         reg = <0x2400 0x400>;
> @@ -31,6 +113,88 @@
>                                 #address-cells = <1>;
>                                 #size-cells = <1>;
>
> +                               i2c@1800 {
> +                                       compatible = "ibm,fsi-i2c-master";
> +                                       reg = <0x1800 0x400>;
> +                                       #address-cells = <1>;
> +                                       #size-cells = <0>;
> +
> +                                       cfam1_i2c0: i2c-bus@0 {
> +                                               status = "disabled";
> +                                               reg = <0>;
> +                                       };
> +
> +                                       cfam1_i2c1: i2c-bus@1 {
> +                                               status = "disabled";
> +                                               reg = <1>;
> +                                       };
> +
> +                                       cfam1_i2c2: i2c-bus@2 {
> +                                               status = "disabled";
> +                                               reg = <2>;
> +                                       };
> +
> +                                       cfam1_i2c3: i2c-bus@3 {
> +                                               status = "disabled";
> +                                               reg = <3>;
> +                                       };
> +
> +                                       cfam1_i2c4: i2c-bus@4 {
> +                                               status = "disabled";
> +                                               reg = <4>;
> +                                       };
> +
> +                                       cfam1_i2c5: i2c-bus@5 {
> +                                               status = "disabled";
> +                                               reg = <5>;
> +                                       };
> +
> +                                       cfam1_i2c6: i2c-bus@6 {
> +                                               status = "disabled";
> +                                               reg = <6>;
> +                                       };
> +
> +                                       cfam1_i2c7: i2c-bus@7 {
> +                                               status = "disabled";
> +                                               reg = <7>;
> +                                       };
> +
> +                                       cfam1_i2c8: i2c-bus@8 {
> +                                               status = "disabled";
> +                                               reg = <8>;
> +                                       };
> +
> +                                       cfam1_i2c9: i2c-bus@9 {
> +                                               status = "disabled";
> +                                               reg = <9>;
> +                                       };
> +
> +                                       cfam1_i2c10: i2c-bus@10 {
> +                                               status = "disabled";
> +                                               reg = <10>;
> +                                       };
> +
> +                                       cfam1_i2c11: i2c-bus@11 {
> +                                               status = "disabled";
> +                                               reg = <11>;
> +                                       };
> +
> +                                       cfam1_i2c12: i2c-bus@12 {
> +                                               status = "disabled";
> +                                               reg = <12>;
> +                                       };
> +
> +                                       cfam1_i2c13: i2c-bus@13 {
> +                                               status = "disabled";
> +                                               reg = <13>;
> +                                       };
> +
> +                                       cfam1_i2c14: i2c-bus@14 {
> +                                               status = "disabled";
> +                                               reg = <14>;
> +                                       };
> +                               };
> +
>                                 sbefifo@2400 {
>                                         compatible = "ibm,p9-sbefifo";
>                                         reg = <0x2400 0x400>;
> --
> 1.8.3.1
>

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH linux dev-4.10 v2 1/2] arm/dts: Add I2C master and ports to FSI cfam
  2017-07-03  8:38   ` Joel Stanley
@ 2017-07-05 18:10     ` Eddie James
  2017-07-06  6:43       ` Joel Stanley
  0 siblings, 1 reply; 6+ messages in thread
From: Eddie James @ 2017-07-05 18:10 UTC (permalink / raw)
  To: Joel Stanley; +Cc: Stewart Smith, Edward A. James, OpenBMC Maillist



On 07/03/2017 03:38 AM, Joel Stanley wrote:
> On Fri, Jun 30, 2017 at 2:12 AM, Eddie James <eajames@linux.vnet.ibm.com> wrote:
>> From: "Edward A. James" <eajames@us.ibm.com>
>>
>> FSI I2C master algorithm probes port devices based on dts.
>>
>> Signed-off-by: Edward A. James <eajames@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@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@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@1800 {
>> +                       compatible = "ibm,fsi-i2c-master";
>> +                       reg = <0x1800 0x400>;
>> +                       #address-cells = <1>;
>> +                       #size-cells = <0>;
>> +
>> +                       cfam0_i2c0: i2c-bus@0 {
>> +                               status = "disabled";
>> +                               reg = <0>;
>> +                       };
>> +
>> +                       cfam0_i2c1: i2c-bus@1 {
>> +                               status = "disabled";
>> +                               reg = <1>;
>> +                       };
>> +
>> +                       cfam0_i2c2: i2c-bus@2 {
>> +                               status = "disabled";
>> +                               reg = <2>;
>> +                       };
>> +
>> +                       cfam0_i2c3: i2c-bus@3 {
>> +                               status = "disabled";
>> +                               reg = <3>;
>> +                       };
>> +
>> +                       cfam0_i2c4: i2c-bus@4 {
>> +                               status = "disabled";
>> +                               reg = <4>;
>> +                       };
>> +
>> +                       cfam0_i2c5: i2c-bus@5 {
>> +                               status = "disabled";
>> +                               reg = <5>;
>> +                       };
>> +
>> +                       cfam0_i2c6: i2c-bus@6 {
>> +                               status = "disabled";
>> +                               reg = <6>;
>> +                       };
>> +
>> +                       cfam0_i2c7: i2c-bus@7 {
>> +                               status = "disabled";
>> +                               reg = <7>;
>> +                       };
>> +
>> +                       cfam0_i2c8: i2c-bus@8 {
>> +                               status = "disabled";
>> +                               reg = <8>;
>> +                       };
>> +
>> +                       cfam0_i2c9: i2c-bus@9 {
>> +                               status = "disabled";
>> +                               reg = <9>;
>> +                       };
>> +
>> +                       cfam0_i2c10: i2c-bus@10 {
>> +                               status = "disabled";
>> +                               reg = <10>;
>> +                       };
>> +
>> +                       cfam0_i2c11: i2c-bus@11 {
>> +                               status = "disabled";
>> +                               reg = <11>;
>> +                       };
>> +
>> +                       cfam0_i2c12: i2c-bus@12 {
>> +                               status = "disabled";
>> +                               reg = <12>;
>> +                       };
>> +
>> +                       cfam0_i2c13: i2c-bus@13 {
>> +                               status = "disabled";
>> +                               reg = <13>;
>> +                       };
>> +
>> +                       cfam0_i2c14: i2c-bus@14 {
>> +                               status = "disabled";
>> +                               reg = <14>;
>> +                       };
>> +               };
>> +
>>                  sbefifo@2400 {
>>                          compatible = "ibm,p9-sbefifo";
>>                          reg = <0x2400 0x400>;
>> @@ -31,6 +113,88 @@
>>                                  #address-cells = <1>;
>>                                  #size-cells = <1>;
>>
>> +                               i2c@1800 {
>> +                                       compatible = "ibm,fsi-i2c-master";
>> +                                       reg = <0x1800 0x400>;
>> +                                       #address-cells = <1>;
>> +                                       #size-cells = <0>;
>> +
>> +                                       cfam1_i2c0: i2c-bus@0 {
>> +                                               status = "disabled";
>> +                                               reg = <0>;
>> +                                       };
>> +
>> +                                       cfam1_i2c1: i2c-bus@1 {
>> +                                               status = "disabled";
>> +                                               reg = <1>;
>> +                                       };
>> +
>> +                                       cfam1_i2c2: i2c-bus@2 {
>> +                                               status = "disabled";
>> +                                               reg = <2>;
>> +                                       };
>> +
>> +                                       cfam1_i2c3: i2c-bus@3 {
>> +                                               status = "disabled";
>> +                                               reg = <3>;
>> +                                       };
>> +
>> +                                       cfam1_i2c4: i2c-bus@4 {
>> +                                               status = "disabled";
>> +                                               reg = <4>;
>> +                                       };
>> +
>> +                                       cfam1_i2c5: i2c-bus@5 {
>> +                                               status = "disabled";
>> +                                               reg = <5>;
>> +                                       };
>> +
>> +                                       cfam1_i2c6: i2c-bus@6 {
>> +                                               status = "disabled";
>> +                                               reg = <6>;
>> +                                       };
>> +
>> +                                       cfam1_i2c7: i2c-bus@7 {
>> +                                               status = "disabled";
>> +                                               reg = <7>;
>> +                                       };
>> +
>> +                                       cfam1_i2c8: i2c-bus@8 {
>> +                                               status = "disabled";
>> +                                               reg = <8>;
>> +                                       };
>> +
>> +                                       cfam1_i2c9: i2c-bus@9 {
>> +                                               status = "disabled";
>> +                                               reg = <9>;
>> +                                       };
>> +
>> +                                       cfam1_i2c10: i2c-bus@10 {
>> +                                               status = "disabled";
>> +                                               reg = <10>;
>> +                                       };
>> +
>> +                                       cfam1_i2c11: i2c-bus@11 {
>> +                                               status = "disabled";
>> +                                               reg = <11>;
>> +                                       };
>> +
>> +                                       cfam1_i2c12: i2c-bus@12 {
>> +                                               status = "disabled";
>> +                                               reg = <12>;
>> +                                       };
>> +
>> +                                       cfam1_i2c13: i2c-bus@13 {
>> +                                               status = "disabled";
>> +                                               reg = <13>;
>> +                                       };
>> +
>> +                                       cfam1_i2c14: i2c-bus@14 {
>> +                                               status = "disabled";
>> +                                               reg = <14>;
>> +                                       };
>> +                               };
>> +
>>                                  sbefifo@2400 {
>>                                          compatible = "ibm,p9-sbefifo";
>>                                          reg = <0x2400 0x400>;
>> --
>> 1.8.3.1
>>

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH linux dev-4.10 v2 1/2] arm/dts: Add I2C master and ports to FSI cfam
  2017-07-05 18:10     ` Eddie James
@ 2017-07-06  6:43       ` Joel Stanley
  0 siblings, 0 replies; 6+ messages in thread
From: Joel Stanley @ 2017-07-06  6:43 UTC (permalink / raw)
  To: Eddie James; +Cc: Stewart Smith, Edward A. James, OpenBMC Maillist

On Thu, Jul 6, 2017 at 3:40 AM, Eddie James <eajames@linux.vnet.ibm.com> wrote:
>
>
> On 07/03/2017 03:38 AM, Joel Stanley wrote:
>>
>> On Fri, Jun 30, 2017 at 2:12 AM, Eddie James <eajames@linux.vnet.ibm.com>
>> wrote:
>>>
>>> From: "Edward A. James" <eajames@us.ibm.com>
>>>
>>> FSI I2C master algorithm probes port devices based on dts.
>>>
>>> Signed-off-by: Edward A. James <eajames@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.

According to the spec, we have the following:

 - 4x i2c seeprom
 - 8x i2c avagos
 - 1x dpss
 - 2x dimms

That accounts for all 15 devices on the CFAM i2cm.

Can you ask the Cronus team which port these devices are on, so we can
annotate the device tree? Put me on cc :)

From there we could look to using the kernel driver for e.g. the seeprom.

Cheers,

Joel


>
> 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@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@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@1800 {
>>> +                       compatible = "ibm,fsi-i2c-master";
>>> +                       reg = <0x1800 0x400>;
>>> +                       #address-cells = <1>;
>>> +                       #size-cells = <0>;
>>> +
>>> +                       cfam0_i2c0: i2c-bus@0 {
>>> +                               status = "disabled";
>>> +                               reg = <0>;
>>> +                       };
>>> +
>>> +                       cfam0_i2c1: i2c-bus@1 {
>>> +                               status = "disabled";
>>> +                               reg = <1>;
>>> +                       };
>>> +
>>> +                       cfam0_i2c2: i2c-bus@2 {
>>> +                               status = "disabled";
>>> +                               reg = <2>;
>>> +                       };
>>> +
>>> +                       cfam0_i2c3: i2c-bus@3 {
>>> +                               status = "disabled";
>>> +                               reg = <3>;
>>> +                       };
>>> +
>>> +                       cfam0_i2c4: i2c-bus@4 {
>>> +                               status = "disabled";
>>> +                               reg = <4>;
>>> +                       };
>>> +
>>> +                       cfam0_i2c5: i2c-bus@5 {
>>> +                               status = "disabled";
>>> +                               reg = <5>;
>>> +                       };
>>> +
>>> +                       cfam0_i2c6: i2c-bus@6 {
>>> +                               status = "disabled";
>>> +                               reg = <6>;
>>> +                       };
>>> +
>>> +                       cfam0_i2c7: i2c-bus@7 {
>>> +                               status = "disabled";
>>> +                               reg = <7>;
>>> +                       };
>>> +
>>> +                       cfam0_i2c8: i2c-bus@8 {
>>> +                               status = "disabled";
>>> +                               reg = <8>;
>>> +                       };
>>> +
>>> +                       cfam0_i2c9: i2c-bus@9 {
>>> +                               status = "disabled";
>>> +                               reg = <9>;
>>> +                       };
>>> +
>>> +                       cfam0_i2c10: i2c-bus@10 {
>>> +                               status = "disabled";
>>> +                               reg = <10>;
>>> +                       };
>>> +
>>> +                       cfam0_i2c11: i2c-bus@11 {
>>> +                               status = "disabled";
>>> +                               reg = <11>;
>>> +                       };
>>> +
>>> +                       cfam0_i2c12: i2c-bus@12 {
>>> +                               status = "disabled";
>>> +                               reg = <12>;
>>> +                       };
>>> +
>>> +                       cfam0_i2c13: i2c-bus@13 {
>>> +                               status = "disabled";
>>> +                               reg = <13>;
>>> +                       };
>>> +
>>> +                       cfam0_i2c14: i2c-bus@14 {
>>> +                               status = "disabled";
>>> +                               reg = <14>;
>>> +                       };
>>> +               };
>>> +
>>>                  sbefifo@2400 {
>>>                          compatible = "ibm,p9-sbefifo";
>>>                          reg = <0x2400 0x400>;
>>> @@ -31,6 +113,88 @@
>>>                                  #address-cells = <1>;
>>>                                  #size-cells = <1>;
>>>
>>> +                               i2c@1800 {
>>> +                                       compatible =
>>> "ibm,fsi-i2c-master";
>>> +                                       reg = <0x1800 0x400>;
>>> +                                       #address-cells = <1>;
>>> +                                       #size-cells = <0>;
>>> +
>>> +                                       cfam1_i2c0: i2c-bus@0 {
>>> +                                               status = "disabled";
>>> +                                               reg = <0>;
>>> +                                       };
>>> +
>>> +                                       cfam1_i2c1: i2c-bus@1 {
>>> +                                               status = "disabled";
>>> +                                               reg = <1>;
>>> +                                       };
>>> +
>>> +                                       cfam1_i2c2: i2c-bus@2 {
>>> +                                               status = "disabled";
>>> +                                               reg = <2>;
>>> +                                       };
>>> +
>>> +                                       cfam1_i2c3: i2c-bus@3 {
>>> +                                               status = "disabled";
>>> +                                               reg = <3>;
>>> +                                       };
>>> +
>>> +                                       cfam1_i2c4: i2c-bus@4 {
>>> +                                               status = "disabled";
>>> +                                               reg = <4>;
>>> +                                       };
>>> +
>>> +                                       cfam1_i2c5: i2c-bus@5 {
>>> +                                               status = "disabled";
>>> +                                               reg = <5>;
>>> +                                       };
>>> +
>>> +                                       cfam1_i2c6: i2c-bus@6 {
>>> +                                               status = "disabled";
>>> +                                               reg = <6>;
>>> +                                       };
>>> +
>>> +                                       cfam1_i2c7: i2c-bus@7 {
>>> +                                               status = "disabled";
>>> +                                               reg = <7>;
>>> +                                       };
>>> +
>>> +                                       cfam1_i2c8: i2c-bus@8 {
>>> +                                               status = "disabled";
>>> +                                               reg = <8>;
>>> +                                       };
>>> +
>>> +                                       cfam1_i2c9: i2c-bus@9 {
>>> +                                               status = "disabled";
>>> +                                               reg = <9>;
>>> +                                       };
>>> +
>>> +                                       cfam1_i2c10: i2c-bus@10 {
>>> +                                               status = "disabled";
>>> +                                               reg = <10>;
>>> +                                       };
>>> +
>>> +                                       cfam1_i2c11: i2c-bus@11 {
>>> +                                               status = "disabled";
>>> +                                               reg = <11>;
>>> +                                       };
>>> +
>>> +                                       cfam1_i2c12: i2c-bus@12 {
>>> +                                               status = "disabled";
>>> +                                               reg = <12>;
>>> +                                       };
>>> +
>>> +                                       cfam1_i2c13: i2c-bus@13 {
>>> +                                               status = "disabled";
>>> +                                               reg = <13>;
>>> +                                       };
>>> +
>>> +                                       cfam1_i2c14: i2c-bus@14 {
>>> +                                               status = "disabled";
>>> +                                               reg = <14>;
>>> +                                       };
>>> +                               };
>>> +
>>>                                  sbefifo@2400 {
>>>                                          compatible = "ibm,p9-sbefifo";
>>>                                          reg = <0x2400 0x400>;
>>> --
>>> 1.8.3.1
>>>
>

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2017-07-06  6:43 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-06-29 16:42 [PATCH linux dev-4.10 v2 0/2] arm/dts: Add I2C master and ports to FSI cfam Eddie James
2017-06-29 16:42 ` [PATCH linux dev-4.10 v2 1/2] " Eddie James
2017-07-03  8:38   ` Joel Stanley
2017-07-05 18:10     ` Eddie James
2017-07-06  6:43       ` Joel Stanley
2017-06-29 16:42 ` [PATCH linux dev-4.10 v2 2/2] drivers/i2c: Fix devicetree parsing in FSI-attached I2C master algo Eddie James

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.