Skip to contentSkip to conversation

ns16550: update compatible and reg-shift binding

PATCH New Thomas Chou 3 participants 6 messages Dec 11, 2015 – Dec 19, 2015

lore
Share & tools
lore
#0 lore raw

PATCH 1/2 ns16550: update compatible and reg-shift binding

Update compatible and reg-shift in device tree binding.

---
 doc/device-tree-bindings/serial/ns16550.txt | 17 +++++++++++++++--
 1 file changed, 15 insertions(+), 2 deletions(-)
doc/device-tree-bindings/serial/ns16550.txt +15 -2
index ef0b9ae..2b3904b 100644
@@ -3,8 +3,21 @@ NS16550 UART
 This UART driver supports many chip variants and is used in mamy SoCs.
 
 Required properties:
-- compatible: "ns16550" or "nvidia,tegra20-uart"
+- compatible: one of:
+	- "ns16550"
+	- "ns16550a"
+	- "nvidia,tegra20-uart"
+	- "snps,dw-apb-uart"
+	- "ti,omap2-uart"
+	- "ti,omap3-uart"
+	- "ti,omap4-uart"
+	- "ti,am3352-uart"
+	- "ti,am4372-uart"
+	- "ti,dra742-uart"
 - reg: start address and size of registers
-- reg-shift: shift value indicating register size: 0=byte, 1=16bit,2=32bit etc.
 - clock-frequency: input clock frequency for the UART (used to calculate the
     baud rate divisor)
+
+Optional properties:
+- reg-shift: shift value indicating register size: 0=byte, 1=16bit, 2=32bit etc.
+  default to 0 if not given.
Signature · 1 line
2.5.0
#1 lore raw

PATCH 2/2 ns16550: zap the rockchip serial compatible string

Zap the rockchip serial compatible string, because rockchip serial has "snps,dw-apb-uart" compatible string in the dts.

---
 drivers/serial/ns16550.c | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)
drivers/serial/ns16550.c +5 -1
index 3fab3f1..06ac005 100644
@@ -424,11 +424,15 @@ const struct dm_serial_ops ns16550_serial_ops = {
 };
 
 #if CONFIG_IS_ENABLED(OF_CONTROL)
+/*
+ * Please consider existing compatible strings before adding a new
+ * one to keep this table compact. Or you may add a generic "ns16550"
+ * compatible string to your dts.
+ */
 static const struct udevice_id ns16550_serial_ids[] = {
 	{ .compatible = "ns16550" },
 	{ .compatible = "ns16550a" },
 	{ .compatible = "nvidia,tegra20-uart" },
-	{ .compatible = "rockchip,rk3036-uart" },
 	{ .compatible = "snps,dw-apb-uart" },
 	{ .compatible = "ti,omap2-uart" },
 	{ .compatible = "ti,omap3-uart" },
Signature · 1 line
2.5.0
#2 lore raw

PATCH 2/2 ns16550: zap the rockchip serial compatible string

Quoted 7 lines · Thomas Chou

Zap the rockchip serial compatible string, because rockchip serial has "snps,dw-apb-uart" compatible string in the dts.

---
 drivers/serial/ns16550.c | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)
#3 lore raw

PATCH 1/2 ns16550: update compatible and reg-shift binding

In reply to Thomas Chou
Quoted 1 line · Thomas Chou

Update compatible and reg-shift in device tree binding.

Has this change been submitted to and accepted by the Linux kernel? That's where the official DT binding documents are stored. Honestly I think we should remove the copies in U-Boot to avoid confusion and forking.

The content of the change looks reasonable at a quick glance.

#4 lore raw

PATCH 1/2 ns16550: update compatible and reg-shift binding

Hi Stephen,

Quoted 9 lines · Stephen Warren
Quoted 1 line · Thomas Chou

Update compatible and reg-shift in device tree binding.

Has this change been submitted to and accepted by the Linux kernel? That's where the official DT binding documents are stored. Honestly I think we should remove the copies in U-Boot to avoid confusion and forking.

The content of the change looks reasonable at a quick glance.

These changes actually came from Linux kernel. They are scattered in several files. I included only those are prevalent to u-boot.

8250.txt
- compatible : one of:
- "ns8250"
- "ns16450"
- "ns16550a"
- "ns16550"
- "ns16750"
- "ns16850"
- For Tegra20, must contain "nvidia,tegra20-uart"
- For other Tegra, must contain '"nvidia,<chip>-uart", "nvidia,tegra20-uart"' where <chip> is tegra30, tegra114, tegra124, tegra132, or tegra210.

omap_serial.txt
- compatible : should be "ti,omap2-uart" for OMAP2 controllers
- compatible : should be "ti,omap3-uart" for OMAP3 controllers
- compatible : should be "ti,omap4-uart" for OMAP4 controllers
- compatible : should be "ti,am4372-uart" for AM437x controllers
- compatible : should be "ti,am3352-uart" for AM335x controllers
- compatible : should be "ti,dra742-uart" for DRA7x controllers

snps-dw-apb-uart.txt
- compatible : "snps,dw-apb-uart"
- reg-shift : quantity to shift the register offsets by. If this property is not present then the register offsets are not shifted.

I can change the description reg-shift property to above if this make it clearer.

I would agree that we can remove these copies of Linux kernel. Almost every dts binding I added to u-boot these months are copied from Linux kernel.

Best regards,
Thomas

#5 lore raw

PATCH 1/2 ns16550: update compatible and reg-shift binding

Quoted 20 lines · Thomas Chou

Hi Stephen,

Quoted 10 lines · Stephen Warren
Quoted 1 line · Thomas Chou

Update compatible and reg-shift in device tree binding.

Has this change been submitted to and accepted by the Linux kernel? That's where the official DT binding documents are stored. Honestly I think we should remove the copies in U-Boot to avoid confusion and forking.

The content of the change looks reasonable at a quick glance.

These changes actually came from Linux kernel. They are scattered in several files. I included only those are prevalent to u-boot.

8250.txt
- compatible : one of:
- "ns8250"

...

Quoted 3 lines

omap_serial.txt
- compatible : should be "ti,omap2-uart" for OMAP2 controllers

...

Quoted 5 lines

snps-dw-apb-uart.txt
- compatible : "snps,dw-apb-uart"
- reg-shift : quantity to shift the register offsets by. If this property is not present then the register offsets are not shifted.

If we are going to have DT binding definitions in U-Boot, we should at least keep the directory structure, filenames, and file content identical to the bindings in the Linux kernel.