Thread (3 messages) 3 messages, 3 authors, 2011-08-01

Re: [PATCH v2 4/7] tty: serial: support device tree in pxa

From: Haojian Zhuang <haojian.zhuang@gmail.com>
Date: 2011-08-01 02:50:47
Also in: linux-arm-kernel

Possibly related (same subject, not in this thread)

On Sat, Jul 30, 2011 at 12:49 AM, Russell King - ARM Linux
[off-list ref] wrote:
On Fri, Jul 29, 2011 at 10:45:39AM -0600, Grant Likely wrote:
quoted
On Thu, Jul 28, 2011 at 02:41:30PM +0800, Haojian Zhuang wrote:
quoted
+#ifdef CONFIG_OF
+   for (i = 0; i < PXA_SERIAL_NR; i++) {
+           if (serial_pxa_ports[i] == NULL)
+                   break;
+   }
+   if (i >= PXA_SERIAL_NR) {
+           pr_warn("can't find pxa serial port\n");
+           return -ENODEV;
+   }
+
+   if (of_property_read_u32(np, "clock-frequency", &clk)) {
+           pr_warn("no clock-frequency property set\n");
+           return -ENODEV;
+   }
+   if (of_property_read_u32(np, "current-speed", &spd) == 0)
+           sport->port.custom_divisor = clk / (16 * spd);
+
+   sprintf(name, "pxa2xx-uart.%d", i);
+   sport->clk = clk_get_sys(name, NULL);
+   if (IS_ERR(sport->clk)) {
+           ret = PTR_ERR(sport->clk);
+           goto err_free;
+   }
+   sport->port.uartclk = clk;
+#else
+   i = dev->id;
    sport->clk = clk_get(&dev->dev, NULL);
    if (IS_ERR(sport->clk)) {
            ret = PTR_ERR(sport->clk);
            goto err_free;
    }
+   sport->port.uartclk = clk_get_rate(sport->clk);
+#endif
This means a kernel build can either support DT or non-DT, but not
both.  DT & non-DT booting are full supported with the same kernel
image, so don't do it this way.

Instead, check for the presence of an of_node.  If it is there, do the
DT parsing.  If now, still support the old method.
Oh ffs, why is this DT stuff causing all the clk stuff to have to change.
And specifically why is stuff converting to use clk_get_sys().

clk_get_sys() is there to allow system devices to get their clocks.
It's not for general drivers to use.

Please, stop this madness.
So how could I get these clocks?

Thanks
Haojian
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help