mb/lenovo/*/devicetree: Add BDC detection support

Add support for BDC detection, based on the schematics for each board.
Support for boards without schematics needs further testing.

Needs test on all boards.

Change-Id: If33ef88fb808f36b050393fa83eb1b541ce936b9
Signed-off-by: Patrick Rudolph <siro@das-labor.org>
Reviewed-on: https://review.coreboot.org/19810
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Alexander Couzens <lynxis@fe80.eu>
diff --git a/src/mainboard/lenovo/t400/devicetree.cb b/src/mainboard/lenovo/t400/devicetree.cb
index fd5b514..416906f 100644
--- a/src/mainboard/lenovo/t400/devicetree.cb
+++ b/src/mainboard/lenovo/t400/devicetree.cb
@@ -178,6 +178,10 @@
 					register "eventb_enable" = "0xff"
 					register "eventc_enable" = "0xff"
 					register "eventd_enable" = "0xff"
+
+					register "has_bdc_detection" = "1"
+					register "bdc_gpio_num" = "48"
+					register "bdc_gpio_lvl" = "0"
 				end
 
 				chip superio/nsc/pc87382
diff --git a/src/mainboard/lenovo/t420/devicetree.cb b/src/mainboard/lenovo/t420/devicetree.cb
index 934c589..bed406a 100644
--- a/src/mainboard/lenovo/t420/devicetree.cb
+++ b/src/mainboard/lenovo/t420/devicetree.cb
@@ -158,6 +158,10 @@
 					register "eventc_enable" = "0xff"
 					register "eventd_enable" = "0xff"
 					register "evente_enable" = "0x0d"
+
+					register "has_bdc_detection" = "1"
+					register "bdc_gpio_num" = "54"
+					register "bdc_gpio_lvl" = "0"
 				end
 				chip drivers/lenovo/hybrid_graphics
 					device pnp ff.f on end # dummy
diff --git a/src/mainboard/lenovo/t420s/devicetree.cb b/src/mainboard/lenovo/t420s/devicetree.cb
index d1a9bfb..a090308 100644
--- a/src/mainboard/lenovo/t420s/devicetree.cb
+++ b/src/mainboard/lenovo/t420s/devicetree.cb
@@ -150,6 +150,10 @@
 					register "eventc_enable" = "0xff"
 					register "eventd_enable" = "0xff"
 					register "evente_enable" = "0x0d"
+
+					register "has_bdc_detection" = "1"
+					register "bdc_gpio_num" = "54"
+					register "bdc_gpio_lvl" = "0"
 				end
 				chip drivers/lenovo/hybrid_graphics
 					device pnp ff.f on end # dummy
diff --git a/src/mainboard/lenovo/t430/devicetree.cb b/src/mainboard/lenovo/t430/devicetree.cb
index 2fe895a..aa2f4fe 100644
--- a/src/mainboard/lenovo/t430/devicetree.cb
+++ b/src/mainboard/lenovo/t430/devicetree.cb
@@ -146,6 +146,10 @@
 					register "eventc_enable" = "0xff"
 					register "eventd_enable" = "0xff"
 					register "evente_enable" = "0x0d"
+
+					register "has_bdc_detection" = "1"
+					register "bdc_gpio_num" = "54"
+					register "bdc_gpio_lvl" = "0"
 				end
 				chip drivers/lenovo/hybrid_graphics
 					device pnp ff.f on end # dummy
diff --git a/src/mainboard/lenovo/t430s/devicetree.cb b/src/mainboard/lenovo/t430s/devicetree.cb
index 6846879..b14d60c 100644
--- a/src/mainboard/lenovo/t430s/devicetree.cb
+++ b/src/mainboard/lenovo/t430s/devicetree.cb
@@ -154,6 +154,10 @@
 					register "eventc_enable" = "0xff"
 					register "eventd_enable" = "0xff"
 					register "evente_enable" = "0x0d"
+
+					register "has_bdc_detection" = "1"
+					register "bdc_gpio_num" = "54"
+					register "bdc_gpio_lvl" = "0"
 				end
 			end # LPC Controller
 			device pci 1f.2 on
diff --git a/src/mainboard/lenovo/t520/devicetree.cb b/src/mainboard/lenovo/t520/devicetree.cb
index c76ccc9..f03b87e 100644
--- a/src/mainboard/lenovo/t520/devicetree.cb
+++ b/src/mainboard/lenovo/t520/devicetree.cb
@@ -129,6 +129,10 @@
 					register "eventc_enable" = "0xff"
 					register "eventd_enable" = "0xff"
 					register "evente_enable" = "0x0d"
+
+					register "has_bdc_detection" = "1"
+					register "bdc_gpio_num" = "54"
+					register "bdc_gpio_lvl" = "0"
 				end
 				chip drivers/lenovo/hybrid_graphics
 					device pnp ff.f on end # dummy
diff --git a/src/mainboard/lenovo/t530/devicetree.cb b/src/mainboard/lenovo/t530/devicetree.cb
index b43c999..a28c177 100644
--- a/src/mainboard/lenovo/t530/devicetree.cb
+++ b/src/mainboard/lenovo/t530/devicetree.cb
@@ -136,6 +136,10 @@
 					register "eventc_enable" = "0xff"
 					register "eventd_enable" = "0xff"
 					register "evente_enable" = "0x0d"
+
+					register "has_bdc_detection" = "1"
+					register "bdc_gpio_num" = "54"
+					register "bdc_gpio_lvl" = "0"
 				end
 				chip drivers/lenovo/hybrid_graphics
 					device pnp ff.f on end # dummy
diff --git a/src/mainboard/lenovo/t60/devicetree.cb b/src/mainboard/lenovo/t60/devicetree.cb
index 36efe55..aab647f 100644
--- a/src/mainboard/lenovo/t60/devicetree.cb
+++ b/src/mainboard/lenovo/t60/devicetree.cb
@@ -155,6 +155,9 @@
 					register "eventc_enable" = "0x3c"
 					register "eventd_enable" = "0xff"
 
+					register "has_bdc_detection" = "1"
+					register "bdc_gpio_num" = "7"
+					register "bdc_gpio_lvl" = "0"
 				end
 				chip superio/nsc/pc87382
 					device pnp 164e.2 on # IR
diff --git a/src/mainboard/lenovo/x1_carbon_gen1/devicetree.cb b/src/mainboard/lenovo/x1_carbon_gen1/devicetree.cb
index e76f68a..cb2d8f3 100644
--- a/src/mainboard/lenovo/x1_carbon_gen1/devicetree.cb
+++ b/src/mainboard/lenovo/x1_carbon_gen1/devicetree.cb
@@ -155,6 +155,10 @@
 					register "eventc_enable" = "0xff"
 					register "eventd_enable" = "0xff"
 					register "evente_enable" = "0x0d"
+
+					register "has_bdc_detection" = "1"
+					register "bdc_gpio_num" = "54"
+					register "bdc_gpio_lvl" = "0"
 				end
 			end # LPC bridge
 			device pci 1f.2 on
diff --git a/src/mainboard/lenovo/x200/devicetree.cb b/src/mainboard/lenovo/x200/devicetree.cb
index b5d2496..3bc3159 100644
--- a/src/mainboard/lenovo/x200/devicetree.cb
+++ b/src/mainboard/lenovo/x200/devicetree.cb
@@ -182,6 +182,10 @@
 					register "eventb_enable" = "0xff"
 					register "eventc_enable" = "0xff"
 					register "eventd_enable" = "0xff"
+
+					register "has_bdc_detection" = "1"
+					register "bdc_gpio_num" = "7"
+					register "bdc_gpio_lvl" = "0"
 				end
 
 				chip superio/nsc/pc87382
diff --git a/src/mainboard/lenovo/x201/devicetree.cb b/src/mainboard/lenovo/x201/devicetree.cb
index bd6490e..de57755 100644
--- a/src/mainboard/lenovo/x201/devicetree.cb
+++ b/src/mainboard/lenovo/x201/devicetree.cb
@@ -72,6 +72,10 @@
 		register "eventb_enable" = "0xff"
 		register "eventc_enable" = "0xff"
 		register "eventd_enable" = "0xff"
+
+		register "has_bdc_detection" = "1"
+		register "bdc_gpio_num" = "48"
+		register "bdc_gpio_lvl" = "0"
 	end
 
 	device cpu_cluster 0 on
diff --git a/src/mainboard/lenovo/x220/devicetree.cb b/src/mainboard/lenovo/x220/devicetree.cb
index 2bac65d..1332cd8 100644
--- a/src/mainboard/lenovo/x220/devicetree.cb
+++ b/src/mainboard/lenovo/x220/devicetree.cb
@@ -164,6 +164,10 @@
 					register "eventc_enable" = "0xff"
 					register "eventd_enable" = "0xff"
 					register "evente_enable" = "0x0d"
+
+					register "has_bdc_detection" = "1"
+					register "bdc_gpio_num" = "54"
+					register "bdc_gpio_lvl" = "0"
 				end
 			end # LPC bridge
 			device pci 1f.2 on
diff --git a/src/mainboard/lenovo/x230/devicetree.cb b/src/mainboard/lenovo/x230/devicetree.cb
index 7a96a77..d7f5647 100644
--- a/src/mainboard/lenovo/x230/devicetree.cb
+++ b/src/mainboard/lenovo/x230/devicetree.cb
@@ -166,6 +166,10 @@
 					register "eventc_enable" = "0xff"
 					register "eventd_enable" = "0xff"
 					register "evente_enable" = "0x0d"
+
+					register "has_bdc_detection" = "1"
+					register "bdc_gpio_num" = "54"
+					register "bdc_gpio_lvl" = "0"
 				end
 			end # LPC bridge
 			device pci 1f.2 on
diff --git a/src/mainboard/lenovo/x60/devicetree.cb b/src/mainboard/lenovo/x60/devicetree.cb
index 50b0d56..cf319a3 100644
--- a/src/mainboard/lenovo/x60/devicetree.cb
+++ b/src/mainboard/lenovo/x60/devicetree.cb
@@ -134,6 +134,10 @@
 					register "eventb_enable" = "0xff"
 					register "eventc_enable" = "0xff"
 					register "eventd_enable" = "0xff"
+
+					register "has_bdc_detection" = "1"
+					register "bdc_gpio_num" = "7"
+					register "bdc_gpio_lvl" = "0"
 				end
 				chip superio/nsc/pc87382
 					device pnp 164e.2 on # IR