Skip to contentSkip to conversation

x86: tangier: Use actual GPIO hardware numbers

PATCH New Andy Shevchenko 3 participants 8 messages Jan 4, 2018 – Jan 9, 2018 x86

lore
Share & tools
lore
#0 lore raw

PATCH 1/2 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.

---

Bin, this is kinda urgent fix. I wouldn't like to have a release with wrong numbering scheme, although there is none users yet, only couple amateurs that are experimenting with the code.

 arch/x86/include/asm/arch-tangier/acpi/southcluster.asl | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)
arch/x86/include/asm/arch-tangier/acpi/southcluster.asl +5 -5
index 288b57cb80..8162df59b5 100644
@@ -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,
         }
Signature · 1 line
2.15.1
#1 lore raw

PATCH 2/2 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.

---
 .../include/asm/arch-tangier/acpi/southcluster.asl | 51 ++++++++++++++++++++++
 1 file changed, 51 insertions(+)
arch/x86/include/asm/arch-tangier/acpi/southcluster.asl +51 -0
index 8162df59b5..2b3b897c5b 100644
@@ -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)
Signature · 1 line
2.15.1
#2 lore raw

PATCH 2/2 x86: tangier: Add Bluetooth to ACPI table

Quoted 10 lines · Andy Shevchenko

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.

Quoted 5 lines
---
 .../include/asm/arch-tangier/acpi/southcluster.asl | 51 ++++++++++++++++++++++
 1 file changed, 51 insertions(+)
#3 lore raw

PATCH 2/2 x86: tangier: Add Bluetooth to ACPI table

In reply to Andy Shevchenko
Quoted 10 lines · Andy Shevchenko

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.

Quoted 4 lines
---
 .../include/asm/arch-tangier/acpi/southcluster.asl | 51 ++++++++++++++++++++++
 1 file changed, 51 insertions(+)
#4 lore raw

PATCH 2/2 x86: tangier: Add Bluetooth to ACPI table

Quoted 12 lines · Simon Glass
Quoted 10 lines · Andy Shevchenko

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.

Quoted 6 lines
Quoted 4 lines
---
 .../include/asm/arch-tangier/acpi/southcluster.asl | 51 ++++++++++++++++++++++
 1 file changed, 51 insertions(+)

applied to u-boot-x86, thanks!

#5 lore raw

PATCH 1/2 x86: tangier: Use actual GPIO hardware numbers

In reply to Andy Shevchenko
Quoted 11 lines · Andy Shevchenko

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.

Quoted 9 lines

---

Bin, this is kinda urgent fix. I wouldn't like to have a release with wrong numbering scheme, although there is none users yet, only couple amateurs that are experimenting with the code.

 arch/x86/include/asm/arch-tangier/acpi/southcluster.asl | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)
#6 lore raw

PATCH 1/2 x86: tangier: Use actual GPIO hardware numbers

In reply to Andy Shevchenko
Quoted 10 lines · Andy Shevchenko

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.

Quoted 6 lines

---

Bin, this is kinda urgent fix. I wouldn't like to have a release with wrong numbering scheme, although there is none users yet, only couple amateurs that are experimenting with the code.

Quoted 3 lines
 arch/x86/include/asm/arch-tangier/acpi/southcluster.asl | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)
#7 lore raw

PATCH 1/2 x86: tangier: Use actual GPIO hardware numbers

Quoted 12 lines · Simon Glass
Quoted 10 lines · Andy Shevchenko

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.

Quoted 8 lines
Quoted 6 lines

---

Bin, this is kinda urgent fix. I wouldn't like to have a release with wrong numbering scheme, although there is none users yet, only couple amateurs that are experimenting with the code.

applied to u-boot-x86, thanks!