Skip to contentSkip to conversation

ARM: clps711x: Switch to DT and Multiplatform

PATCH New Alexander Shiyan 6 participants 33 messages Jun 4, 2016 – Aug 19, 2016

Subsystems (15)
lore
Share & tools
lore
#0 lore raw

cover ARM: clps711x: Switch to DT and Multiplatform

The Cirrus Logic company announced EOL on May 20 this year for the ARMv4 processors, so the company where I work ceases the use of the CPU for our devices and switches our boards to use with another type of CPU. I can not continue develop for this platform, so I gathered all the existing patches/solutions for the final series. Of course, we keep support our existing products with this CPU, so I remain able to check any third-party patches.
This series of patches switches CLPS711X platform for use with device tree and adds multiplatform support.
The series contain various subsystem changes but designed for applying directly in the ARM-SOC tree.

Alexander Shiyan (22):
ARM: clps711x: Reduce static map size
clk: clps711x: Changing the compatibility string to match with the
smallest supported chip
clocksource: clps711x: Changing the compatibility string to match with
the smallest supported chip
irqchip: clps711x: Changing the compatibility string to match with the
smallest supported chip
serial: clps711x: Changing the compatibility string to match with the
smallest supported chip
pwm: clps711x: Changing the compatibility string to match with the
smallest supported chip
gpio: clps711x: Changing the compatibility string to match with the
smallest supported chip
gpio: syscon: Changing the compatibility string to match with the
smallest supported chip
input: clps711x-keypad: Changing the compatibility string to match
with the smallest supported chip
video: clps711x-fb: Changing the compatibility string to match with
the smallest supported chip
ARM: clps711x: Add basic DT support
ARM: dts: clps711x: Add DT Cirrus Logic EDB7211 Development board
spi: clps711x: Driver refactor
ARM: clps711x: Remove board support
video: clps711x: Remove old driver
clk: clps711x: Remove board support
clocksource: clps711x: Remove board support
irqchip: clps711x: Remove board support
serial: clps711x: Remove board support
gpio: clps711x: Remove board support
ARM: clps711x: Switch to MULTIPLATFORM
ARM: config: Add a multi_v4t_defconfig

 .../devicetree/bindings/clock/clps711x-clock.txt   |   4 +-
 .../bindings/display/cirrus,clps711x-fb.txt        |   4 +-
 .../bindings/gpio/cirrus,clps711x-mctrl-gpio.txt   |   4 +-
 .../devicetree/bindings/gpio/gpio-clps711x.txt     |   4 +-
 .../devicetree/bindings/input/clps711x-keypad.txt  |   4 +-
 .../interrupt-controller/cirrus,clps711x-intc.txt  |   4 +-
 .../bindings/pwm/cirrus,clps711x-pwm.txt           |   5 +-
 .../bindings/serial/cirrus,clps711x-uart.txt       |   4 +-
 .../bindings/timer/cirrus,clps711x-timer.txt       |   6 +-
 arch/arm/Kconfig                                   |  14 -
 arch/arm/Makefile                                  |   1 -
 arch/arm/boot/dts/Makefile                         |   2 +
 arch/arm/boot/dts/ep7209.dtsi                      | 191 +++++++++++
 arch/arm/boot/dts/ep7211-edb7211.dts               | 100 ++++++
 arch/arm/boot/dts/ep7211.dtsi                      |  12 +
 arch/arm/configs/clps711x_defconfig                |  91 -----
 arch/arm/configs/multi_v4t_defconfig               | 106 ++++++
 arch/arm/include/debug/clps711x.S                  |   4 +-
 arch/arm/mach-clps711x/Kconfig                     |  53 +--
 arch/arm/mach-clps711x/Makefile                    |  14 +-
 arch/arm/mach-clps711x/Makefile.boot               |   5 -
 arch/arm/mach-clps711x/board-autcpu12.c            | 275 ---------------
 arch/arm/mach-clps711x/board-cdb89712.c            | 147 --------
 arch/arm/mach-clps711x/board-clep7312.c            |  45 ---
 arch/arm/mach-clps711x/board-dt.c                  |  82 +++++
 arch/arm/mach-clps711x/board-edb7211.c             | 188 -----------
 arch/arm/mach-clps711x/board-p720t.c               | 373 ---------------------
 arch/arm/mach-clps711x/common.c                    |  65 ----
 arch/arm/mach-clps711x/common.h                    |  23 --
 arch/arm/mach-clps711x/devices.c                   | 149 --------
 arch/arm/mach-clps711x/devices.h                   |  12 -
 arch/arm/mach-clps711x/include/mach/clps711x.h     | 204 -----------
 arch/arm/mach-clps711x/include/mach/hardware.h     |  53 ---
 arch/arm/mach-clps711x/include/mach/uncompress.h   |  55 ---
 drivers/clk/clk-clps711x.c                         |  27 +-
 drivers/clocksource/clps711x-timer.c               |  14 +-
 drivers/gpio/gpio-clps711x.c                       |  10 +-
 drivers/gpio/gpio-syscon.c                         |   4 +-
 drivers/input/keyboard/clps711x-keypad.c           |   4 +-
 drivers/irqchip/irq-clps711x.c                     |   9 +-
 drivers/pwm/pwm-clps711x.c                         |   2 +-
 drivers/spi/spi-clps711x.c                         |  69 ++--
 drivers/tty/serial/clps711x.c                      |  24 +-
 drivers/video/fbdev/Kconfig                        |   7 -
 drivers/video/fbdev/Makefile                       |   1 -
 drivers/video/fbdev/clps711x-fb.c                  |   4 +-
 drivers/video/fbdev/clps711xfb.c                   | 314 -----------------
 include/linux/platform_data/spi-clps711x.h         |  21 --
 48 files changed, 582 insertions(+), 2231 deletions(-)
 create mode 100644 arch/arm/boot/dts/ep7209.dtsi
 create mode 100644 arch/arm/boot/dts/ep7211-edb7211.dts
 create mode 100644 arch/arm/boot/dts/ep7211.dtsi
 delete mode 100644 arch/arm/configs/clps711x_defconfig
 create mode 100644 arch/arm/configs/multi_v4t_defconfig
 delete mode 100644 arch/arm/mach-clps711x/board-autcpu12.c
 delete mode 100644 arch/arm/mach-clps711x/board-cdb89712.c
 delete mode 100644 arch/arm/mach-clps711x/board-clep7312.c
 create mode 100644 arch/arm/mach-clps711x/board-dt.c
 delete mode 100644 arch/arm/mach-clps711x/board-edb7211.c
 delete mode 100644 arch/arm/mach-clps711x/board-p720t.c
 delete mode 100644 arch/arm/mach-clps711x/common.c
 delete mode 100644 arch/arm/mach-clps711x/common.h
 delete mode 100644 arch/arm/mach-clps711x/devices.c
 delete mode 100644 arch/arm/mach-clps711x/devices.h
 delete mode 100644 arch/arm/mach-clps711x/include/mach/clps711x.h
 delete mode 100644 arch/arm/mach-clps711x/include/mach/hardware.h
 delete mode 100644 arch/arm/mach-clps711x/include/mach/uncompress.h
 delete mode 100644 drivers/video/fbdev/clps711xfb.c
 delete mode 100644 include/linux/platform_data/spi-clps711x.h
Signature · 1 line
2.4.9
#1 lore raw

PATCH 1/22 ARM: clps711x: Reduce static map size

Last CLPS711X CPU register is PLLR has 0xa5a8 address, so we can reduce the map to 48k and align the end of the static at VMALLOC_START.

---
 arch/arm/include/debug/clps711x.S              | 4 ++--
 arch/arm/mach-clps711x/common.c                | 4 ++--
 arch/arm/mach-clps711x/include/mach/hardware.h | 2 +-
 3 files changed, 5 insertions(+), 5 deletions(-)
arch/arm/include/debug/clps711x.S +2 -2
index abe2254..c17ac5c 100644
@@ -9,10 +9,10 @@
 
 #ifndef CONFIG_DEBUG_CLPS711X_UART2
 #define CLPS711X_UART_PADDR	(0x80000000 + 0x0000)
-#define CLPS711X_UART_VADDR	(0xfeff0000 + 0x0000)
+#define CLPS711X_UART_VADDR	(0xfeff4000 + 0x0000)
 #else
 #define CLPS711X_UART_PADDR	(0x80000000 + 0x1000)
-#define CLPS711X_UART_VADDR	(0xfeff0000 + 0x1000)
+#define CLPS711X_UART_VADDR	(0xfeff4000 + 0x1000)
 #endif
 
 #define SYSFLG		(0x0140)
arch/arm/mach-clps711x/common.c +2 -2
index 671acc5a..6466da8 100644
@@ -37,8 +37,8 @@ static struct map_desc clps711x_io_desc[] __initdata = {
 	{
 		.virtual	= (unsigned long)CLPS711X_VIRT_BASE,
 		.pfn		= __phys_to_pfn(CLPS711X_PHYS_BASE),
-		.length		= SZ_64K,
-		.type		= MT_DEVICE
+		.length		= 48 * SZ_1K,
+		.type		= MT_DEVICE,
 	}
 };
 
arch/arm/mach-clps711x/include/mach/hardware.h +1 -1
index 833129c..cfd0e2c 100644
@@ -24,7 +24,7 @@
 
 #include <mach/clps711x.h>
 
-#define CLPS711X_VIRT_BASE	IOMEM(0xfeff0000)
+#define CLPS711X_VIRT_BASE	IOMEM(0xfeff4000)
 
 #ifndef __ASSEMBLY__
 #define clps_readb(off)		readb(CLPS711X_VIRT_BASE + (off))
Signature · 1 line
2.4.9
#2 lore raw

PATCH 2/22 clk: clps711x: Changing the compatibility string to match with the smallest supported chip

In reply to Alexander Shiyan

This patch changes the compatibility string to match with the smallest supported chip (EP7209). Since the DT-support for this CPU is not yet announced, this change is safe.

---
 Documentation/devicetree/bindings/clock/clps711x-clock.txt | 4 ++--
 drivers/clk/clk-clps711x.c                                 | 2 +-
 2 files changed, 3 insertions(+), 3 deletions(-)
Documentation/devicetree/bindings/clock/clps711x-clock.txt +2 -2
index ce5a747..f1bd53f 100644
@@ -1,7 +1,7 @@
 * Clock bindings for the Cirrus Logic CLPS711X CPUs
 
 Required properties:
-- compatible       : Shall contain "cirrus,clps711x-clk".
+- compatible       : Shall contain "cirrus,ep7209-clk".
 - reg              : Address of the internal register set.
 - startup-frequency: Factory set CPU startup frequency in HZ.
 - #clock-cells     : Should be <1>.
@@ -13,7 +13,7 @@ for the full list of CLPS711X clock IDs.
 Example:
 	clks: clks at 80000000 {
 		#clock-cells = <1>;
-		compatible = "cirrus,ep7312-clk", "cirrus,clps711x-clk";
+		compatible = "cirrus,ep7312-clk", "cirrus,ep7209-clk";
 		reg = <0x80000000 0xc000>;
 		startup-frequency = <73728000>;
 	};
drivers/clk/clk-clps711x.c +1 -1
index 1f60b02..adaf109 100644
@@ -184,5 +184,5 @@ static void __init clps711x_clk_init_dt(struct device_node *np)
 	of_clk_add_provider(np, of_clk_src_onecell_get,
 			    &clps711x_clk->clk_data);
 }
-CLK_OF_DECLARE(clps711x, "cirrus,clps711x-clk", clps711x_clk_init_dt);
+CLK_OF_DECLARE(clps711x, "cirrus,ep7209-clk", clps711x_clk_init_dt);
 #endif
Signature · 1 line
2.4.9
#3 lore raw

PATCH 3/22 clocksource: clps711x: Changing the compatibility string to match with the smallest supported chip

In reply to Alexander Shiyan

This patch changes the compatibility string to match with the smallest supported chip (EP7209). Since the DT-support for this CPU is not yet announced, this change is safe.

---
 Documentation/devicetree/bindings/timer/cirrus,clps711x-timer.txt | 6 +++---
 drivers/clocksource/clps711x-timer.c                              | 2 +-
 2 files changed, 4 insertions(+), 4 deletions(-)
Documentation/devicetree/bindings/timer/cirrus,clps711x-timer.txt +3 -3
index cd55b52..d4c62e7 100644
@@ -1,7 +1,7 @@
 * Cirrus Logic CLPS711X Timer Counter
 
 Required properties:
-- compatible: Shall contain "cirrus,clps711x-timer".
+- compatible: Shall contain "cirrus,ep7209-timer".
 - reg       : Address and length of the register set.
 - interrupts: The interrupt number of the timer.
 - clocks    : phandle of timer reference clock.
@@ -15,14 +15,14 @@ Example:
 	};
 
 	timer1: timer at 80000300 {
-		compatible = "cirrus,ep7312-timer", "cirrus,clps711x-timer";
+		compatible = "cirrus,ep7312-timer", "cirrus,ep7209-timer";
 		reg = <0x80000300 0x4>;
 		interrupts = <8>;
 		clocks = <&clks 5>;
 	};
 
 	timer2: timer at 80000340 {
-		compatible = "cirrus,ep7312-timer", "cirrus,clps711x-timer";
+		compatible = "cirrus,ep7312-timer", "cirrus,ep7209-timer";
 		reg = <0x80000340 0x4>;
 		interrupts = <9>;
 		clocks = <&clks 6>;
drivers/clocksource/clps711x-timer.c +1 -1
index cdd86e3..7c65f9e 100644
@@ -121,5 +121,5 @@ static void __init clps711x_timer_init(struct device_node *np)
 		break;
 	}
 }
-CLOCKSOURCE_OF_DECLARE(clps711x, "cirrus,clps711x-timer", clps711x_timer_init);
+CLOCKSOURCE_OF_DECLARE(clps711x, "cirrus,ep7209-timer", clps711x_timer_init);
 #endif
Signature · 1 line
2.4.9
#4 lore raw

PATCH 3/22 clocksource: clps711x: Changing the compatibility string to match with the smallest supported chip

Quoted 6 lines · Alexander Shiyan

This patch changes the compatibility string to match with the smallest supported chip (EP7209). Since the DT-support for this CPU is not yet announced, this change is safe.

---

but please wait for Rob Herring's ack before taking this patch in your tree.

Quoted 1 line
 Documentation/devicetree/bindings/timer/cirrus,clps711x-timer.txt | 6 

+++---

Quoted 41 lines
 drivers/clocksource/clps711x-timer.c                              | 2 +-
 2 files changed, 4 insertions(+), 4 deletions(-)
Documentation/devicetree/bindings/timer/cirrus,clps711x-timer.txt +3 -3
index cd55b52..d4c62e7 100644
@@ -1,7 +1,7 @@
 * Cirrus Logic CLPS711X Timer Counter
 
 Required properties:
-- compatible: Shall contain "cirrus,clps711x-timer".
+- compatible: Shall contain "cirrus,ep7209-timer".
 - reg       : Address and length of the register set.
 - interrupts: The interrupt number of the timer.
 - clocks    : phandle of timer reference clock.
@@ -15,14 +15,14 @@ Example:
 	};
 
 	timer1: timer at 80000300 {
-		compatible = "cirrus,ep7312-timer", "cirrus,clps711x-timer";
+		compatible = "cirrus,ep7312-timer", "cirrus,ep7209-timer";
 		reg = <0x80000300 0x4>;
 		interrupts = <8>;
 		clocks = <&clks 5>;
 	};
 
 	timer2: timer at 80000340 {
-		compatible = "cirrus,ep7312-timer", "cirrus,clps711x-timer";
+		compatible = "cirrus,ep7312-timer", "cirrus,ep7209-timer";
 		reg = <0x80000340 0x4>;
 		interrupts = <9>;
 		clocks = <&clks 6>;
drivers/clocksource/clps711x-timer.c +0 -0
index cdd86e3..7c65f9e 100644
@@ -121,5 +121,5 @@ static void __init clps711x_timer_init(struct device_node *np)
 		break;
 	}
 }
#5 lore raw

PATCH 4/22 irqchip: clps711x: Changing the compatibility string to match with the smallest supported chip

In reply to Alexander Shiyan

This patch changes the compatibility string to match with the smallest supported chip (EP7209). Since the DT-support for this CPU is not yet announced, this change is safe.

---
 .../devicetree/bindings/interrupt-controller/cirrus,clps711x-intc.txt | 4 ++--
 drivers/irqchip/irq-clps711x.c                                        | 2 +-
 2 files changed, 3 insertions(+), 3 deletions(-)
Documentation/devicetree/bindings/interrupt-controller/cirrus,clps711x-intc.txt +2 -2
index 759339c..969b458 100644
@@ -2,7 +2,7 @@ Cirrus Logic CLPS711X Interrupt Controller
 
 Required properties:
 
-- compatible: Should be "cirrus,clps711x-intc".
+- compatible: Should be "cirrus,ep7209-intc".
 - reg: Specifies base physical address of the registers set.
 - interrupt-controller: Identifies the node as an interrupt controller.
 - #interrupt-cells: Specifies the number of cells needed to encode an
@@ -34,7 +34,7 @@ ID	Name	Description
 
 Example:
 	intc: interrupt-controller {
-		compatible = "cirrus,clps711x-intc";
+		compatible = "cirrus,ep7312-intc", "cirrus,ep7209-intc";
 		reg = <0x80000000 0x4000>;
 		interrupt-controller;
 		#interrupt-cells = <1>;
drivers/irqchip/irq-clps711x.c +1 -1
index 2223b3f..f913f4d 100644
@@ -234,5 +234,5 @@ static int __init clps711x_intc_init_dt(struct device_node *np,
 
 	return _clps711x_intc_init(np, res.start, resource_size(&res));
 }
-IRQCHIP_DECLARE(clps711x, "cirrus,clps711x-intc", clps711x_intc_init_dt);
+IRQCHIP_DECLARE(clps711x, "cirrus,ep7209-intc", clps711x_intc_init_dt);
 #endif
Signature · 1 line
2.4.9
#6 lore raw

PATCH 5/22 serial: clps711x: Changing the compatibility string to match with the smallest supported chip

In reply to Alexander Shiyan

This patch changes the compatibility string to match with the smallest supported chip (EP7209). Since the DT-support for this CPU is not yet announced, this change is safe.

---
 Documentation/devicetree/bindings/serial/cirrus,clps711x-uart.txt | 4 ++--
 drivers/tty/serial/clps711x.c                                     | 2 +-
 2 files changed, 3 insertions(+), 3 deletions(-)
Documentation/devicetree/bindings/serial/cirrus,clps711x-uart.txt +2 -2
index caaeb25..07013fa 100644
@@ -1,7 +1,7 @@
 * Cirrus Logic CLPS711X Universal Asynchronous Receiver/Transmitter (UART)
 
 Required properties:
-- compatible: Should be "cirrus,clps711x-uart".
+- compatible: Should be "cirrus,ep7209-uart".
 - reg: Address and length of the register set for the device.
 - interrupts: Should contain UART TX and RX interrupt.
 - clocks: Should contain UART core clock number.
@@ -20,7 +20,7 @@ Example:
 	};
 
 	uart1: uart at 80000480 {
-		compatible = "cirrus,clps711x-uart";
+		compatible = "cirrus,ep7312-uart","cirrus,ep7209-uart";
 		reg = <0x80000480 0x80>;
 		interrupts = <12 13>;
 		clocks = <&clks 11>;
drivers/tty/serial/clps711x.c +1 -1
index 5beafd2..ac13286 100644
@@ -539,7 +539,7 @@ static int uart_clps711x_remove(struct platform_device *pdev)
 }
 
 static const struct of_device_id __maybe_unused clps711x_uart_dt_ids[] = {
-	{ .compatible = "cirrus,clps711x-uart", },
+	{ .compatible = "cirrus,ep7209-uart", },
 	{ }
 };
 MODULE_DEVICE_TABLE(of, clps711x_uart_dt_ids);
Signature · 1 line
2.4.9
#7 lore raw

PATCH 6/22 pwm: clps711x: Changing the compatibility string to match with the smallest supported chip

In reply to Alexander Shiyan

This patch changes the compatibility string to match with the smallest supported chip (EP7209). Since the DT-support for this CPU is not yet announced, this change is safe.

---
 Documentation/devicetree/bindings/pwm/cirrus,clps711x-pwm.txt | 5 ++---
 drivers/pwm/pwm-clps711x.c                                    | 2 +-
 2 files changed, 3 insertions(+), 4 deletions(-)
Documentation/devicetree/bindings/pwm/cirrus,clps711x-pwm.txt +2 -3
index a183db4..c0b2028 100644
@@ -1,15 +1,14 @@
 * Cirris Logic CLPS711X PWM controller
 
 Required properties:
-- compatible: Shall contain "cirrus,clps711x-pwm".
+- compatible: Shall contain "cirrus,ep7209-pwm".
 - reg: Physical base address and length of the controller's registers.
 - clocks: phandle + clock specifier pair of the PWM reference clock.
 - #pwm-cells: Should be 1. The cell specifies the index of the channel.
 
 Example:
 	pwm: pwm at 80000400 {
-		compatible = "cirrus,ep7312-pwm",
-			     "cirrus,clps711x-pwm";
+		compatible = "cirrus,ep7312-pwm", "cirrus,ep7209-pwm";
 		reg = <0x80000400 0x4>;
 		clocks = <&clks 8>;
 		#pwm-cells = <1>;
drivers/pwm/pwm-clps711x.c +1 -1
index 7d33542..26ec24e 100644
@@ -155,7 +155,7 @@ static int clps711x_pwm_remove(struct platform_device *pdev)
 }
 
 static const struct of_device_id __maybe_unused clps711x_pwm_dt_ids[] = {
-	{ .compatible = "cirrus,clps711x-pwm", },
+	{ .compatible = "cirrus,ep7209-pwm", },
 	{ }
 };
 MODULE_DEVICE_TABLE(of, clps711x_pwm_dt_ids);
Signature · 1 line
2.4.9
#8 lore raw

PATCH 7/22 gpio: clps711x: Changing the compatibility string to match with the smallest supported chip

In reply to Alexander Shiyan

This patch changes the compatibility string to match with the smallest supported chip (EP7209). Since the DT-support for this CPU is not yet announced, this change is safe.

---
 Documentation/devicetree/bindings/gpio/gpio-clps711x.txt | 4 ++--
 drivers/gpio/gpio-clps711x.c                             | 2 +-
 2 files changed, 3 insertions(+), 3 deletions(-)
Documentation/devicetree/bindings/gpio/gpio-clps711x.txt +2 -2
index e0d0446..0a304ad 100644
@@ -1,7 +1,7 @@
 Cirrus Logic CLPS711X GPIO controller
 
 Required properties:
-- compatible: Should be "cirrus,clps711x-gpio"
+- compatible: Should be "cirrus,ep7209-gpio"
 - reg: Physical base GPIO controller registers location and length.
   There should be two registers, first is DATA register, the second
   is DIRECTION.
@@ -21,7 +21,7 @@ aliases {
 };
 
 porta: gpio at 80000000 {
-	compatible = "cirrus,clps711x-gpio";
+	compatible = "cirrus,ep7312-gpio","cirrus,ep7209-gpio";
 	reg = <0x80000000 0x1>, <0x80000040 0x1>;
 	gpio-controller;
 	#gpio-cells = <2>;
drivers/gpio/gpio-clps711x.c +1 -1
index 5a69025..cd3781e 100644
@@ -71,7 +71,7 @@ static int clps711x_gpio_probe(struct platform_device *pdev)
 }
 
 static const struct of_device_id __maybe_unused clps711x_gpio_ids[] = {
-	{ .compatible = "cirrus,clps711x-gpio" },
+	{ .compatible = "cirrus,ep7209-gpio" },
 	{ }
 };
 MODULE_DEVICE_TABLE(of, clps711x_gpio_ids);
Signature · 1 line
2.4.9
#9 lore raw

PATCH 7/22 gpio: clps711x: Changing the compatibility string to match with the smallest supported chip

Quoted 5 lines · Alexander Shiyan

This patch changes the compatibility string to match with the smallest supported chip (EP7209). Since the DT-support for this CPU is not yet announced, this change is safe.

Patch applied to the GPIO tree.

Yours,
Linus Walleij

#10 lore raw

PATCH 8/22 gpio: syscon: Changing the compatibility string to match with the smallest supported chip

In reply to Alexander Shiyan

This patch changes the compatibility string to match with the smallest supported chip (EP7209). Since the DT-support for this CPU is not yet announced, this change is safe.

---
 Documentation/devicetree/bindings/gpio/cirrus,clps711x-mctrl-gpio.txt | 4 ++--
 drivers/gpio/gpio-syscon.c                                            | 4 ++--
 2 files changed, 4 insertions(+), 4 deletions(-)
Documentation/devicetree/bindings/gpio/cirrus,clps711x-mctrl-gpio.txt +2 -2
index 94ae9f8..fd42e72 100644
@@ -1,7 +1,7 @@
 * ARM Cirrus Logic CLPS711X SYSFLG1 MCTRL GPIOs
 
 Required properties:
-- compatible: Should contain "cirrus,clps711x-mctrl-gpio".
+- compatible: Should contain "cirrus,ep7209-mctrl-gpio".
 - gpio-controller: Marks the device node as a gpio controller.
 - #gpio-cells: Should be two. The first cell is the pin number and
   the second cell is used to specify the gpio polarity:
@@ -11,7 +11,7 @@ Required properties:
 Example:
 	sysgpio: sysgpio {
 		compatible = "cirrus,ep7312-mctrl-gpio",
-			     "cirrus,clps711x-mctrl-gpio";
+			     "cirrus,ep7209-mctrl-gpio";
 		gpio-controller;
 		#gpio-cells = <2>;
 	};
drivers/gpio/gpio-syscon.c +2 -2
index 24b6d64..537cec7 100644
@@ -129,7 +129,7 @@ static int syscon_gpio_dir_out(struct gpio_chip *chip, unsigned offset, int val)
 
 static const struct syscon_gpio_data clps711x_mctrl_gpio = {
 	/* ARM CLPS711X SYSFLG1 Bits 8-10 */
-	.compatible	= "cirrus,clps711x-syscon1",
+	.compatible	= "cirrus,ep7209-syscon1",
 	.flags		= GPIO_SYSCON_FEAT_IN,
 	.bit_count	= 3,
 	.dat_bit_offset	= 0x40 * 8 + 8,
@@ -168,7 +168,7 @@ static const struct syscon_gpio_data keystone_dsp_gpio = {
 
 static const struct of_device_id syscon_gpio_ids[] = {
 	{
-		.compatible	= "cirrus,clps711x-mctrl-gpio",
+		.compatible	= "cirrus,ep7209-mctrl-gpio",
 		.data		= &clps711x_mctrl_gpio,
 	},
 	{
Signature · 1 line
2.4.9
#11 lore raw

PATCH 8/22 gpio: syscon: Changing the compatibility string to match with the smallest supported chip

Quoted 5 lines · Alexander Shiyan

This patch changes the compatibility string to match with the smallest supported chip (EP7209). Since the DT-support for this CPU is not yet announced, this change is safe.

Patch applied to the GPIO tree.

Yours,
Linus Walleij

#12 lore raw

PATCH 9/22 input: clps711x-keypad: Changing the compatibility string to match with the smallest supported chip

In reply to Alexander Shiyan

This patch changes the compatibility string to match with the smallest supported chip (EP7209). Since the DT-support for this CPU is not yet announced, this change is safe.

---
 Documentation/devicetree/bindings/input/clps711x-keypad.txt | 4 ++--
 drivers/input/keyboard/clps711x-keypad.c                    | 4 ++--
 2 files changed, 4 insertions(+), 4 deletions(-)
Documentation/devicetree/bindings/input/clps711x-keypad.txt +2 -2
index e68d2bb..3eed881 100644
@@ -1,7 +1,7 @@
 * Cirrus Logic CLPS711X matrix keypad device tree bindings
 
 Required Properties:
-- compatible:    Shall contain "cirrus,clps711x-keypad".
+- compatible:    Shall contain "cirrus,ep7209-keypad".
 - row-gpios:     List of GPIOs used as row lines.
 - poll-interval: Poll interval time in milliseconds.
 - linux,keymap:  The definition can be found at
@@ -12,7 +12,7 @@ Optional Properties:
 
 Example:
 	keypad {
-		compatible = "cirrus,ep7312-keypad", "cirrus,clps711x-keypad";
+		compatible = "cirrus,ep7312-keypad", "cirrus,ep7209-keypad";
 		autorepeat;
 		poll-interval = <120>;
 		row-gpios = <&porta 0 0>,
drivers/input/keyboard/clps711x-keypad.c +2 -2
index b637f1a..997e3e9 100644
@@ -101,7 +101,7 @@ static int clps711x_keypad_probe(struct platform_device *pdev)
 		return -ENOMEM;
 
 	priv->syscon =
-		syscon_regmap_lookup_by_compatible("cirrus,clps711x-syscon1");
+		syscon_regmap_lookup_by_compatible("cirrus,ep7209-syscon1");
 	if (IS_ERR(priv->syscon))
 		return PTR_ERR(priv->syscon);
 
@@ -181,7 +181,7 @@ static int clps711x_keypad_remove(struct platform_device *pdev)
 }
 
 static const struct of_device_id clps711x_keypad_of_match[] = {
-	{ .compatible = "cirrus,clps711x-keypad", },
+	{ .compatible = "cirrus,ep7209-keypad", },
 	{ }
 };
 MODULE_DEVICE_TABLE(of, clps711x_keypad_of_match);
Signature · 1 line
2.4.9
#13 lore raw

PATCH 10/22 video: clps711x-fb: Changing the compatibility string to match with the smallest supported chip

In reply to Alexander Shiyan

This patch changes the compatibility string to match with the smallest supported chip (EP7209). Since the DT-support for this CPU is not yet announced, this change is safe.

---
 Documentation/devicetree/bindings/display/cirrus,clps711x-fb.txt | 4 ++--
 drivers/video/fbdev/clps711x-fb.c                                | 4 ++--
 2 files changed, 4 insertions(+), 4 deletions(-)
Documentation/devicetree/bindings/display/cirrus,clps711x-fb.txt +2 -2
index d685be8..e9c6574 100644
@@ -1,7 +1,7 @@
 * Currus Logic CLPS711X Framebuffer
 
 Required properties:
-- compatible: Shall contain "cirrus,clps711x-fb".
+- compatible: Shall contain "cirrus,ep7209-fb".
 - reg       : Physical base address and length of the controller's registers +
               location and size of the framebuffer memory.
 - clocks    : phandle + clock specifier pair of the FB reference clock.
@@ -18,7 +18,7 @@ Optional properties:
 
 Example:
 	fb: fb at 800002c0 {
-		compatible = "cirrus,ep7312-fb", "cirrus,clps711x-fb";
+		compatible = "cirrus,ep7312-fb", "cirrus,ep7209-fb";
 		reg = <0x800002c0 0xd44>, <0x60000000 0xc000>;
 		clocks = <&clks 2>;
 		lcd-supply = <&reg5v0>;
drivers/video/fbdev/clps711x-fb.c +2 -2
index 649b32f..ff56107 100644
@@ -273,7 +273,7 @@ static int clps711x_fb_probe(struct platform_device *pdev)
 	}
 
 	cfb->syscon =
-		syscon_regmap_lookup_by_compatible("cirrus,clps711x-syscon1");
+		syscon_regmap_lookup_by_compatible("cirrus,ep7209-syscon1");
 	if (IS_ERR(cfb->syscon)) {
 		ret = PTR_ERR(cfb->syscon);
 		goto out_fb_release;
@@ -376,7 +376,7 @@ static int clps711x_fb_remove(struct platform_device *pdev)
 }
 
 static const struct of_device_id clps711x_fb_dt_ids[] = {
-	{ .compatible = "cirrus,clps711x-fb", },
+	{ .compatible = "cirrus,ep7209-fb", },
 	{ }
 };
 MODULE_DEVICE_TABLE(of, clps711x_fb_dt_ids);
Signature · 1 line
2.4.9
#14 lore raw

PATCH 11/22 ARM: clps711x: Add basic DT support

In reply to Alexander Shiyan

This patch adds basic support to run Cirrus Logic ARMv4T CPUs with device-tree support.

---
 arch/arm/mach-clps711x/Kconfig    |  9 +++++
 arch/arm/mach-clps711x/Makefile   |  1 +
 arch/arm/mach-clps711x/board-dt.c | 82 +++++++++++++++++++++++++++++++++++++++
 3 files changed, 92 insertions(+)
 create mode 100644 arch/arm/mach-clps711x/board-dt.c
arch/arm/mach-clps711x/Kconfig +9 -0
index f711498..f21700c 100644
@@ -2,6 +2,15 @@ if ARCH_CLPS711X
 
 menu "CLPS711X/EP721X/EP731X Implementations"
 
+config MACH_CLPS711X_DT
+	bool "Device-tree support"
+	select CLKSRC_OF
+	select OF_IRQ
+	select USE_OF
+	help
+	  Select this if you want to experiment device-tree with
+	  ARMv4T Cirrus Logic chips.
+
 config ARCH_AUTCPU12
 	bool "AUTCPU12"
 	help
arch/arm/mach-clps711x/Makefile +1 -0
index f04151e..ef6df40 100644
@@ -6,6 +6,7 @@
 
 obj-y				:= common.o devices.o
 
+obj-$(CONFIG_MACH_CLPS711X_DT)	+= board-dt.o
 obj-$(CONFIG_ARCH_AUTCPU12)	+= board-autcpu12.o
 obj-$(CONFIG_ARCH_CDB89712)	+= board-cdb89712.o
 obj-$(CONFIG_ARCH_CLEP7312)	+= board-clep7312.o
arch/arm/mach-clps711x/board-dt.c new file +82 -0

82 lines not on this page · raw message

Signature · 1 line
2.4.9
#15 lore raw

PATCH 12/22 ARM: dts: clps711x: Add DT Cirrus Logic EDB7211 Development board

In reply to Alexander Shiyan

This adds the Cirrus Logic EP7209,EP7211 DT templates and support for EDB7211 Development board.

---
 arch/arm/boot/dts/Makefile           |   2 +
 arch/arm/boot/dts/ep7209.dtsi        | 191 +++++++++++++++++++++++++++++++++++
 arch/arm/boot/dts/ep7211-edb7211.dts | 100 ++++++++++++++++++
 arch/arm/boot/dts/ep7211.dtsi        |  12 +++
 4 files changed, 305 insertions(+)
 create mode 100644 arch/arm/boot/dts/ep7209.dtsi
 create mode 100644 arch/arm/boot/dts/ep7211-edb7211.dts
 create mode 100644 arch/arm/boot/dts/ep7211.dtsi
arch/arm/boot/dts/Makefile +2 -0
index 06b6c2d..e409890 100644
@@ -104,6 +104,8 @@ dtb-$(CONFIG_ARCH_BERLIN) += \
 	berlin2q-marvell-dmp.dtb
 dtb-$(CONFIG_ARCH_BRCMSTB) += \
 	bcm7445-bcm97445svmb.dtb
+dtb-$(CONFIG_ARCH_CLPS711X) += \
+	ep7211-edb7211.dtb
 dtb-$(CONFIG_ARCH_DAVINCI) += \
 	da850-enbw-cmc.dtb \
 	da850-evm.dtb
arch/arm/boot/dts/ep7209.dtsi new file +191 -0

191 lines not on this page · raw message

arch/arm/boot/dts/ep7211-edb7211.dts new file +100 -0

100 lines not on this page · raw message

arch/arm/boot/dts/ep7211.dtsi new file +12 -0
new file mode 100644
index 0000000..e438f6d
@@ -0,0 +1,12 @@
+/*
+ * The code contained herein is licensed under the GNU General Public
+ * License. You may obtain a copy of the GNU General Public License
+ * Version 2 or later at the following locations:
+ */
+
+#include "ep7209.dtsi"
+
+/ {
+	model = "Cirrus Logic EP7211";
+	compatible = "cirrus,ep7211", "cirrus,ep7209";
+};
Signature · 1 line
2.4.9
#16 lore raw

PATCH 13/22 spi: clps711x: Driver refactor

In reply to Alexander Shiyan

This is a complex patch for refactoring CLPS711X SPI driver. This change adds devicetree support and removes board support.

---
 drivers/spi/spi-clps711x.c | 69 +++++++++++++++++-----------------------------
 1 file changed, 26 insertions(+), 43 deletions(-)
drivers/spi/spi-clps711x.c +26 -43
index 8c30de0..18193df 100644
@@ -1,7 +1,7 @@
 /*
  *  CLPS711X SPI bus driver
  *
- *  Copyright (C) 2012-2014 Alexander Shiyan <[email protected]>
+ *  Copyright (C) 2012-2016 Alexander Shiyan <[email protected]>
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -12,7 +12,6 @@
 #include <linux/io.h>
 #include <linux/clk.h>
 #include <linux/gpio.h>
-#include <linux/delay.h>
 #include <linux/module.h>
 #include <linux/interrupt.h>
 #include <linux/platform_device.h>
@@ -20,9 +19,8 @@
 #include <linux/mfd/syscon.h>
 #include <linux/mfd/syscon/clps711x.h>
 #include <linux/spi/spi.h>
-#include <linux/platform_data/spi-clps711x.h>
 
-#define DRIVER_NAME	"spi-clps711x"
+#define DRIVER_NAME		"clps711x-spi"
 
 #define SYNCIO_FRMLEN(x)	((x) << 8)
 #define SYNCIO_TXFRMEN		(1 << 14)
@@ -40,6 +38,17 @@ struct spi_clps711x_data {
 
 static int spi_clps711x_setup(struct spi_device *spi)
 {
+	if (!spi->controller_state) {
+		int ret;
+
+		ret = devm_gpio_request(&spi->master->dev, spi->cs_gpio,
+					dev_name(&spi->master->dev));
+		if (ret)
+			return ret;
+
+		spi->controller_state = spi;
+	}
+
 	/* We are expect that SPI-device is not selected */
 	gpio_direction_output(spi->cs_gpio, !(spi->mode & SPI_CS_HIGH));
 
@@ -104,20 +113,9 @@ static irqreturn_t spi_clps711x_isr(int irq, void *dev_id)
 static int spi_clps711x_probe(struct platform_device *pdev)
 {
 	struct spi_clps711x_data *hw;
-	struct spi_clps711x_pdata *pdata = dev_get_platdata(&pdev->dev);
 	struct spi_master *master;
 	struct resource *res;
-	int i, irq, ret;
-
-	if (!pdata) {
-		dev_err(&pdev->dev, "No platform data supplied\n");
-		return -EINVAL;
-	}
-
-	if (pdata->num_chipselect < 1) {
-		dev_err(&pdev->dev, "At least one CS must be defined\n");
-		return -EINVAL;
-	}
+	int irq, ret;
 
 	irq = platform_get_irq(pdev, 0);
 	if (irq < 0)
@@ -127,40 +125,24 @@ static int spi_clps711x_probe(struct platform_device *pdev)
 	if (!master)
 		return -ENOMEM;
 
-	master->cs_gpios = devm_kzalloc(&pdev->dev, sizeof(int) *
-					pdata->num_chipselect, GFP_KERNEL);
-	if (!master->cs_gpios) {
-		ret = -ENOMEM;
-		goto err_out;
-	}
-
-	master->bus_num = pdev->id;
+	master->bus_num = -1;
 	master->mode_bits = SPI_CPHA | SPI_CS_HIGH;
 	master->bits_per_word_mask =  SPI_BPW_RANGE_MASK(1, 8);
-	master->num_chipselect = pdata->num_chipselect;
+	master->dev.of_node = pdev->dev.of_node;
 	master->setup = spi_clps711x_setup;
 	master->prepare_message = spi_clps711x_prepare_message;
 	master->transfer_one = spi_clps711x_transfer_one;
 
 	hw = spi_master_get_devdata(master);
 
-	for (i = 0; i < master->num_chipselect; i++) {
-		master->cs_gpios[i] = pdata->chipselect[i];
-		ret = devm_gpio_request(&pdev->dev, master->cs_gpios[i],
-					DRIVER_NAME);
-		if (ret) {
-			dev_err(&pdev->dev, "Can't get CS GPIO %i\n", i);
-			goto err_out;
-		}
-	}
-
 	hw->spi_clk = devm_clk_get(&pdev->dev, NULL);
 	if (IS_ERR(hw->spi_clk)) {
 		ret = PTR_ERR(hw->spi_clk);
 		goto err_out;
 	}
 
-	hw->syscon = syscon_regmap_lookup_by_pdevname("syscon.3");
+	hw->syscon =
+		syscon_regmap_lookup_by_compatible("cirrus,ep7209-syscon3");
 	if (IS_ERR(hw->syscon)) {
 		ret = PTR_ERR(hw->syscon);
 		goto err_out;
@@ -185,14 +167,8 @@ static int spi_clps711x_probe(struct platform_device *pdev)
 		goto err_out;
 
 	ret = devm_spi_register_master(&pdev->dev, master);
-	if (!ret) {
-		dev_info(&pdev->dev,
-			 "SPI bus driver initialized. Master clock %u Hz\n",
-			 master->max_speed_hz);
+	if (!ret)
 		return 0;
-	}
-
-	dev_err(&pdev->dev, "Failed to register master\n");
 
 err_out:
 	spi_master_put(master);
@@ -200,9 +176,16 @@ err_out:
 	return ret;
 }
 
+static const struct of_device_id clps711x_spi_dt_ids[] = {
+	{ .compatible = "cirrus,ep7209-spi", },
+	{ }
+};
+MODULE_DEVICE_TABLE(of, clps711x_spi_dt_ids);
+
 static struct platform_driver clps711x_spi_driver = {
 	.driver	= {
 		.name	= DRIVER_NAME,
+		.of_match_table = clps711x_spi_dt_ids,
 	},
 	.probe	= spi_clps711x_probe,
 };
Signature · 1 line
2.4.9
maintainer
#17 lore raw

PATCH 13/22 spi: clps711x: Driver refactor

drivers/spi/spi-clps711x.c err_out: · line 183

Quoted 5 lines · Alexander Shiyan
drivers/spi/spi-clps711x.c +5 -0
+static const struct of_device_id clps711x_spi_dt_ids[] = {
+	{ .compatible = "cirrus,ep7209-spi", },
+	{ }
+};
+MODULE_DEVICE_TABLE(of, clps711x_spi_dt_ids);

This adds a new binding but no binding document - all new bindings need
binding documents. Other than that it looks fine.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 473 bytes
Desc: not available
URL: <http://lists.infradead.org/pipermail/linux-arm-kernel/attachments/20160606/4e8563f8/attachment.sig>

maintainer
#18 lore raw

PATCH 13/22 spi: clps711x: Driver refactor

Quoted 10 lines · CEST Mark Brown

drivers/spi/spi-clps711x.c err_out: · line 183

Quoted 5 lines · Alexander Shiyan
drivers/spi/spi-clps711x.c +5 -0
+static const struct of_device_id clps711x_spi_dt_ids[] = {
+     { .compatible = "cirrus,ep7209-spi", },
+     { }
+};
+MODULE_DEVICE_TABLE(of, clps711x_spi_dt_ids);

This adds a new binding but no binding document - all new bindings need binding documents. Other than that it looks fine.

I've written a binding file for that now, and submitted that along with this patch. Please either pick up both patches into your spi tree or provide an Ack so I can put them into a branch for arm-soc along with the other patches.

Linus Walleij has already applied some other patches out of sequence, so we won't be able to bisect clps711x across the DT conversion, but I think that's ok now, as the platform is really dead as Alexander described.

Arnd

#19 lore raw

PATCH 14/22 ARM: clps711x: Remove boards support

In reply to Alexander Shiyan

Any CLPS711X-based board can be replaced with devicetree equivalent. Remove the board files.

---
 arch/arm/configs/clps711x_defconfig        |  91 -------
 arch/arm/mach-clps711x/Kconfig             |  31 ---
 arch/arm/mach-clps711x/Makefile            |  13 -
 arch/arm/mach-clps711x/Makefile.boot       |   5 -
 arch/arm/mach-clps711x/board-autcpu12.c    | 275 ---------------------
 arch/arm/mach-clps711x/board-cdb89712.c    | 147 ------------
 arch/arm/mach-clps711x/board-clep7312.c    |  45 ----
 arch/arm/mach-clps711x/board-edb7211.c     | 188 ---------------
 arch/arm/mach-clps711x/board-p720t.c       | 373 -----------------------------
 arch/arm/mach-clps711x/common.c            |  65 -----
 arch/arm/mach-clps711x/common.h            |  23 --
 arch/arm/mach-clps711x/devices.c           | 149 ------------
 arch/arm/mach-clps711x/devices.h           |  12 -
 include/linux/platform_data/spi-clps711x.h |  21 --
 14 files changed, 1438 deletions(-)
 delete mode 100644 arch/arm/configs/clps711x_defconfig
 delete mode 100644 arch/arm/mach-clps711x/board-autcpu12.c
 delete mode 100644 arch/arm/mach-clps711x/board-cdb89712.c
 delete mode 100644 arch/arm/mach-clps711x/board-clep7312.c
 delete mode 100644 arch/arm/mach-clps711x/board-edb7211.c
 delete mode 100644 arch/arm/mach-clps711x/board-p720t.c
 delete mode 100644 arch/arm/mach-clps711x/common.c
 delete mode 100644 arch/arm/mach-clps711x/common.h
 delete mode 100644 arch/arm/mach-clps711x/devices.c
 delete mode 100644 arch/arm/mach-clps711x/devices.h
 delete mode 100644 include/linux/platform_data/spi-clps711x.h
arch/arm/configs/clps711x_defconfig deleted +0 -91
deleted file mode 100644
index fc105c9..0000000
@@ -1,91 +0,0 @@
-CONFIG_KERNEL_LZMA=y
-CONFIG_SYSVIPC=y
-CONFIG_LOG_BUF_SHIFT=14
-CONFIG_BLK_DEV_INITRD=y
-CONFIG_RD_LZMA=y
-CONFIG_EMBEDDED=y
-CONFIG_SLOB=y
-CONFIG_JUMP_LABEL=y
-# CONFIG_LBDAF is not set
-CONFIG_PARTITION_ADVANCED=y
-# CONFIG_IOSCHED_CFQ is not set
-CONFIG_ARCH_CLPS711X=y
-CONFIG_ARCH_AUTCPU12=y
-CONFIG_ARCH_CDB89712=y
-CONFIG_ARCH_CLEP7312=y
-CONFIG_ARCH_EDB7211=y
-CONFIG_ARCH_P720T=y
-CONFIG_AEABI=y
-CONFIG_ZBOOT_ROM_TEXT=0x0
-CONFIG_ZBOOT_ROM_BSS=0x0
-# CONFIG_COREDUMP is not set
-CONFIG_NET=y
-CONFIG_PACKET=y
-CONFIG_UNIX=y
-CONFIG_INET=y
-# CONFIG_IPV6 is not set
-CONFIG_IRDA=y
-CONFIG_IRTTY_SIR=y
-# CONFIG_WIRELESS is not set
-CONFIG_MTD=y
-CONFIG_MTD_CMDLINE_PARTS=y
-CONFIG_MTD_BLOCK=y
-CONFIG_MTD_CFI=y
-CONFIG_MTD_JEDECPROBE=y
-CONFIG_MTD_CFI_INTELEXT=y
-CONFIG_MTD_CFI_AMDSTD=y
-CONFIG_MTD_CFI_STAA=y
-CONFIG_MTD_PLATRAM=y
-CONFIG_MTD_NAND=y
-CONFIG_MTD_NAND_GPIO=y
-CONFIG_NETDEVICES=y
-# CONFIG_NET_CADENCE is not set
-# CONFIG_NET_VENDOR_BROADCOM is not set
-CONFIG_CS89x0=y
-CONFIG_CS89x0_PLATFORM=y
-# CONFIG_NET_VENDOR_FARADAY is not set
-# CONFIG_NET_VENDOR_INTEL is not set
-# CONFIG_NET_VENDOR_MARVELL is not set
-# CONFIG_NET_VENDOR_MICREL is not set
-# CONFIG_NET_VENDOR_NATSEMI is not set
-# CONFIG_NET_VENDOR_SEEQ is not set
-# CONFIG_NET_VENDOR_SMSC is not set
-# CONFIG_NET_VENDOR_STMICRO is not set
-# CONFIG_NET_VENDOR_WIZNET is not set
-# CONFIG_WLAN is not set
-# CONFIG_INPUT is not set
-# CONFIG_SERIO is not set
-# CONFIG_VT is not set
-CONFIG_SERIAL_CLPS711X=y
-CONFIG_SERIAL_CLPS711X_CONSOLE=y
-# CONFIG_HW_RANDOM is not set
-CONFIG_I2C=y
-CONFIG_I2C_GPIO=y
-CONFIG_SPI=y
-CONFIG_SPI_CLPS711X=y
-CONFIG_GPIO_CLPS711X=y
-CONFIG_GPIO_GENERIC_PLATFORM=y
-# CONFIG_HWMON is not set
-CONFIG_FB=y
-CONFIG_FB_CLPS711X=y
-CONFIG_LCD_PLATFORM=y
-CONFIG_BACKLIGHT_PWM=y
-# CONFIG_USB_SUPPORT is not set
-CONFIG_NEW_LEDS=y
-CONFIG_LEDS_CLASS=y
-CONFIG_LEDS_GPIO=y
-CONFIG_LEDS_TRIGGERS=y
-CONFIG_LEDS_TRIGGER_HEARTBEAT=y
-# CONFIG_IOMMU_SUPPORT is not set
-CONFIG_PWM=y
-CONFIG_PWM_CLPS711X=y
-CONFIG_EXT2_FS=y
-CONFIG_CRAMFS=y
-CONFIG_MINIX_FS=y
-# CONFIG_NETWORK_FILESYSTEMS is not set
-# CONFIG_FTRACE is not set
-CONFIG_DEBUG_USER=y
-CONFIG_DEBUG_LL=y
-CONFIG_EARLY_PRINTK=y
-# CONFIG_CRYPTO_ANSI_CPRNG is not set
-# CONFIG_CRYPTO_HW is not set
arch/arm/mach-clps711x/Kconfig +0 -31
index f21700c..0a170e1 100644
@@ -11,37 +11,6 @@ config MACH_CLPS711X_DT
 	  Select this if you want to experiment device-tree with
 	  ARMv4T Cirrus Logic chips.
 
-config ARCH_AUTCPU12
-	bool "AUTCPU12"
-	help
-	  Say Y if you intend to run the kernel on the autronix autcpu12
-	  board. This board is based on a Cirrus Logic CS89712.
-
-config ARCH_CDB89712
-	bool "CDB89712"
-	help
-	  This is an evaluation board from Cirrus for the CS89712 processor.
-	  The board includes 2 serial ports, Ethernet, IRDA, and expansion
-	  headers.  It comes with 16 MB SDRAM and 8 MB flash ROM.
-
-config ARCH_CLEP7312
-	bool "CLEP7312"
-	help
-	  Boards based on the Cirrus Logic 7212/7312 chips.
-
-config ARCH_EDB7211
-	bool "EDB7211"
-	select ARCH_HAS_HOLES_MEMORYMODEL
-	help
-	  Say Y here if you intend to run this kernel on a Cirrus Logic EDB-7211
-	  evaluation board.
-
-config ARCH_P720T
-	bool "P720T"
-	help
-	  Say Y here if you intend to run this kernel on the ARM Prospector
-	  720T.
-
 endmenu
 
 endif
arch/arm/mach-clps711x/Makefile +0 -13
index ef6df40..d79d998 100644
@@ -1,14 +1 @@
-#
-# Makefile for the linux kernel.
-#
-
-# Object file lists.
-
-obj-y				:= common.o devices.o
-
 obj-$(CONFIG_MACH_CLPS711X_DT)	+= board-dt.o
-obj-$(CONFIG_ARCH_AUTCPU12)	+= board-autcpu12.o
-obj-$(CONFIG_ARCH_CDB89712)	+= board-cdb89712.o
-obj-$(CONFIG_ARCH_CLEP7312)	+= board-clep7312.o
-obj-$(CONFIG_ARCH_EDB7211)	+= board-edb7211.o
-obj-$(CONFIG_ARCH_P720T)	+= board-p720t.o
arch/arm/mach-clps711x/Makefile.boot +0 -5
index eba77d3..e69de29 100644
@@ -1,5 +0,0 @@
-# The standard locations for stuff on CLPS711x type processors
-params_phys-y				:= 0xc0000100
-# Should probably have some agreement on these...
-initrd_phys-$(CONFIG_ARCH_P720T)	:= 0xc0400000
-initrd_phys-$(CONFIG_ARCH_CDB89712)	:= 0x00700000
arch/arm/mach-clps711x/board-autcpu12.c deleted +0 -275

275 lines not on this page · raw message

arch/arm/mach-clps711x/board-cdb89712.c deleted +0 -147

147 lines not on this page · raw message

arch/arm/mach-clps711x/board-clep7312.c deleted +0 -45

45 lines not on this page · raw message

arch/arm/mach-clps711x/board-edb7211.c deleted +0 -188

188 lines not on this page · raw message

arch/arm/mach-clps711x/board-p720t.c deleted +0 -373

373 lines not on this page · raw message

arch/arm/mach-clps711x/common.c deleted +0 -65

65 lines not on this page · raw message

arch/arm/mach-clps711x/common.h deleted +0 -23
deleted file mode 100644
index 370200b..0000000
@@ -1,23 +0,0 @@
-/*
- * linux/arch/arm/mach-clps711x/common.h
- *
- * Common bits.
- */
-
-#include <linux/reboot.h>
-
-#define CLPS711X_NR_GPIO	(4 * 8 + 3)
-#define CLPS711X_GPIO(prt, bit)	((prt) * 8 + (bit))
-
-extern void clps711x_map_io(void);
-extern void clps711x_init_irq(void);
-extern void clps711x_timer_init(void);
-extern void clps711x_restart(enum reboot_mode mode, const char *cmd);
-
-/* drivers/irqchip/irq-clps711x.c */
-void clps711x_intc_init(phys_addr_t, resource_size_t);
-/* drivers/clk/clk-clps711x.c */
-void clps711x_clk_init(void __iomem *base);
-/* drivers/clocksource/clps711x-timer.c */
-void clps711x_clksrc_init(void __iomem *tc1_base, void __iomem *tc2_base,
-			  unsigned int irq);
arch/arm/mach-clps711x/devices.c deleted +0 -149

149 lines not on this page · raw message

arch/arm/mach-clps711x/devices.h deleted +0 -12
deleted file mode 100644
index a5efc17..0000000
@@ -1,12 +0,0 @@
-/*
- *  CLPS711X common devices definitions
- *
- *  Copyright (C) 2013 Alexander Shiyan <[email protected]>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- */
-
-void clps711x_devices_init(void);
include/linux/platform_data/spi-clps711x.h deleted +0 -21
deleted file mode 100644
index 301956e..0000000
@@ -1,21 +0,0 @@
-/*
- *  CLPS711X SPI bus driver definitions
- *
- *  Copyright (C) 2012 Alexander Shiyan <[email protected]>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- */
-
-#ifndef ____LINUX_PLATFORM_DATA_SPI_CLPS711X_H
-#define ____LINUX_PLATFORM_DATA_SPI_CLPS711X_H
-
-/* Board specific platform_data */
-struct spi_clps711x_pdata {
-	int *chipselect;	/* Array of GPIO-numbers */
-	int num_chipselect;	/* Total count of GPIOs */
-};
-
-#endif
Signature · 1 line
2.4.9
#20 lore raw

PATCH 15/22 video: clps711x: Remove old driver

In reply to Alexander Shiyan

Since board support for the CLPS711X platform was removed, remove the old driver.

---
 drivers/video/fbdev/Kconfig      |   7 -
 drivers/video/fbdev/Makefile     |   1 -
 drivers/video/fbdev/clps711xfb.c | 314 ---------------------------------------
 3 files changed, 322 deletions(-)
 delete mode 100644 drivers/video/fbdev/clps711xfb.c
drivers/video/fbdev/Kconfig +0 -7
index 88b008f..e050f18 100644
@@ -317,16 +317,9 @@ config FB_ACORN
 	  hardware found in Acorn RISC PCs and other ARM-based machines.  If
 	  unsure, say N.
 
-config FB_CLPS711X_OLD
-	tristate
-	select FB_CFB_FILLRECT
-	select FB_CFB_COPYAREA
-	select FB_CFB_IMAGEBLIT
-
 config FB_CLPS711X
 	tristate "CLPS711X LCD support"
 	depends on FB && (ARCH_CLPS711X || COMPILE_TEST)
-	select FB_CLPS711X_OLD if ARCH_CLPS711X && !ARCH_MULTIPLATFORM
 	select BACKLIGHT_LCD_SUPPORT
 	select FB_MODE_HELPERS
 	select FB_SYS_FILLRECT
drivers/video/fbdev/Makefile +0 -1
index f673186..b9ec64b 100644
@@ -15,7 +15,6 @@ obj-$(CONFIG_FB_WMT_GE_ROPS)   += wmt_ge_rops.o
 obj-$(CONFIG_FB_AMIGA)            += amifb.o c2p_planar.o
 obj-$(CONFIG_FB_ARC)              += arcfb.o
 obj-$(CONFIG_FB_CLPS711X)	  += clps711x-fb.o
-obj-$(CONFIG_FB_CLPS711X_OLD)	  += clps711xfb.o
 obj-$(CONFIG_FB_CYBER2000)        += cyber2000fb.o
 obj-$(CONFIG_FB_GRVGA)            += grvga.o
 obj-$(CONFIG_FB_PM2)              += pm2fb.o
drivers/video/fbdev/clps711xfb.c deleted +0 -314

314 lines not on this page · raw message

Signature · 1 line
2.4.9
#21 lore raw

PATCH 16/22 clk: clps711x: Remove board support

In reply to Alexander Shiyan

Since board support for the CLPS711X platform was removed, remove the board support from the driver.

---
 drivers/clk/clk-clps711x.c | 25 -------------------------
 1 file changed, 25 deletions(-)
drivers/clk/clk-clps711x.c +0 -25
index adaf109..7690a03 100644
@@ -144,30 +144,6 @@ static struct clps711x_clk * __init _clps711x_clk_init(void __iomem *base,
 	return clps711x_clk;
 }
 
-void __init clps711x_clk_init(void __iomem *base)
-{
-	struct clps711x_clk *clps711x_clk;
-
-	clps711x_clk = _clps711x_clk_init(base, 73728000);
-
-	BUG_ON(IS_ERR(clps711x_clk));
-
-	/* Clocksource */
-	clk_register_clkdev(clps711x_clk->clks[CLPS711X_CLK_TIMER1],
-			    NULL, "clps711x-timer.0");
-	clk_register_clkdev(clps711x_clk->clks[CLPS711X_CLK_TIMER2],
-			    NULL, "clps711x-timer.1");
-
-	/* Drivers */
-	clk_register_clkdev(clps711x_clk->clks[CLPS711X_CLK_PWM],
-			    NULL, "clps711x-pwm");
-	clk_register_clkdev(clps711x_clk->clks[CLPS711X_CLK_UART],
-			    NULL, "clps711x-uart.0");
-	clk_register_clkdev(clps711x_clk->clks[CLPS711X_CLK_UART],
-			    NULL, "clps711x-uart.1");
-}
-
-#ifdef CONFIG_OF
 static void __init clps711x_clk_init_dt(struct device_node *np)
 {
 	void __iomem *base = of_iomap(np, 0);
@@ -185,4 +161,3 @@ static void __init clps711x_clk_init_dt(struct device_node *np)
 			    &clps711x_clk->clk_data);
 }
 CLK_OF_DECLARE(clps711x, "cirrus,ep7209-clk", clps711x_clk_init_dt);
-#endif
Signature · 1 line
2.4.9
#23 lore raw

PATCH 17/22 clocksource: clps711x: Remove board support

In reply to Alexander Shiyan

Since board support for the CLPS711X platform was removed, remove the board support from the driver.

---
 drivers/clocksource/clps711x-timer.c | 12 ------------
 1 file changed, 12 deletions(-)
drivers/clocksource/clps711x-timer.c +0 -12
index 7c65f9e..32ae672 100644
@@ -93,17 +93,6 @@ static int __init _clps711x_clkevt_init(struct clk *clock, void __iomem *base,
 			   "clps711x-timer", clkevt);
 }
 
-void __init clps711x_clksrc_init(void __iomem *tc1_base, void __iomem *tc2_base,
-				 unsigned int irq)
-{
-	struct clk *tc1 = clk_get_sys("clps711x-timer.0", NULL);
-	struct clk *tc2 = clk_get_sys("clps711x-timer.1", NULL);
-
-	BUG_ON(_clps711x_clksrc_init(tc1, tc1_base));
-	BUG_ON(_clps711x_clkevt_init(tc2, tc2_base, irq));
-}
-
-#ifdef CONFIG_CLKSRC_OF
 static void __init clps711x_timer_init(struct device_node *np)
 {
 	unsigned int irq = irq_of_parse_and_map(np, 0);
@@ -122,4 +111,3 @@ static void __init clps711x_timer_init(struct device_node *np)
 	}
 }
 CLOCKSOURCE_OF_DECLARE(clps711x, "cirrus,ep7209-timer", clps711x_timer_init);
-#endif
Signature · 1 line
2.4.9
#25 lore raw

PATCH 18/22 irqchip: clps711x: Remove board support

In reply to Alexander Shiyan

Since board support for the CLPS711X platform was removed, remove the board support from the driver.

---
 drivers/irqchip/irq-clps711x.c | 7 -------
 1 file changed, 7 deletions(-)
drivers/irqchip/irq-clps711x.c +0 -7
index f913f4d..058f1ff 100644
@@ -216,12 +216,6 @@ out_kfree:
 	return err;
 }
 
-void __init clps711x_intc_init(phys_addr_t base, resource_size_t size)
-{
-	BUG_ON(_clps711x_intc_init(NULL, base, size));
-}
-
-#ifdef CONFIG_IRQCHIP
 static int __init clps711x_intc_init_dt(struct device_node *np,
 					struct device_node *parent)
 {
@@ -235,4 +229,3 @@ static int __init clps711x_intc_init_dt(struct device_node *np,
 	return _clps711x_intc_init(np, res.start, resource_size(&res));
 }
 IRQCHIP_DECLARE(clps711x, "cirrus,ep7209-intc", clps711x_intc_init_dt);
-#endif
Signature · 1 line
2.4.9
#26 lore raw

PATCH 19/22 serial: clps711x: Remove board support

In reply to Alexander Shiyan

Since board support for the CLPS711X platform was removed, remove the board support from the driver.

---
 drivers/tty/serial/clps711x.c | 22 ++++++++--------------
 1 file changed, 8 insertions(+), 14 deletions(-)
drivers/tty/serial/clps711x.c +8 -14
index ac13286..b8be687 100644
@@ -446,12 +446,15 @@ static struct console clps711x_console = {
 static int uart_clps711x_probe(struct platform_device *pdev)
 {
 	struct device_node *np = pdev->dev.of_node;
-	int ret, index = np ? of_alias_get_id(np, "serial") : pdev->id;
 	struct clps711x_port *s;
 	struct resource *res;
 	struct clk *uart_clk;
-	int irq;
+	int irq, ret, index;
 
+	if (!np)
+		return -ENODEV;
+
+	index = of_alias_get_id(np, "serial");
 	if (index < 0 || index >= UART_CLPS711X_NR)
 		return -EINVAL;
 
@@ -477,18 +480,9 @@ static int uart_clps711x_probe(struct platform_device *pdev)
 	if (s->rx_irq < 0)
 		return s->rx_irq;
 
-	if (!np) {
-		char syscon_name[9];
-
-		sprintf(syscon_name, "syscon.%i", index + 1);
-		s->syscon = syscon_regmap_lookup_by_pdevname(syscon_name);
-		if (IS_ERR(s->syscon))
-			return PTR_ERR(s->syscon);
-	} else {
-		s->syscon = syscon_regmap_lookup_by_phandle(np, "syscon");
-		if (IS_ERR(s->syscon))
-			return PTR_ERR(s->syscon);
-	}
+	s->syscon = syscon_regmap_lookup_by_phandle(np, "syscon");
+	if (IS_ERR(s->syscon))
+		return PTR_ERR(s->syscon);
 
 	s->port.line		= index;
 	s->port.dev		= &pdev->dev;
Signature · 1 line
2.4.9
#27 lore raw

PATCH 20/22 gpio: clps711x: Remove board support

In reply to Alexander Shiyan

Since board support for the CLPS711X platform was removed, remove the board support from the driver.

---
 drivers/gpio/gpio-clps711x.c | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)
drivers/gpio/gpio-clps711x.c +6 -2
index cd3781e..52fd63f 100644
@@ -20,8 +20,12 @@ static int clps711x_gpio_probe(struct platform_device *pdev)
 	void __iomem *dat, *dir;
 	struct gpio_chip *gc;
 	struct resource *res;
-	int err, id = np ? of_alias_get_id(np, "gpio") : pdev->id;
+	int err, id;
 
+	if (!np)
+		return -ENODEV;
+
+	id = of_alias_get_id(np, "gpio");
 	if ((id < 0) || (id > 4))
 		return -ENODEV;
 
@@ -63,7 +67,7 @@ static int clps711x_gpio_probe(struct platform_device *pdev)
 		break;
 	}
 
-	gc->base = id * 8;
+	gc->base = -1;
 	gc->owner = THIS_MODULE;
 	platform_set_drvdata(pdev, gc);
 
Signature · 1 line
2.4.9
#28 lore raw

PATCH 20/22 gpio: clps711x: Remove board support

Quoted 4 lines · Alexander Shiyan

Since board support for the CLPS711X platform was removed, remove the board support from the driver.

Patch applied to the GPIO tree.

BTW I hope it's OK to take these three patches and apply separately, else tell me and I'll take them out again and you can have my Acked-by if you want to take them through ARM SoC instead.

Yours,
Linus Walleij

maintainer
#29 lore raw

PATCH 20/22 gpio: clps711x: Remove board support

Quoted 5 lines · CEST Linus Walleij
Quoted 3 lines · Alexander Shiyan

Since board support for the CLPS711X platform was removed, remove the board support from the driver.

Quoted 8 lines
Quoted 1 line

Patch applied to the GPIO tree.

BTW I hope it's OK to take these three patches and apply separately, else tell me and I'll take them out again and you can have my Acked-by if you want to take them through ARM SoC instead.

I think that's fine. We will have a short time span during the merge window in which not everything works with either DT or the board files, but as Alexander explained, this hardware is now obsolete, so I think that is ok in this instance, and it makes the migration easier.

Arnd

#30 lore raw

PATCH 21/22 ARM: clps711x: Switch to MULTIPLATFORM

In reply to Alexander Shiyan

Switch CLPS711X to multiplatform.

---
 arch/arm/Kconfig                                 |  14 --
 arch/arm/Makefile                                |   1 -
 arch/arm/mach-clps711x/Kconfig                   |  23 ++-
 arch/arm/mach-clps711x/Makefile                  |   2 +-
 arch/arm/mach-clps711x/include/mach/clps711x.h   | 204 -----------------------
 arch/arm/mach-clps711x/include/mach/hardware.h   |  53 ------
 arch/arm/mach-clps711x/include/mach/uncompress.h |  55 ------
 7 files changed, 12 insertions(+), 340 deletions(-)
 delete mode 100644 arch/arm/mach-clps711x/include/mach/clps711x.h
 delete mode 100644 arch/arm/mach-clps711x/include/mach/hardware.h
 delete mode 100644 arch/arm/mach-clps711x/include/mach/uncompress.h
arch/arm/Kconfig +0 -14
index 90542db..7a13e5a 100644
@@ -353,20 +353,6 @@ config ARM_SINGLE_ARMV7M
 	select SPARSE_IRQ
 	select USE_OF
 
-
-config ARCH_CLPS711X
-	bool "Cirrus Logic CLPS711x/EP721x/EP731x-based"
-	select ARCH_REQUIRE_GPIOLIB
-	select AUTO_ZRELADDR
-	select CLKSRC_MMIO
-	select COMMON_CLK
-	select CPU_ARM720T
-	select GENERIC_CLOCKEVENTS
-	select MFD_SYSCON
-	select SOC_BUS
-	help
-	  Support for Cirrus Logic 711x/721x/731x based boards.
-
 config ARCH_GEMINI
 	bool "Cortina Systems Gemini"
 	select ARCH_REQUIRE_GPIOLIB
arch/arm/Makefile +0 -1
index 274e8a6..10f16b3 100644
@@ -140,7 +140,6 @@ head-y		:= arch/arm/kernel/head$(MMUEXT).o
 # Text offset. This list is sorted numerically by address in order to
 # provide a means to avoid/resolve conflicts in multi-arch kernels.
 textofs-y	:= 0x00008000
-textofs-$(CONFIG_ARCH_CLPS711X) := 0x00028000
 # We don't want the htc bootloader to corrupt kernel during resume
 textofs-$(CONFIG_PM_H1940)      := 0x00108000
 # SA1111 DMA bug: we don't want the kernel to live in precious DMA-able memory
arch/arm/mach-clps711x/Kconfig +11 -12
index 0a170e1..3b56197 100644
@@ -1,16 +1,15 @@
-if ARCH_CLPS711X
-
-menu "CLPS711X/EP721X/EP731X Implementations"
-
-config MACH_CLPS711X_DT
-	bool "Device-tree support"
+menuconfig ARCH_CLPS711X
+	bool "Cirrus Logic EP721x/EP731x-based"
+	depends on ARCH_MULTI_V4T
+	select ARCH_REQUIRE_GPIOLIB
+	select AUTO_ZRELADDR
+	select CLKSRC_MMIO
 	select CLKSRC_OF
+	select COMMON_CLK
+	select CPU_ARM720T
+	select GENERIC_CLOCKEVENTS
+	select MFD_SYSCON
 	select OF_IRQ
 	select USE_OF
 	help
-	  Select this if you want to experiment device-tree with
-	  ARMv4T Cirrus Logic chips.
-
-endmenu
-
-endif
+	  Select this if you use ARMv4T Cirrus Logic chips.
arch/arm/mach-clps711x/Makefile +1 -1
index d79d998..bd0b7b5 100644
@@ -1 +1 @@
-obj-$(CONFIG_MACH_CLPS711X_DT)	+= board-dt.o
+obj-y += board-dt.o
arch/arm/mach-clps711x/include/mach/clps711x.h deleted +0 -204

204 lines not on this page · raw message

arch/arm/mach-clps711x/include/mach/hardware.h deleted +0 -53

53 lines not on this page · raw message

arch/arm/mach-clps711x/include/mach/uncompress.h deleted +0 -55

55 lines not on this page · raw message

Signature · 1 line
2.4.9
#31 lore raw

PATCH 22/22 ARM: config: Add a multi_v4t_defconfig

In reply to Alexander Shiyan

To allow regression build testing of multi v4t systems, add a multi_v4t_defconfig, similar to the multi_v5(v7)_defconfig.

---
 arch/arm/configs/multi_v4t_defconfig | 106 +++++++++++++++++++++++++++++++++++
 1 file changed, 106 insertions(+)
 create mode 100644 arch/arm/configs/multi_v4t_defconfig
arch/arm/configs/multi_v4t_defconfig new file +106 -0
new file mode 100644
index 0000000..433eebb
@@ -0,0 +1,106 @@
+CONFIG_KERNEL_LZMA=y
+CONFIG_SYSVIPC=y
+CONFIG_LOG_BUF_SHIFT=14
+CONFIG_BLK_DEV_INITRD=y
+CONFIG_EMBEDDED=y
+CONFIG_SLOB=y
+CONFIG_JUMP_LABEL=y
+# CONFIG_LBDAF is not set
+CONFIG_PARTITION_ADVANCED=y
+# CONFIG_IOSCHED_CFQ is not set
+CONFIG_ARCH_MULTI_V4T=y
+# CONFIG_ARCH_MULTI_V7 is not set
+CONFIG_ARCH_AT91=y
+CONFIG_SOC_AT91RM9200=y
+CONFIG_ARCH_CLPS711X=y
+CONFIG_ARCH_INTEGRATOR=y
+CONFIG_ARCH_INTEGRATOR_AP=y
+CONFIG_INTEGRATOR_IMPD1=y
+CONFIG_INTEGRATOR_CM720T=y
+CONFIG_INTEGRATOR_CM920T=y
+CONFIG_INTEGRATOR_CM922T_XA10=y
+CONFIG_ARCH_MXC=y
+CONFIG_MACH_SCB9328=y
+CONFIG_MACH_APF9328=y
+CONFIG_MACH_IMX1_DT=y
+CONFIG_ARCH_NSPIRE=y
+CONFIG_AEABI=y
+# CONFIG_ATAGS is not set
+CONFIG_ZBOOT_ROM_TEXT=0x0
+CONFIG_ZBOOT_ROM_BSS=0x0
+CONFIG_CPU_IDLE=y
+CONFIG_ARM_CPUIDLE=y
+CONFIG_ARM_CLPS711X_CPUIDLE=y
+# CONFIG_COREDUMP is not set
+CONFIG_MTD=y
+CONFIG_MTD_CMDLINE_PARTS=y
+CONFIG_MTD_BLOCK=y
+CONFIG_MTD_CFI=y
+CONFIG_MTD_JEDECPROBE=y
+CONFIG_MTD_CFI_INTELEXT=y
+CONFIG_MTD_CFI_AMDSTD=y
+CONFIG_MTD_CFI_STAA=y
+CONFIG_MTD_PLATRAM=y
+CONFIG_MTD_NAND=y
+CONFIG_MTD_NAND_GPIO=y
+# CONFIG_INPUT is not set
+# CONFIG_SERIO is not set
+# CONFIG_VT is not set
+CONFIG_SERIAL_CLPS711X=y
+CONFIG_SERIAL_CLPS711X_CONSOLE=y
+# CONFIG_HW_RANDOM is not set
+CONFIG_I2C=y
+CONFIG_I2C_AT91=y
+CONFIG_I2C_GPIO=y
+CONFIG_I2C_IMX=y
+CONFIG_SPI=y
+CONFIG_SPI_ATMEL=y
+CONFIG_SPI_CLPS711X=y
+CONFIG_SPI_GPIO=y
+CONFIG_SPI_IMX=y
+CONFIG_PINCTRL_AT91PIO4=y
+CONFIG_GPIO_74XX_MMIO=y
+CONFIG_GPIO_CLPS711X=y
+CONFIG_GPIO_GENERIC_PLATFORM=y
+CONFIG_GPIO_SYSCON=y
+CONFIG_W1=y
+CONFIG_W1_MASTER_MXC=y
+CONFIG_W1_MASTER_GPIO=y
+CONFIG_POWER_RESET_AT91_POWEROFF=y
+CONFIG_POWER_RESET_AT91_RESET=y
+CONFIG_POWER_RESET_AT91_SAMA5D2_SHDWC=y
+CONFIG_POWER_RESET_GPIO=y
+CONFIG_POWER_RESET_GPIO_RESTART=y
+CONFIG_POWER_RESET_SYSCON=y
+CONFIG_POWER_RESET_SYSCON_POWEROFF=y
+# CONFIG_HWMON is not set
+CONFIG_WATCHDOG=y
+CONFIG_GPIO_WATCHDOG=y
+CONFIG_AT91RM9200_WATCHDOG=y
+CONFIG_REGULATOR=y
+CONFIG_REGULATOR_FIXED_VOLTAGE=y
+CONFIG_REGULATOR_GPIO=y
+CONFIG_FB=y
+CONFIG_FB_CLPS711X=y
+CONFIG_FB_IMX=y
+CONFIG_LCD_PLATFORM=y
+CONFIG_BACKLIGHT_PWM=y
+# CONFIG_USB_SUPPORT is not set
+CONFIG_NEW_LEDS=y
+CONFIG_LEDS_CLASS=y
+CONFIG_LEDS_GPIO=y
+CONFIG_LEDS_TRIGGERS=y
+CONFIG_LEDS_TRIGGER_HEARTBEAT=y
+# CONFIG_IOMMU_SUPPORT is not set
+CONFIG_PWM=y
+CONFIG_PWM_ATMEL=y
+CONFIG_PWM_CLPS711X=y
+CONFIG_PWM_IMX=y
+CONFIG_EXT2_FS=y
+CONFIG_MSDOS_FS=y
+CONFIG_VFAT_FS=y
+CONFIG_CRAMFS=y
+CONFIG_MINIX_FS=y
+# CONFIG_FTRACE is not set
+CONFIG_DEBUG_USER=y
+CONFIG_CRC_CCITT=y
Signature · 1 line
2.4.9
maintainer
#32 lore raw

cover ARM: clps711x: Switch to DT and Multiplatform

In reply to Alexander Shiyan
Quoted 12 lines · CEST Alexander Shiyan

The Cirrus Logic company announced EOL on May 20 this year for the ARMv4 processors, so the company where I work ceases the use of the CPU for our devices and switches our boards to use with another type of CPU. I can not continue develop for this platform, so I gathered all the existing patches/solutions for the final series. Of course, we keep support our existing products with this CPU, so I remain able to check any third-party patches.
This series of patches switches CLPS711X platform for use with device tree and adds multiplatform support.
The series contain various subsystem changes but designed for applying directly in the ARM-SOC tree.

I've applied the majority of these into arm-soc now. I did not care much about ordering for bisection except for build coverage, as we already broke bisection when the gpio changes got applied.

I'm sure nobody cares about it too much.

Quoted 2 lines

Alexander Shiyan (22):
ARM: clps711x: Reduce static map size

next/soc

Quoted 10 lines

clk: clps711x: Changing the compatibility string to match with the
smallest supported chip
clocksource: clps711x: Changing the compatibility string to match with
the smallest supported chip
irqchip: clps711x: Changing the compatibility string to match with the
smallest supported chip
serial: clps711x: Changing the compatibility string to match with the
smallest supported chip
pwm: clps711x: Changing the compatibility string to match with the
smallest supported chip

next/drivers

Quoted 4 lines

gpio: clps711x: Changing the compatibility string to match with the
smallest supported chip
gpio: syscon: Changing the compatibility string to match with the
smallest supported chip

already merged in gpio tree

Quoted 4 lines

input: clps711x-keypad: Changing the compatibility string to match
with the smallest supported chip
video: clps711x-fb: Changing the compatibility string to match with
the smallest supported chip

next/drivers

Quoted 1 line

ARM: clps711x: Add basic DT support

next/soc

Quoted 1 line

ARM: dts: clps711x: Add DT Cirrus Logic EDB7211 Development board

next/dt

Quoted 1 line

spi: clps711x: Driver refactor

I've sent this to Mark Brown along with the missing binding description. I'll either add this one here, or he can pick it up into the spi tree.

Quoted 1 line

ARM: clps711x: Remove board support

next/soc

Quoted 6 lines

video: clps711x: Remove old driver
clk: clps711x: Remove board support
clocksource: clps711x: Remove board support
irqchip: clps711x: Remove board support
serial: clps711x: Remove board support
gpio: clps711x: Remove board support

I've skipped these for now, I think I'll just resend them after the merge window.

Quoted 1 line

ARM: clps711x: Switch to MULTIPLATFORM

next/soc

Quoted 1 line

ARM: config: Add a multi_v4t_defconfig

next/defconfig

Sorry for the delay. I hope this works out and I didn't miss any additional compile-time dependencies.

Arnd