Skip to contentSkip to conversation

ARM: Conexant Digicolor CX92755 SoC support

PATCH Applied Baruch Siach 2 participants 12 messages Jan 14, 2015 – Jan 28, 2015

Subsystems (5)
lore
Share & tools
lore

Baruch Siach

author maintainer
#0 lore raw

v3 cover ARM: Conexant Digicolor CX92755 SoC support

This series adds initial support for the Conexant CX92755 SoC. The CX92755 is one of the Digicolor series of SoCs, all sharing many of the same peripherals. The code was tested on the CX92755 evaluation kit, AKA Equinox.

Uses attempting to try this code will most likely also want the UART/console driver available from https://patchwork.kernel.org/patch/5515861/.

v3:
* Remove earlyprintk from dts bootargs (Arnd Bergmann)

* Move aliases from chip .dtsi to board .dts (Arnd Bergmann)

* Add 'cpus' node (Mark Rutland)

* Add commit log messages to all patches (Arnd Bergmann)

* Add Arnd's ack

* Split arch/arm stuff from the irq and timer drivers

v2:
http://marc.info/?t=142074613900007&r=1&w=2

* Remove .map_io assignment, debug_ll is enabled by default (Arnd Bergmann)

* Migrate the irq driver to generic irq chip, simplifying the code somewhat (Arnd Bergmann)

* Change the timer dt binding, so that the 'reg' property points to the first "Agent Communication" register. This should improve the chance of reusing this binding for other SoCs in this series.

* Add the CONTROL() and COUNT() macros to the timer driver to make the code clearer.

* Move arch/arm Kconfig changes from the clocksource driver patch to the base arch support patch to reduce dependency between them

v1:
http://thread.gmane.org/gmane.linux.kernel/1855027

Baruch Siach (4):
ARM: initial support for Conexant Digicolor CX92755 SoC
ARM: digicolor: add low level debug support
ARM: digicolor: add minimal device tree description
ARM: devicetree: document supported Conexant Digicolor SoC

 .../devicetree/bindings/arm/digicolor.txt          |   6 ++
 arch/arm/Kconfig                                   |   2 +
 arch/arm/Kconfig.debug                             |  12 ++-
 arch/arm/boot/dts/Makefile                         |   1 +
 arch/arm/boot/dts/conexant_equinox.dts             |  74 ++++++++++++++
 arch/arm/boot/dts/cx92755.dtsi                     | 107 +++++++++++++++++++++
 arch/arm/include/debug/digicolor.S                 |  35 +++++++
 arch/arm/mach-digicolor/Kconfig                    |   5 +
 arch/arm/mach-digicolor/Makefile                   |   1 +
 arch/arm/mach-digicolor/digicolor.c                |  18 ++++
 10 files changed, 259 insertions(+), 2 deletions(-)
 create mode 100644 Documentation/devicetree/bindings/arm/digicolor.txt
 create mode 100644 arch/arm/boot/dts/conexant_equinox.dts
 create mode 100644 arch/arm/boot/dts/cx92755.dtsi
 create mode 100644 arch/arm/include/debug/digicolor.S
 create mode 100644 arch/arm/mach-digicolor/Kconfig
 create mode 100644 arch/arm/mach-digicolor/Makefile
 create mode 100644 arch/arm/mach-digicolor/digicolor.c
Signature · 1 line
2.1.4
author maintainer
#1 lore raw

PATCH v3 1/4 ARM: initial support for Conexant Digicolor CX92755 SoC

Add initial support for the Conexant CX92755 SoC. The CX92755 is one of the Digicolor series of SoCs, all sharing many of the same peripherals. The code was tested on the CX92755 evaluation kit, AKA Equinox.

---
 arch/arm/Kconfig                    |  2 ++
 arch/arm/mach-digicolor/Kconfig     |  5 +++++
 arch/arm/mach-digicolor/Makefile    |  1 +
 arch/arm/mach-digicolor/digicolor.c | 18 ++++++++++++++++++
 4 files changed, 26 insertions(+)
 create mode 100644 arch/arm/mach-digicolor/Kconfig
 create mode 100644 arch/arm/mach-digicolor/Makefile
 create mode 100644 arch/arm/mach-digicolor/digicolor.c
arch/arm/Kconfig +2 -0
index 97d07ed60a0b..86e2202565e6 100644
@@ -858,6 +858,8 @@ source "arch/arm/mach-cns3xxx/Kconfig"
 
 source "arch/arm/mach-davinci/Kconfig"
 
+source "arch/arm/mach-digicolor/Kconfig"
+
 source "arch/arm/mach-dove/Kconfig"
 
 source "arch/arm/mach-ep93xx/Kconfig"
arch/arm/mach-digicolor/Kconfig new file +5 -0
new file mode 100644
index 000000000000..5a0669a2738e
@@ -0,0 +1,5 @@
+config ARCH_DIGICOLOR
+	bool "Conexant Digicolor SoC Support"
+	depends on ARCH_MULTI_V7
+	select CLKSRC_MMIO
+	select GENERIC_IRQ_CHIP
arch/arm/mach-digicolor/Makefile new file +1 -0
new file mode 100644
index 000000000000..3d8a1d228408
@@ -0,0 +1 @@
+obj-$(CONFIG_ARCH_DIGICOLOR)	+= digicolor.o
arch/arm/mach-digicolor/digicolor.c new file +18 -0
new file mode 100644
index 000000000000..cfc88d1caa47
@@ -0,0 +1,18 @@
+/*
+ * Support for Conexant Digicolor SoCs
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation.
+*/
+
+#include <asm/mach/arch.h>
+
+static const char *digicolor_dt_compat[] __initconst = {
+	"cnxt,cx92755",
+	NULL,
+};
+
+DT_MACHINE_START(DIGICOLOR, "Conexant Digicolor (Flattened Device Tree)")
+	.dt_compat	= digicolor_dt_compat,
+MACHINE_END
Signature · 1 line
2.1.4
author maintainer
#3 lore raw

PATCH v3 2/4 ARM: digicolor: add low level debug support

In reply to Baruch Siach

Use the USART peripheral as UART for low level debug. Only the UA0 port is currently supported.

---
 arch/arm/Kconfig.debug             | 12 ++++++++++--
 arch/arm/include/debug/digicolor.S | 35 +++++++++++++++++++++++++++++++++++
 2 files changed, 45 insertions(+), 2 deletions(-)
 create mode 100644 arch/arm/include/debug/digicolor.S
arch/arm/Kconfig.debug +10 -2
index 5ddd4906f7a7..7ccab0629dd2 100644
@@ -241,6 +241,13 @@ choice
 		  Say Y here if you want the debug print routines to direct
 		  their output to the serial port in the DC21285 (Footbridge).
 
+	config DEBUG_DIGICOLOR_UA0
+		bool "Kernel low-level debugging messages via Digicolor UA0"
+		depends on ARCH_DIGICOLOR
+		help
+		  Say Y here if you want the debug print routines to direct
+		  their output to the UA0 serial port in the CX92755.
+
 	config DEBUG_FOOTBRIDGE_COM1
 		bool "Kernel low-level debugging messages via footbridge 8250 at PCI COM1"
 		depends on FOOTBRIDGE
@@ -1204,6 +1211,7 @@ config DEBUG_LL_INCLUDE
 	default "debug/vt8500.S" if DEBUG_VT8500_UART0
 	default "debug/zynq.S" if DEBUG_ZYNQ_UART0 || DEBUG_ZYNQ_UART1
 	default "debug/bcm63xx.S" if DEBUG_UART_BCM63XX
+	default "debug/digicolor.S" if DEBUG_DIGICOLOR_UA0
 	default "mach/debug-macro.S"
 
 # Compatibility options for PL01x
@@ -1320,7 +1328,7 @@ config DEBUG_UART_PHYS
 		DEBUG_RCAR_GEN2_SCIF0 || DEBUG_RCAR_GEN2_SCIF2 || \
 		DEBUG_RMOBILE_SCIFA0 || DEBUG_RMOBILE_SCIFA1 || \
 		DEBUG_RMOBILE_SCIFA4 || DEBUG_S3C24XX_UART || \
-		DEBUG_UART_BCM63XX || DEBUG_ASM9260_UART
+		DEBUG_UART_BCM63XX || DEBUG_ASM9260_UART || DEBUG_DIGICOLOR_UA0
 
 config DEBUG_UART_VIRT
 	hex "Virtual base address of debug UART"
@@ -1398,7 +1406,7 @@ config DEBUG_UART_VIRT
 	depends on DEBUG_LL_UART_8250 || DEBUG_LL_UART_PL01X || \
 		DEBUG_UART_8250 || DEBUG_UART_PL01X || DEBUG_MESON_UARTAO || \
 		DEBUG_MSM_UART || DEBUG_QCOM_UARTDM || DEBUG_S3C24XX_UART || \
-		DEBUG_UART_BCM63XX || DEBUG_ASM9260_UART
+		DEBUG_UART_BCM63XX || DEBUG_ASM9260_UART || DEBUG_DIGICOLOR_UA0
 
 config DEBUG_UART_8250_SHIFT
 	int "Register offset shift for the 8250 debug UART"
arch/arm/include/debug/digicolor.S new file +35 -0
new file mode 100644
index 000000000000..c9517150766a
@@ -0,0 +1,35 @@
+/*
+ * Debugging macro include header for Conexant Digicolor USART
+ *
+ * Copyright (C) 2014 Paradox Innovation Ltd.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation.
+ *
+*/
+
+#define UA0_STATUS	0x0742
+#define UA0_EMI_REC	0x0744
+
+#define UA0_STATUS_TX_READY	0x40
+
+#ifdef CONFIG_DEBUG_UART_PHYS
+		.macro	addruart, rp, rv, tmp
+		ldr	\rp, =CONFIG_DEBUG_UART_PHYS
+		ldr	\rv, =CONFIG_DEBUG_UART_VIRT
+		.endm
+#endif
+
+		.macro	senduart,rd,rx
+		strb	\rd, [\rx, #UA0_EMI_REC]
+		.endm
+
+		.macro	waituart,rd,rx
+		.endm
+
+	.macro	busyuart,rd,rx
+1001:		ldrb	\rd, [\rx, #UA0_STATUS]
+		tst	\rd, #UA0_STATUS_TX_READY
+		beq	1001b
+		.endm
Signature · 1 line
2.1.4
author maintainer
#5 lore raw

PATCH v3 3/4 ARM: digicolor: add minimal device tree description

In reply to Baruch Siach

cx92755.dtsi describes CX92755 on chip peripherals. conexant_equinox.dts describes the Equinox evaluation board for the CX92755 SoC.

---
 arch/arm/boot/dts/Makefile             |   1 +
 arch/arm/boot/dts/conexant_equinox.dts |  74 +++++++++++++++++++++++
 arch/arm/boot/dts/cx92755.dtsi         | 107 +++++++++++++++++++++++++++++++++
 3 files changed, 182 insertions(+)
 create mode 100644 arch/arm/boot/dts/conexant_equinox.dts
 create mode 100644 arch/arm/boot/dts/cx92755.dtsi
arch/arm/boot/dts/Makefile +1 -0
index 91bd5bd62857..fbeb65eaddda 100644
@@ -75,6 +75,7 @@ dtb-$(CONFIG_ARCH_BRCMSTB) += \
 	bcm7445-bcm97445svmb.dtb
 dtb-$(CONFIG_ARCH_DAVINCI) += da850-enbw-cmc.dtb \
 	da850-evm.dtb
+dtb-$(CONFIG_ARCH_DIGICOLOR) += conexant_equinox.dtb
 dtb-$(CONFIG_ARCH_EFM32) += efm32gg-dk3750.dtb
 dtb-$(CONFIG_ARCH_EXYNOS) += exynos3250-monk.dtb \
 	exynos3250-rinato.dtb \
arch/arm/boot/dts/conexant_equinox.dts new file +74 -0

74 lines not on this page · raw message

arch/arm/boot/dts/cx92755.dtsi new file +107 -0

107 lines not on this page · raw message

Signature · 1 line
2.1.4
author maintainer
#8 lore raw

PATCH v3 4/4 ARM: devicetree: document supported Conexant Digicolor SoC

In reply to Baruch Siach

Of the Digicolor SoCs series only CX92755 is currently supported.

---
 Documentation/devicetree/bindings/arm/digicolor.txt | 6 ++++++
 1 file changed, 6 insertions(+)
 create mode 100644 Documentation/devicetree/bindings/arm/digicolor.txt
Documentation/devicetree/bindings/arm/digicolor.txt new file +6 -0
new file mode 100644
index 000000000000..658553f40b23
@@ -0,0 +1,6 @@
+Conexant Digicolor Platforms Device Tree Bindings
+
+Each device tree must specify which Conexant Digicolor SoC it uses.
+Must be the following compatible string:
+
+  cnxt,cx92755
Signature · 1 line
2.1.4
author maintainer
#10 lore raw
In reply to Baruch Siach

Hi ARM SoC maintainers,

Quoted 6 lines · Baruch Siach

This series adds initial support for the Conexant CX92755 SoC. The CX92755 is one of the Digicolor series of SoCs, all sharing many of the same peripherals. The code was tested on the CX92755 evaluation kit, AKA Equinox.

Uses attempting to try this code will most likely also want the UART/console driver available from https://patchwork.kernel.org/patch/5515861/.

Any chance of having this series merged for 3.20? Arnd has acked this already.

Thanks,
baruch

Quoted 58 lines

v3:
* Remove earlyprintk from dts bootargs (Arnd Bergmann)

* Move aliases from chip .dtsi to board .dts (Arnd Bergmann)

* Add 'cpus' node (Mark Rutland)

* Add commit log messages to all patches (Arnd Bergmann)

* Add Arnd's ack

* Split arch/arm stuff from the irq and timer drivers

v2:
http://marc.info/?t=142074613900007&r=1&w=2

* Remove .map_io assignment, debug_ll is enabled by default (Arnd Bergmann)

* Migrate the irq driver to generic irq chip, simplifying the code somewhat (Arnd Bergmann)

* Change the timer dt binding, so that the 'reg' property points to the first "Agent Communication" register. This should improve the chance of reusing this binding for other SoCs in this series.

* Add the CONTROL() and COUNT() macros to the timer driver to make the code clearer.

* Move arch/arm Kconfig changes from the clocksource driver patch to the base arch support patch to reduce dependency between them

v1:

   http://thread.gmane.org/gmane.linux.kernel/1855027

Baruch Siach (4):
ARM: initial support for Conexant Digicolor CX92755 SoC
ARM: digicolor: add low level debug support
ARM: digicolor: add minimal device tree description
ARM: devicetree: document supported Conexant Digicolor SoC

 .../devicetree/bindings/arm/digicolor.txt          |   6 ++
 arch/arm/Kconfig                                   |   2 +
 arch/arm/Kconfig.debug                             |  12 ++-
 arch/arm/boot/dts/Makefile                         |   1 +
 arch/arm/boot/dts/conexant_equinox.dts             |  74 ++++++++++++++
 arch/arm/boot/dts/cx92755.dtsi                     | 107 +++++++++++++++++++++
 arch/arm/include/debug/digicolor.S                 |  35 +++++++
 arch/arm/mach-digicolor/Kconfig                    |   5 +
 arch/arm/mach-digicolor/Makefile                   |   1 +
 arch/arm/mach-digicolor/digicolor.c                |  18 ++++
 10 files changed, 259 insertions(+), 2 deletions(-)
 create mode 100644 Documentation/devicetree/bindings/arm/digicolor.txt
 create mode 100644 arch/arm/boot/dts/conexant_equinox.dts
 create mode 100644 arch/arm/boot/dts/cx92755.dtsi
 create mode 100644 arch/arm/include/debug/digicolor.S
 create mode 100644 arch/arm/mach-digicolor/Kconfig
 create mode 100644 arch/arm/mach-digicolor/Makefile
 create mode 100644 arch/arm/mach-digicolor/digicolor.c
Signature · 3 lines
     http://baruch.siach.name/blog/                  ~. .~   Tk Open Systems
=}------------------------------------------------ooO--U--Ooo------------{=
   - baruch at tkos.co.il - tel: +972.2.679.5364, http://www.tkos.co.il -
#6 lore raw

Re: [PATCH v3 3/4] ARM: digicolor: add minimal device tree description

In reply to Baruch Siach

Hi,

arch/arm/boot/dts/conexant_equinox.dts

Quoted 30 lines · Baruch Siach

cx92755.dtsi describes CX92755 on chip peripherals. conexant_equinox.dts describes the Equinox evaluation board for the CX92755 SoC.

---
 arch/arm/boot/dts/Makefile             |   1 +
 arch/arm/boot/dts/conexant_equinox.dts |  74 +++++++++++++++++++++++
 arch/arm/boot/dts/cx92755.dtsi         | 107 +++++++++++++++++++++++++++++++++
 3 files changed, 182 insertions(+)
 create mode 100644 arch/arm/boot/dts/conexant_equinox.dts
 create mode 100644 arch/arm/boot/dts/cx92755.dtsi
arch/arm/boot/dts/Makefile +1 -0
index 91bd5bd62857..fbeb65eaddda 100644
@@ -75,6 +75,7 @@ dtb-$(CONFIG_ARCH_BRCMSTB) += \
 	bcm7445-bcm97445svmb.dtb
 dtb-$(CONFIG_ARCH_DAVINCI) += da850-enbw-cmc.dtb \
 	da850-evm.dtb
+dtb-$(CONFIG_ARCH_DIGICOLOR) += conexant_equinox.dtb
 dtb-$(CONFIG_ARCH_EFM32) += efm32gg-dk3750.dtb
 dtb-$(CONFIG_ARCH_EXYNOS) += exynos3250-monk.dtb \
 	exynos3250-rinato.dtb \
arch/arm/boot/dts/conexant_equinox.dts new file +0 -0
new file mode 100644
index 000000000000..f33bf5635d47

To segment the namespace a bit, we ask that you prefix your dts files with the platform. What would be a suitable prefix here? conexant? digicolor?

-Olof

#2 lore raw

Re: [PATCH v3 1/4] ARM: initial support for Conexant Digicolor CX92755 SoC

In reply to Baruch Siach
Quoted 6 lines · Baruch Siach

Add initial support for the Conexant CX92755 SoC. The CX92755 is one of the Digicolor series of SoCs, all sharing many of the same peripherals. The code was tested on the CX92755 evaluation kit, AKA Equinox.

Quoted 9 lines
---
 arch/arm/Kconfig                    |  2 ++
 arch/arm/mach-digicolor/Kconfig     |  5 +++++
 arch/arm/mach-digicolor/Makefile    |  1 +
 arch/arm/mach-digicolor/digicolor.c | 18 ++++++++++++++++++
 4 files changed, 26 insertions(+)
 create mode 100644 arch/arm/mach-digicolor/Kconfig
 create mode 100644 arch/arm/mach-digicolor/Makefile
 create mode 100644 arch/arm/mach-digicolor/digicolor.c

Applied, thanks.

-Olof

#4 lore raw

Re: [PATCH v3 2/4] ARM: digicolor: add low level debug support

In reply to Baruch Siach
Quoted 10 lines · Baruch Siach

Use the USART peripheral as UART for low level debug. Only the UA0 port is currently supported.

---
 arch/arm/Kconfig.debug             | 12 ++++++++++--
 arch/arm/include/debug/digicolor.S | 35 +++++++++++++++++++++++++++++++++++
 2 files changed, 45 insertions(+), 2 deletions(-)
 create mode 100644 arch/arm/include/debug/digicolor.S

Applied, thanks.

-Olof

#9 lore raw

Re: [PATCH v3 4/4] ARM: devicetree: document supported Conexant Digicolor SoC

In reply to Baruch Siach
Quoted 15 lines · Baruch Siach

Of the Digicolor SoCs series only CX92755 is currently supported.

---
 Documentation/devicetree/bindings/arm/digicolor.txt | 6 ++++++
 1 file changed, 6 insertions(+)
 create mode 100644 Documentation/devicetree/bindings/arm/digicolor.txt
Documentation/devicetree/bindings/arm/digicolor.txt new file +0 -0
new file mode 100644
index 000000000000..658553f40b23

Documentation/devicetree/bindings/arm/digicolor.txt line 6

Quoted 6 lines
Documentation/devicetree/bindings/arm/digicolor.txt new file +6 -0
@@ -0,0 +1,6 @@
+Conexant Digicolor Platforms Device Tree Bindings
+
+Each device tree must specify which Conexant Digicolor SoC it uses.
+Must be the following compatible string:
+
+  cnxt,cx92755

Applied, thanks.

-Olof

#11 lore raw
In reply to Baruch Siach
Quoted 11 lines · Baruch Siach

Hi ARM SoC maintainers,

Quoted 6 lines · Baruch Siach

This series adds initial support for the Conexant CX92755 SoC. The CX92755 is one of the Digicolor series of SoCs, all sharing many of the same peripherals. The code was tested on the CX92755 evaluation kit, AKA Equinox.

Uses attempting to try this code will most likely also want the UART/console driver available from https://patchwork.kernel.org/patch/5515861/.

Any chance of having this series merged for 3.20? Arnd has acked this already.

Yep, just had a small comment on naming for the third patch, the rest have been applied now.

-Olof

author maintainer
#7 lore raw

Re: [PATCH v3 3/4] ARM: digicolor: add minimal device tree description

In reply to Olof Johansson

Hi Olof,

Quoted 26 lines · Olof Johansson
Quoted 25 lines · Baruch Siach

cx92755.dtsi describes CX92755 on chip peripherals. conexant_equinox.dts describes the Equinox evaluation board for the CX92755 SoC.

---
 arch/arm/boot/dts/Makefile             |   1 +
 arch/arm/boot/dts/conexant_equinox.dts |  74 +++++++++++++++++++++++
 arch/arm/boot/dts/cx92755.dtsi         | 107 +++++++++++++++++++++++++++++++++
 3 files changed, 182 insertions(+)
 create mode 100644 arch/arm/boot/dts/conexant_equinox.dts
 create mode 100644 arch/arm/boot/dts/cx92755.dtsi
arch/arm/boot/dts/Makefile +1 -0
index 91bd5bd62857..fbeb65eaddda 100644
@@ -75,6 +75,7 @@ dtb-$(CONFIG_ARCH_BRCMSTB) += \
 	bcm7445-bcm97445svmb.dtb
 dtb-$(CONFIG_ARCH_DAVINCI) += da850-enbw-cmc.dtb \
 	da850-evm.dtb
+dtb-$(CONFIG_ARCH_DIGICOLOR) += conexant_equinox.dtb
 dtb-$(CONFIG_ARCH_EFM32) += efm32gg-dk3750.dtb
 dtb-$(CONFIG_ARCH_EXYNOS) += exynos3250-monk.dtb \
 	exynos3250-rinato.dtb \
Quoted 8 lines

arch/arm/boot/dts/conexant_equinox.dts

Quoted 5 lines
arch/arm/boot/dts/conexant_equinox.dts new file +0 -0
new file mode 100644
index 000000000000..f33bf5635d47

To segment the namespace a bit, we ask that you prefix your dts files with the platform. What would be a suitable prefix here? conexant? digicolor?

I think we should use the actual SoC name, that is cx92755, just like the .dtsi file is named. I'll resend this patch with the name change and a few more incremental changes needed by the interrupt controller and timer drivers.

Thanks,
baruch

Signature · 3 lines
     http://baruch.siach.name/blog/                  ~. .~   Tk Open Systems
=}------------------------------------------------ooO--U--Ooo------------{=
   - baruch at tkos.co.il - tel: +972.2.679.5364, http://www.tkos.co.il -