diff mbox

[U-Boot,v2,6/7] x86: Use ePAPR defined properties for x86-uart

Message ID 1419682210-21181-7-git-send-email-bmeng.cn@gmail.com
State Changes Requested
Delegated to: Simon Glass
Headers show

Commit Message

Bin Meng Dec. 27, 2014, 12:10 p.m. UTC
Use ePAPR defined properties for x86-uart: clock-frequency and
current-speed. Assign the value of clock-frequency in device tree
to plat->clock of x86-uart instead of using hardcoded number.

Signed-off-by: Bin Meng <bmeng.cn@gmail.com>

---

Changes in v2:
- New patch to use ePAPR defined properties for x86-uart

 arch/x86/dts/serial.dtsi    | 5 ++---
 drivers/serial/serial_x86.c | 8 +++++++-
 2 files changed, 9 insertions(+), 4 deletions(-)

Comments

Simon Glass Dec. 28, 2014, 1:55 a.m. UTC | #1
On 27 December 2014 at 05:10, Bin Meng <bmeng.cn@gmail.com> wrote:
> Use ePAPR defined properties for x86-uart: clock-frequency and
> current-speed. Assign the value of clock-frequency in device tree
> to plat->clock of x86-uart instead of using hardcoded number.
>
> Signed-off-by: Bin Meng <bmeng.cn@gmail.com>

>
> ---
>
> Changes in v2:
> - New patch to use ePAPR defined properties for x86-uart
>
>  arch/x86/dts/serial.dtsi    | 5 ++---
>  drivers/serial/serial_x86.c | 8 +++++++-
>  2 files changed, 9 insertions(+), 4 deletions(-)
>
> diff --git a/arch/x86/dts/serial.dtsi b/arch/x86/dts/serial.dtsi
> index ebdda76..9b097f4 100644
> --- a/arch/x86/dts/serial.dtsi
> +++ b/arch/x86/dts/serial.dtsi
> @@ -3,8 +3,7 @@
>                 compatible = "x86-uart";
>                 reg = <0x3f8 8>;
>                 reg-shift = <0>;
> -               io-mapped = <1>;
> -               multiplier = <1>;
> -               baudrate = <115200>;
> +               clock-frequency = <1843200>;
> +               current-speed = <115200>;

Where is current speed used? If it is needed, please update the
binding at doc/device-tree-bindings/serial/ns16550.txt

>         };
>  };
> diff --git a/drivers/serial/serial_x86.c b/drivers/serial/serial_x86.c
> index e81e035..4bf6062 100644
> --- a/drivers/serial/serial_x86.c
> +++ b/drivers/serial/serial_x86.c
> @@ -6,9 +6,12 @@
>
>  #include <common.h>
>  #include <dm.h>
> +#include <fdtdec.h>
>  #include <ns16550.h>
>  #include <serial.h>
>
> +DECLARE_GLOBAL_DATA_PTR;
> +
>  static const struct udevice_id x86_serial_ids[] = {
>         { .compatible = "x86-uart" },
>         { }
> @@ -22,10 +25,13 @@ static int x86_serial_ofdata_to_platdata(struct udevice *dev)
>         ret = ns16550_serial_ofdata_to_platdata(dev);
>         if (ret)
>                 return ret;
> -       plat->clock = 1843200;
> +
> +       plat->clock = fdtdec_get_int(gd->fdt_blob, dev->of_offset,
> +                                    "clock-frequency", 1843200);
>
>         return 0;
>  }
> +
>  U_BOOT_DRIVER(serial_ns16550) = {
>         .name   = "serial_x86",
>         .id     = UCLASS_SERIAL,
> --
> 1.8.2.1
>

Regards,
Simon
Bin Meng Dec. 29, 2014, 7:45 a.m. UTC | #2
Hi Simon,

On Sun, Dec 28, 2014 at 9:55 AM, Simon Glass <sjg@chromium.org> wrote:
> On 27 December 2014 at 05:10, Bin Meng <bmeng.cn@gmail.com> wrote:
>> Use ePAPR defined properties for x86-uart: clock-frequency and
>> current-speed. Assign the value of clock-frequency in device tree
>> to plat->clock of x86-uart instead of using hardcoded number.
>>
>> Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
>
>>
>> ---
>>
>> Changes in v2:
>> - New patch to use ePAPR defined properties for x86-uart
>>
>>  arch/x86/dts/serial.dtsi    | 5 ++---
>>  drivers/serial/serial_x86.c | 8 +++++++-
>>  2 files changed, 9 insertions(+), 4 deletions(-)
>>
>> diff --git a/arch/x86/dts/serial.dtsi b/arch/x86/dts/serial.dtsi
>> index ebdda76..9b097f4 100644
>> --- a/arch/x86/dts/serial.dtsi
>> +++ b/arch/x86/dts/serial.dtsi
>> @@ -3,8 +3,7 @@
>>                 compatible = "x86-uart";
>>                 reg = <0x3f8 8>;
>>                 reg-shift = <0>;
>> -               io-mapped = <1>;
>> -               multiplier = <1>;
>> -               baudrate = <115200>;
>> +               clock-frequency = <1843200>;
>> +               current-speed = <115200>;
>
> Where is current speed used? If it is needed, please update the
> binding at doc/device-tree-bindings/serial/ns16550.txt
>

The current-speed is the baud rate of the serial port. Currently it is
put there for ePAPR completeness and not used by U-Boot as U-Boot is
using gd->baudrate for the serial console.

[snip]

Regards,
Bin
Simon Glass Dec. 29, 2014, 8:08 p.m. UTC | #3
Hi Bin,

On 29 December 2014 at 00:45, Bin Meng <bmeng.cn@gmail.com> wrote:
> Hi Simon,
>
> On Sun, Dec 28, 2014 at 9:55 AM, Simon Glass <sjg@chromium.org> wrote:
>> On 27 December 2014 at 05:10, Bin Meng <bmeng.cn@gmail.com> wrote:
>>> Use ePAPR defined properties for x86-uart: clock-frequency and
>>> current-speed. Assign the value of clock-frequency in device tree
>>> to plat->clock of x86-uart instead of using hardcoded number.
>>>
>>> Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
>>
>>>
>>> ---
>>>
>>> Changes in v2:
>>> - New patch to use ePAPR defined properties for x86-uart
>>>
>>>  arch/x86/dts/serial.dtsi    | 5 ++---
>>>  drivers/serial/serial_x86.c | 8 +++++++-
>>>  2 files changed, 9 insertions(+), 4 deletions(-)
>>>
>>> diff --git a/arch/x86/dts/serial.dtsi b/arch/x86/dts/serial.dtsi
>>> index ebdda76..9b097f4 100644
>>> --- a/arch/x86/dts/serial.dtsi
>>> +++ b/arch/x86/dts/serial.dtsi
>>> @@ -3,8 +3,7 @@
>>>                 compatible = "x86-uart";
>>>                 reg = <0x3f8 8>;
>>>                 reg-shift = <0>;
>>> -               io-mapped = <1>;
>>> -               multiplier = <1>;
>>> -               baudrate = <115200>;
>>> +               clock-frequency = <1843200>;
>>> +               current-speed = <115200>;
>>
>> Where is current speed used? If it is needed, please update the
>> binding at doc/device-tree-bindings/serial/ns16550.txt
>>
>
> The current-speed is the baud rate of the serial port. Currently it is
> put there for ePAPR completeness and not used by U-Boot as U-Boot is
> using gd->baudrate for the serial console.

OK I see, thanks.

Acked-by: Simon Glass <sjg@chromium.org>
diff mbox

Patch

diff --git a/arch/x86/dts/serial.dtsi b/arch/x86/dts/serial.dtsi
index ebdda76..9b097f4 100644
--- a/arch/x86/dts/serial.dtsi
+++ b/arch/x86/dts/serial.dtsi
@@ -3,8 +3,7 @@ 
 		compatible = "x86-uart";
 		reg = <0x3f8 8>;
 		reg-shift = <0>;
-		io-mapped = <1>;
-		multiplier = <1>;
-		baudrate = <115200>;
+		clock-frequency = <1843200>;
+		current-speed = <115200>;
 	};
 };
diff --git a/drivers/serial/serial_x86.c b/drivers/serial/serial_x86.c
index e81e035..4bf6062 100644
--- a/drivers/serial/serial_x86.c
+++ b/drivers/serial/serial_x86.c
@@ -6,9 +6,12 @@ 
 
 #include <common.h>
 #include <dm.h>
+#include <fdtdec.h>
 #include <ns16550.h>
 #include <serial.h>
 
+DECLARE_GLOBAL_DATA_PTR;
+
 static const struct udevice_id x86_serial_ids[] = {
 	{ .compatible = "x86-uart" },
 	{ }
@@ -22,10 +25,13 @@  static int x86_serial_ofdata_to_platdata(struct udevice *dev)
 	ret = ns16550_serial_ofdata_to_platdata(dev);
 	if (ret)
 		return ret;
-	plat->clock = 1843200;
+
+	plat->clock = fdtdec_get_int(gd->fdt_blob, dev->of_offset,
+				     "clock-frequency", 1843200);
 
 	return 0;
 }
+
 U_BOOT_DRIVER(serial_ns16550) = {
 	.name	= "serial_x86",
 	.id	= UCLASS_SERIAL,