From 8e18f34c28cad949710ffb781316bd2540b64de7 Mon Sep 17 00:00:00 2001 From: Tom Rini Date: Wed, 3 Jan 2018 08:54:27 -0500 Subject: [PATCH 1/3] x86: Move commands from under arch/x86 to cmd/x86/ We only need to compile and link these files when building for full U-Boot. Move them to under cmd/x86/ to make sure they aren't linked in and undiscarded due to u_boot_list_2_cmd_* being included). Cc: Bin Meng Signed-off-by: Tom Rini Reviewed-by: Bin Meng --- arch/x86/lib/Makefile | 1 - arch/x86/lib/fsp/Makefile | 1 - cmd/Makefile | 2 ++ cmd/x86/Makefile | 6 ++++++ arch/x86/lib/fsp/cmd_fsp.c => cmd/x86/fsp.c | 0 arch/x86/lib/cmd_mtrr.c => cmd/x86/mtrr.c | 0 6 files changed, 8 insertions(+), 2 deletions(-) create mode 100644 cmd/x86/Makefile rename arch/x86/lib/fsp/cmd_fsp.c => cmd/x86/fsp.c (100%) rename arch/x86/lib/cmd_mtrr.c => cmd/x86/mtrr.c (100%) diff --git a/arch/x86/lib/Makefile b/arch/x86/lib/Makefile index 7d729ea0f7..f6be13fe94 100644 --- a/arch/x86/lib/Makefile +++ b/arch/x86/lib/Makefile @@ -23,7 +23,6 @@ obj-y += interrupts.o obj-y += lpc-uclass.o obj-y += mpspec.o obj-$(CONFIG_ENABLE_MRC_CACHE) += mrccache.o -obj-y += cmd_mtrr.o obj-y += northbridge-uclass.o obj-$(CONFIG_I8259_PIC) += i8259.o obj-$(CONFIG_I8254_TIMER) += i8254.o diff --git a/arch/x86/lib/fsp/Makefile b/arch/x86/lib/fsp/Makefile index afe83dd324..c7a248f7f2 100644 --- a/arch/x86/lib/fsp/Makefile +++ b/arch/x86/lib/fsp/Makefile @@ -4,7 +4,6 @@ # SPDX-License-Identifier: GPL-2.0+ # -obj-y += cmd_fsp.o obj-y += fsp_car.o obj-y += fsp_common.o obj-y += fsp_dram.o diff --git a/cmd/Makefile b/cmd/Makefile index 00e38696da..ab45bf434a 100644 --- a/cmd/Makefile +++ b/cmd/Makefile @@ -150,6 +150,8 @@ obj-$(CONFIG_CMD_PMIC) += pmic.o obj-$(CONFIG_CMD_REGULATOR) += regulator.o obj-$(CONFIG_CMD_BLOB) += blob.o + +obj-$(CONFIG_X86) += x86/ endif # !CONFIG_SPL_BUILD # core command diff --git a/cmd/x86/Makefile b/cmd/x86/Makefile new file mode 100644 index 0000000000..d4c690b055 --- /dev/null +++ b/cmd/x86/Makefile @@ -0,0 +1,6 @@ +# +# SPDX-License-Identifier: GPL-2.0+ +# + +obj-y += mtrr.o +obj-$(CONFIG_HAVE_FSP) += fsp.o diff --git a/arch/x86/lib/fsp/cmd_fsp.c b/cmd/x86/fsp.c similarity index 100% rename from arch/x86/lib/fsp/cmd_fsp.c rename to cmd/x86/fsp.c diff --git a/arch/x86/lib/cmd_mtrr.c b/cmd/x86/mtrr.c similarity index 100% rename from arch/x86/lib/cmd_mtrr.c rename to cmd/x86/mtrr.c From d08953e04596a83076b0f55e7c20b2c2c472e793 Mon Sep 17 00:00:00 2001 From: Andy Shevchenko Date: Thu, 4 Jan 2018 18:40:12 +0200 Subject: [PATCH 2/3] x86: tangier: Use actual GPIO hardware numbers The recent commit 03c4749dd6c7 ("gpio / ACPI: Drop unnecessary ACPI GPIO to Linux GPIO translation") in the Linux kernel reveals the issue we have in ACPI tables here, i.e. we must use hardware numbers for GPIO resources and, taking into consideration that GPIO and pin control are *different* IPs on Intel Tangier, we need to supply numbers properly. Besides that, it improves user experience since the official documentation for Intel Edison board is referring to GPIO hardware numbering scheme. Signed-off-by: Andy Shevchenko Acked-by: Bin Meng Reviewed-by: Simon Glass --- .../x86/include/asm/arch-tangier/acpi/southcluster.asl | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/arch/x86/include/asm/arch-tangier/acpi/southcluster.asl b/arch/x86/include/asm/arch-tangier/acpi/southcluster.asl index 288b57cb80..8162df59b5 100644 --- a/arch/x86/include/asm/arch-tangier/acpi/southcluster.asl +++ b/arch/x86/include/asm/arch-tangier/acpi/southcluster.asl @@ -173,13 +173,13 @@ Device (PCI0) Name (RBUF, ResourceTemplate() { GpioIo(Exclusive, PullUp, 0, 0, IoRestrictionOutputOnly, - "\\_SB.PCI0.GPIO", 0, ResourceConsumer, , ) { 91 } + "\\_SB.PCI0.GPIO", 0, ResourceConsumer, , ) { 110 } GpioIo(Exclusive, PullUp, 0, 0, IoRestrictionOutputOnly, - "\\_SB.PCI0.GPIO", 0, ResourceConsumer, , ) { 92 } + "\\_SB.PCI0.GPIO", 0, ResourceConsumer, , ) { 111 } GpioIo(Exclusive, PullUp, 0, 0, IoRestrictionOutputOnly, - "\\_SB.PCI0.GPIO", 0, ResourceConsumer, , ) { 93 } + "\\_SB.PCI0.GPIO", 0, ResourceConsumer, , ) { 112 } GpioIo(Exclusive, PullUp, 0, 0, IoRestrictionOutputOnly, - "\\_SB.PCI0.GPIO", 0, ResourceConsumer, , ) { 94 } + "\\_SB.PCI0.GPIO", 0, ResourceConsumer, , ) { 113 } }) Method (_CRS, 0, NotSerialized) @@ -245,7 +245,7 @@ Device (PCI0) { Connection ( GpioIo(Exclusive, PullDefault, 0, 0, IoRestrictionOutputOnly, - "\\_SB.PCI0.GPIO", 0, ResourceConsumer, , ) { 56 } + "\\_SB.PCI0.GPIO", 0, ResourceConsumer, , ) { 96 } ), WFD3, 1, } From 5d8c4ebd95e23a606a40a73920b8d7d096a91d37 Mon Sep 17 00:00:00 2001 From: Andy Shevchenko Date: Thu, 4 Jan 2018 18:40:13 +0200 Subject: [PATCH 3/3] x86: tangier: Add Bluetooth to ACPI table As defined on reference board followed by Intel Edison a Bluetooth device is attached to HSU0, i.e. PCI 0000:04.1. Describe it in ACPI accordingly. Note, we use BCM2E95 ID here as one most suitable for such device based on the description in commit message of commit 89ab37b489d1 ("Bluetooth: hci_bcm: Add support for BCM2E95 and BCM2E96") in the Linux kernel source tree. Signed-off-by: Andy Shevchenko Acked-by: Bin Meng Reviewed-by: Simon Glass --- .../asm/arch-tangier/acpi/southcluster.asl | 51 +++++++++++++++++++ 1 file changed, 51 insertions(+) diff --git a/arch/x86/include/asm/arch-tangier/acpi/southcluster.asl b/arch/x86/include/asm/arch-tangier/acpi/southcluster.asl index 8162df59b5..2b3b897c5b 100644 --- a/arch/x86/include/asm/arch-tangier/acpi/southcluster.asl +++ b/arch/x86/include/asm/arch-tangier/acpi/southcluster.asl @@ -260,6 +260,57 @@ Device (PCI0) Return (STA_VISIBLE) } } + + Device (HSU0) + { + Name (_ADR, 0x00040001) + + Method (_STA, 0, NotSerialized) + { + Return (STA_VISIBLE) + } + + Device (BTH0) + { + Name (_HID, "BCM2E95") + Name (_DEP, Package () + { + GPIO, + HSU0 + }) + + Method (_STA, 0, NotSerialized) + { + Return (STA_VISIBLE) + } + + Method (_CRS, 0, NotSerialized) + { + Name (RBUF, ResourceTemplate () + { + UartSerialBus (0x0001C200, DataBitsEight, StopBitsOne, + 0xFC, LittleEndian, ParityTypeNone, FlowControlHardware, + 0x20, 0x20, "\\_SB.PCI0.HSU0", 0, ResourceConsumer, , ) + GpioInt (Level, ActiveHigh, Exclusive, PullNone, 0, + "\\_SB.PCI0.GPIO", 0, ResourceConsumer, , ) { 185 } + GpioIo (Exclusive, PullDefault, 0, 0, IoRestrictionOutputOnly, + "\\_SB.PCI0.GPIO", 0, ResourceConsumer, , ) { 184 } + GpioIo (Exclusive, PullDefault, 0, 0, IoRestrictionOutputOnly, + "\\_SB.PCI0.GPIO", 0, ResourceConsumer, , ) { 71 } + }) + Return (RBUF) + } + + Name (_DSD, Package () { + ToUUID("daffd814-6eba-4d8c-8a91-bc9bbf4aa301"), + Package () { + Package () { "host-wakeup-gpios", Package () { ^BTH0, 0, 0, 0 } }, + Package () { "device-wakeup-gpios", Package () { ^BTH0, 1, 0, 0 } }, + Package () { "shutdown-gpios", Package () { ^BTH0, 2, 0, 0 } }, + } + }) + } + } } Device (FLIS)