bytedance: g220a: Enable ipmb

Tested : we can see /dev/ipmb-4  on g220a

	Use `busctl call xyz.openbmc_project.Ipmi.Channel.Ipmb \
	"/xyz/openbmc_project/Ipmi/Channel/Ipmb" org.openbmc.Ipmb \
	sendRequest yyyyay 0x01 0x0a 0x00 0x48 0`
	to get ME time correctly

(From meta-bytedance rev: 58c6841aee1bd93c1070401ce7ca589367b8e6d0)

Signed-off-by: Lotus Xu <xuxiaohan@bytrdance.com>
Change-Id: Ic45173405ec9cd1806b5caa7a5081b6ed0d8fc3e
Signed-off-by: Andrew Geissler <geissonator@yahoo.com>
diff --git a/meta-bytedance/meta-g220a/recipes-kernel/linux/linux-aspeed/0001-bytedance-g220a-Enable-ipmb.patch b/meta-bytedance/meta-g220a/recipes-kernel/linux/linux-aspeed/0001-bytedance-g220a-Enable-ipmb.patch
new file mode 100644
index 0000000..de9f2a3
--- /dev/null
+++ b/meta-bytedance/meta-g220a/recipes-kernel/linux/linux-aspeed/0001-bytedance-g220a-Enable-ipmb.patch
@@ -0,0 +1,30 @@
+From 0604e82e69c673c3ce75fa1d856a54ab10611015 Mon Sep 17 00:00:00 2001
+From: Lotus Xu <xuxiaohan@bytrdance.com>
+Date: Wed, 21 Oct 2020 12:42:45 +0800
+Subject: [PATCH] bytedance: g220a:Enable ipmb
+
+Signed-off-by: Lotus Xu <xuxiaohan@bytrdance.com>
+---
+ arch/arm/boot/dts/aspeed-bmc-bytedance-g220a.dts | 6 +++++-
+ 1 file changed, 5 insertions(+), 1 deletion(-)
+
+diff --git a/arch/arm/boot/dts/aspeed-bmc-bytedance-g220a.dts b/arch/arm/boot/dts/aspeed-bmc-bytedance-g220a.dts
+index b66854fa9ade..124b885b03ec 100644
+--- a/arch/arm/boot/dts/aspeed-bmc-bytedance-g220a.dts
++++ b/arch/arm/boot/dts/aspeed-bmc-bytedance-g220a.dts
+@@ -453,7 +453,11 @@ channel_3_3: i2c@3 {
+ 
+ &i2c4 {
+ 	status = "okay";
+-
++	ipmb0@10 {
++		compatible = "ipmb-dev";
++		reg = <(0x10 | I2C_OWN_SLAVE_ADDRESS)>;
++		i2c-protocol;
++	};
+ };
+ 
+ &i2c5 {
+-- 
+2.25.1
+
diff --git a/meta-bytedance/meta-g220a/recipes-kernel/linux/linux-aspeed/g220a.cfg b/meta-bytedance/meta-g220a/recipes-kernel/linux/linux-aspeed/g220a.cfg
index 479d751..7efe900 100644
--- a/meta-bytedance/meta-g220a/recipes-kernel/linux/linux-aspeed/g220a.cfg
+++ b/meta-bytedance/meta-g220a/recipes-kernel/linux/linux-aspeed/g220a.cfg
@@ -7,3 +7,4 @@
 CONFIG_SENSORS_PECI_DIMMTEMP=y
 CONFIG_SENSORS_PECI_CPUPOWER=y
 CONFIG_SENSORS_PECI_DIMMPOWER=y
+CONFIG_IPMB_DEVICE_INTERFACE=y
diff --git a/meta-bytedance/meta-g220a/recipes-kernel/linux/linux-aspeed_%.bbappend b/meta-bytedance/meta-g220a/recipes-kernel/linux/linux-aspeed_%.bbappend
index 0df63c8..db7f7f7 100644
--- a/meta-bytedance/meta-g220a/recipes-kernel/linux/linux-aspeed_%.bbappend
+++ b/meta-bytedance/meta-g220a/recipes-kernel/linux/linux-aspeed_%.bbappend
@@ -4,4 +4,5 @@
 			 file://0003-misc-aspeed-Add-Aspeed-UART-routing-control-driver.patch \
 			 file://0004-ARM-dts-aspeed-Add-uart-routing-node.patch \
 			 file://0005-ARM-dts-aspeed-Enable-g220a-uart-route.patch \
+			 file://0001-bytedance-g220a-Enable-ipmb.patch \
                        "
diff --git a/meta-bytedance/meta-g220a/recipes-phosphor/ipmi/phosphor-ipmi-ipmb/ipmb-channels.json b/meta-bytedance/meta-g220a/recipes-phosphor/ipmi/phosphor-ipmi-ipmb/ipmb-channels.json
new file mode 100644
index 0000000..3d901ae
--- /dev/null
+++ b/meta-bytedance/meta-g220a/recipes-phosphor/ipmi/phosphor-ipmi-ipmb/ipmb-channels.json
@@ -0,0 +1,10 @@
+{
+  "channels": [
+    {
+      "type": "me",
+      "slave-path": "/dev/ipmb-4",
+      "bmc-addr": 32,
+      "remote-addr": 44
+    }
+  ]
+}
diff --git a/meta-bytedance/meta-g220a/recipes-phosphor/ipmi/phosphor-ipmi-ipmb_%.bbappend b/meta-bytedance/meta-g220a/recipes-phosphor/ipmi/phosphor-ipmi-ipmb_%.bbappend
new file mode 100644
index 0000000..03c685d
--- /dev/null
+++ b/meta-bytedance/meta-g220a/recipes-phosphor/ipmi/phosphor-ipmi-ipmb_%.bbappend
@@ -0,0 +1,8 @@
+FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"
+
+SRC_URI_append = " file://ipmb-channels.json"
+
+do_install_append(){
+    install -m 0644 -D ${WORKDIR}/ipmb-channels.json \
+                   ${D}/usr/share/ipmbbridge/
+}