summary refs log tree commit diff
path: root/arch/arm/boot
diff options
context:
space:
mode:
authorEddie James <eajames@linux.ibm.com>2021-10-20 16:53:20 -0500
committerJoel Stanley <joel@jms.id.au>2021-10-21 16:56:02 +1030
commite175be2a718f81db17295d0f82d84c6198783a43 (patch)
tree6df299a65c3b3f8cf5a97fb82ef1abf8e578d99b /arch/arm/boot
parente80e70fb05709f79a0ae9ac6e0b310c044001a11 (diff)
downloadlinux-e175be2a718f81db17295d0f82d84c6198783a43.tar.gz
ARM: dts: aspeed: everest: Add IBM Operation Panel I2C device
Set I2C bus 14 to multi-master mode and add the panel device that will
register the I2C controller as a slave device.
In addition, in early Everest systems, the panel device was behind an
I2C switch, which doesn't work for slave mode. Get it working (albeit
unreliably, since a master transaction might switch the switch at any
moment) by defaulting the switch channel to the one with the panel.

Signed-off-by: Eddie James <eajames@linux.ibm.com>
Reviewed-by: Joel Stanley <joel@jms.id.au>
Link: https://lore.kernel.org/r/20211020215321.33960-5-eajames@linux.ibm.com
Signed-off-by: Joel Stanley <joel@jms.id.au>
Diffstat (limited to 'arch/arm/boot')
-rw-r--r--arch/arm/boot/dts/aspeed-bmc-ibm-everest.dts8
1 files changed, 7 insertions, 1 deletions
diff --git a/arch/arm/boot/dts/aspeed-bmc-ibm-everest.dts b/arch/arm/boot/dts/aspeed-bmc-ibm-everest.dts
index 6a432bc4eafc..4412d71d8b08 100644
--- a/arch/arm/boot/dts/aspeed-bmc-ibm-everest.dts
+++ b/arch/arm/boot/dts/aspeed-bmc-ibm-everest.dts
@@ -1908,15 +1908,21 @@
 };
 
 &i2c14 {
+	multi-master;
 	status = "okay";
 
+	ibm-panel@62 {
+		compatible = "ibm,op-panel";
+		reg = <(0x62 | I2C_OWN_SLAVE_ADDRESS)>;
+	};
+
 	i2c-switch@70 {
 		compatible = "nxp,pca9546";
 		reg = <0x70>;
 		#address-cells = <1>;
 		#size-cells = <0>;
 		status = "okay";
-		i2c-mux-idle-disconnect;
+		idle-state = <1>;
 
 		i2c14mux0chn0: i2c@0 {
 			#address-cells = <1>;