ARM: clps711x: Switch to DT and Multiplatform
Subsystems (15)
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
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
@@ -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
@@ -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
@@ -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
PATCH 2/22 clk: clps711x: Changing the compatibility string to match with the smallest supported chip
In reply to Alexander ShiyanThis 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
@@ -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
@@ -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
PATCH 3/22 clocksource: clps711x: Changing the compatibility string to match with the smallest supported chip
In reply to Alexander ShiyanThis 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
@@ -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
@@ -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
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.
Signed-off-by Alexander Shiyan <[email protected]>---
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@@ -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@@ -121,5 +121,5 @@ static void __init clps711x_timer_init(struct device_node *np)break ; } }
PATCH 4/22 irqchip: clps711x: Changing the compatibility string to match with the smallest supported chip
In reply to Alexander ShiyanThis 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
@@ -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
@@ -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
PATCH 5/22 serial: clps711x: Changing the compatibility string to match with the smallest supported chip
In reply to Alexander ShiyanThis 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
@@ -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
@@ -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
PATCH 6/22 pwm: clps711x: Changing the compatibility string to match with the smallest supported chip
In reply to Alexander ShiyanThis 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
@@ -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
@@ -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
PATCH 7/22 gpio: clps711x: Changing the compatibility string to match with the smallest supported chip
In reply to Alexander ShiyanThis 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
@@ -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
@@ -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
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.
Signed-off-by Alexander Shiyan <[email protected]>
Patch applied to the GPIO tree.
Yours,
Linus Walleij
PATCH 8/22 gpio: syscon: Changing the compatibility string to match with the smallest supported chip
In reply to Alexander ShiyanThis 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
@@ -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
@@ -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
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.
Signed-off-by Alexander Shiyan <[email protected]>
Patch applied to the GPIO tree.
Yours,
Linus Walleij
PATCH 9/22 input: clps711x-keypad: Changing the compatibility string to match with the smallest supported chip
In reply to Alexander ShiyanThis 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
@@ -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
@@ -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
PATCH 10/22 video: clps711x-fb: Changing the compatibility string to match with the smallest supported chip
In reply to Alexander ShiyanThis 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
@@ -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 = <®5v0>;
drivers/video/fbdev/clps711x-fb.c +2 -2
@@ -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
PATCH 11/22 ARM: clps711x: Add basic DT support
In reply to Alexander ShiyanThis 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
@@ -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
@@ -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
PATCH 12/22 ARM: dts: clps711x: Add DT Cirrus Logic EDB7211 Development board
In reply to Alexander ShiyanThis 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
@@ -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
@@ -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
PATCH 13/22 spi: clps711x: Driver refactor
In reply to Alexander ShiyanThis 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
@@ -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
Mark Brown
maintainerPATCH 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>
Arnd Bergmann
maintainerPATCH 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
PATCH 14/22 ARM: clps711x: Remove boards support
In reply to Alexander ShiyanAny 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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
PATCH 15/22 video: clps711x: Remove old driver
In reply to Alexander ShiyanSince 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
@@ -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
@@ -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
PATCH 16/22 clk: clps711x: Remove board support
In reply to Alexander ShiyanSince 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
@@ -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
PATCH 16/22 clk: clps711x: Remove board support
Quoted 5 lines · Alexander Shiyan
Since board support for the CLPS711X platform was removed, remove the board support from the driver.
Signed-off-by Alexander Shiyan <[email protected]>---
Signature · 2 lines
Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, a Linux Foundation Collaborative Project
PATCH 17/22 clocksource: clps711x: Remove board support
In reply to Alexander ShiyanSince 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
@@ -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
PATCH 17/22 clocksource: clps711x: Remove board support
Quoted 5 lines · Alexander Shiyan
Since board support for the CLPS711X platform was removed, remove the board support from the driver.
Signed-off-by Alexander Shiyan <[email protected]>---
PATCH 18/22 irqchip: clps711x: Remove board support
In reply to Alexander ShiyanSince 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
@@ -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
PATCH 19/22 serial: clps711x: Remove board support
In reply to Alexander ShiyanSince 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
@@ -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
PATCH 20/22 gpio: clps711x: Remove board support
In reply to Alexander ShiyanSince 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
@@ -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
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.
Signed-off-by Alexander Shiyan <[email protected]>
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
Arnd Bergmann
maintainerPATCH 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
Signed-off-by Alexander Shiyan <[email protected]>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
PATCH 21/22 ARM: clps711x: Switch to MULTIPLATFORM
In reply to Alexander ShiyanSwitch 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
@@ -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
@@ -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
@@ -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
@@ -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
PATCH 22/22 ARM: config: Add a multi_v4t_defconfig
In reply to Alexander ShiyanTo 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
@@ -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
Arnd Bergmann
maintainercover ARM: clps711x: Switch to DT and Multiplatform
In reply to Alexander ShiyanQuoted 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