From: Andreas Schwab <schwab@linux-m68k.org>
To: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Cc: linuxppc-dev@ozlabs.org
Subject: Re: [PATCH 01/15] i2c/powermac: Register i2c devices from device-tree
Date: Sun, 10 Jun 2012 13:35:45 +0200 [thread overview]
Message-ID: <m2zk8bz9f2.fsf@igel.home> (raw)
In-Reply-To: <1339312981.24838.98.camel@pasglop> (Benjamin Herrenschmidt's message of "Sun, 10 Jun 2012 17:23:01 +1000")
Benjamin Herrenschmidt <benh@kernel.crashing.org> writes:
> Ah, excellent, so a small quirk in i2c_powermac is the way to go then,
> we can detect it by name and hack up something. Either that or even
> better, in prom_init, we could add the missing property to the
> device-tree.
How does that look like? Though I'm not sure this is the right
approach. Those models with the onyx chip that lack the pcm3052
compatible property apparently have no OF node at all to key off the
workaround.
Andreas.
diff --git i/arch/powerpc/kernel/prom_init.c w/arch/powerpc/kernel/prom_init.c
index 1b488e5..1b04159 100644
--- i/arch/powerpc/kernel/prom_init.c
+++ w/arch/powerpc/kernel/prom_init.c
@@ -2554,7 +2554,7 @@ static void __init fixup_device_tree_chrp(void)
#endif
#if defined(CONFIG_PPC64) && defined(CONFIG_PPC_PMAC)
-static void __init fixup_device_tree_pmac(void)
+static void __init fixup_device_tree_pmac_u3_i2c(void)
{
phandle u3, i2c, mpic;
u32 u3_rev;
@@ -2593,6 +2593,39 @@ static void __init fixup_device_tree_pmac(void)
prom_setprop(i2c, "/u3@0,f8000000/i2c@f8001000", "interrupt-parent",
&parent, sizeof(parent));
}
+
+static void __init fixup_device_tree_pmac_deq(void)
+{
+ phandle deq;
+ u32 i2c_address;
+
+ /*
+ * On older G5s the tas3004 is described by a deq node missing a
+ * compatible definition, instead of a codec node with a
+ * tas3004,code compatible property. Fix that up here.
+ */
+ deq = call_prom("finddevice", 1, 1, ADDR("/ht@0,f2000000/pci@1/mac-io@7/i2c@18000/deq@6a"));
+ if (!PHANDLE_VALID(deq))
+ return;
+ /* Check for proper i2c-address. */
+ if (prom_getprop(deq, "i2c-address", &i2c_address, sizeof(i2c_address)) == PROM_ERROR)
+ return;
+ i2c_address = (i2c_address >> 1) & 0x7f;
+ if (i2c_address != 0x34 && i2c_address != 0x35)
+ return;
+
+ prom_printf("fixing up missing compatible for deq node...\n");
+
+ prom_setprop (deq, "/ht@0,f2000000/pci@1/mac-io@7/i2c@18000/deq@6a",
+ "compatible", &RELOC("tas3004\0codec\0"),
+ sizeof("tas3004\0codec\0"));
+}
+
+static void __init fixup_device_tree_pmac(void)
+{
+ fixup_device_tree_pmac_u3_i2c();
+ fixup_device_tree_pmac_deq();
+}
#else
#define fixup_device_tree_pmac()
#endif
--
Andreas Schwab, schwab@linux-m68k.org
GPG Key fingerprint = 58CA 54C7 6D53 942B 1756 01D3 44D5 214B 8276 4ED5
"And now for something completely different."
next prev parent reply other threads:[~2012-06-10 11:35 UTC|newest]
Thread overview: 37+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-04-19 8:16 [PATCH 00/15] PowerMac i2c API conversions & windfarm updates Benjamin Herrenschmidt
2012-04-19 8:16 ` [PATCH 01/15] i2c/powermac: Register i2c devices from device-tree Benjamin Herrenschmidt
2012-04-19 8:16 ` [PATCH 02/15] powerpc/pmac: Convert therm_adt746x to new i2c probing Benjamin Herrenschmidt
2012-04-19 8:16 ` [PATCH 03/15] powerpc/pmac: Convert windfarm_lm75 " Benjamin Herrenschmidt
2012-04-19 8:16 ` [PATCH 04/15] powerpc/pmac: Convert windfarm_max6690 " Benjamin Herrenschmidt
2012-04-19 8:16 ` [PATCH 05/15] powerpc/pmac: Convert windfarm_smu_sat " Benjamin Herrenschmidt
2012-04-19 8:16 ` [PATCH 06/15] powerpc/windfarm: const'ify and add "priv" field to controls & sensors Benjamin Herrenschmidt
2012-04-19 8:16 ` [PATCH 07/15] powerpc/pmac: Don't add_timer() twice Benjamin Herrenschmidt
2012-04-19 8:16 ` [PATCH 08/15] powerpc/windfarm: Remove spurrious sysfs_attr_init() Benjamin Herrenschmidt
2012-04-19 8:16 ` [PATCH 09/15] powerpc/windfarm: Improve display of fan speeds in sysfs Benjamin Herrenschmidt
2012-04-19 8:16 ` [PATCH 10/15] powerpc/windfarm: Add useful accessors Benjamin Herrenschmidt
2012-04-19 8:16 ` [PATCH 11/15] powerpc/windfarm: Add ad7417 sensor Benjamin Herrenschmidt
2012-04-19 8:16 ` [PATCH 12/15] powerpc/windfarm: Add lm87 sensor Benjamin Herrenschmidt
2012-04-19 8:16 ` [PATCH 13/15] powerpc/windfarm: Updates to lm75 and max6690 sensors Benjamin Herrenschmidt
2012-04-19 8:16 ` [PATCH 14/15] powerpc/windfarm: Add Fan Control Unit controls for G5s Benjamin Herrenschmidt
2012-04-19 8:16 ` [PATCH 15/15] powerpc/powermac: New windfarm driver for PowerMac G5 (AGP) and Xserve G5 Benjamin Herrenschmidt
2012-04-19 9:37 ` [PATCH 00/15] PowerMac i2c API conversions & windfarm updates Jean Delvare
2012-04-19 9:36 ` Christian Kujau
2012-04-19 20:59 ` Benjamin Herrenschmidt
[not found] ` <20120419113723.03a24d46__2279.25503063506$1334829915$gmane$org@endymion.delvare>
2012-04-19 10:11 ` Andreas Schwab
2012-04-19 11:02 ` Jean Delvare
[not found] ` <m27gxc2fqq.fsf__16075.0973890119$1334830355$gmane$org@igel.home>
2012-04-19 10:14 ` Andreas Schwab
[not found] ` <m239802flw.fsf__48316.0902433612$1334830569$gmane$org@igel.home>
2012-04-19 10:19 ` Andreas Schwab
[not found] ` <1334823416-9138-3-git-send-email-benh__10691.3206204355$1334826366$gmane$org@kernel.crashing.org>
2012-04-19 13:10 ` [PATCH 02/15] powerpc/pmac: Convert therm_adt746x to new i2c probing Andreas Schwab
[not found] ` <1334823416-9138-2-git-send-email-benh__33169.052625499$1334826821$gmane$org@kernel.crashing.org>
2012-04-19 9:34 ` [PATCH 01/15] i2c/powermac: Register i2c devices from device-tree Andreas Schwab
2012-06-09 13:58 ` Andreas Schwab
2012-06-09 22:11 ` Benjamin Herrenschmidt
2012-06-09 22:30 ` Andreas Schwab
2012-06-09 22:36 ` Benjamin Herrenschmidt
2012-06-09 22:59 ` Andreas Schwab
2012-06-09 23:10 ` Benjamin Herrenschmidt
2012-06-10 7:13 ` Andreas Schwab
2012-06-10 7:23 ` Benjamin Herrenschmidt
2012-06-10 11:35 ` Andreas Schwab [this message]
2012-06-18 1:27 ` Benjamin Herrenschmidt
2012-06-18 2:03 ` Benjamin Herrenschmidt
2012-06-18 7:30 ` [PATCH] sound/aoa: remove i2c attach_adapter method Andreas Schwab
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=m2zk8bz9f2.fsf@igel.home \
--to=schwab@linux-m68k.org \
--cc=benh@kernel.crashing.org \
--cc=linuxppc-dev@ozlabs.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).