diff mbox

[02/11] ARM: at91: switch 1arm to DT

Message ID 1384527006-9040-2-git-send-email-plagnioj@jcrosoft.com (mailing list archive)
State New, archived
Headers show

Commit Message

Jean-Christophe PLAGNIOL-VILLARD Nov. 15, 2013, 2:49 p.m. UTC
Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>
Cc: Nicolas Ferre <nicolas.ferre@atmel.com>
---
 arch/arm/boot/dts/Makefile            |  1 +
 arch/arm/boot/dts/at91-1arm.dts       | 70 +++++++++++++++++++++++++
 arch/arm/configs/at91rm9200_defconfig |  1 -
 arch/arm/mach-at91/Kconfig.non_dt     |  6 ---
 arch/arm/mach-at91/Makefile           |  1 -
 arch/arm/mach-at91/board-1arm.c       | 99 -----------------------------------
 6 files changed, 71 insertions(+), 107 deletions(-)
 create mode 100644 arch/arm/boot/dts/at91-1arm.dts
 delete mode 100644 arch/arm/mach-at91/board-1arm.c

Comments

Boris BREZILLON Nov. 15, 2013, 4:10 p.m. UTC | #1
On 15/11/2013 15:49, Jean-Christophe PLAGNIOL-VILLARD wrote:
> Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>
> Cc: Nicolas Ferre <nicolas.ferre@atmel.com>
> ---
>   arch/arm/boot/dts/Makefile            |  1 +
>   arch/arm/boot/dts/at91-1arm.dts       | 70 +++++++++++++++++++++++++
>   arch/arm/configs/at91rm9200_defconfig |  1 -
>   arch/arm/mach-at91/Kconfig.non_dt     |  6 ---
>   arch/arm/mach-at91/Makefile           |  1 -
>   arch/arm/mach-at91/board-1arm.c       | 99 -----------------------------------
>   6 files changed, 71 insertions(+), 107 deletions(-)
>   create mode 100644 arch/arm/boot/dts/at91-1arm.dts
>   delete mode 100644 arch/arm/mach-at91/board-1arm.c
>
> diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile
> index 802720e..f1fb6d7 100644
> --- a/arch/arm/boot/dts/Makefile
> +++ b/arch/arm/boot/dts/Makefile
> @@ -3,6 +3,7 @@ ifeq ($(CONFIG_OF),y)
>   # Keep at91 dtb files sorted alphabetically for each SoC
>   # rm9200
>   dtb-$(CONFIG_ARCH_AT91) += at91rm9200ek.dtb
> +dtb-$(CONFIG_ARCH_AT91) += at91-1arm.dtb
>   dtb-$(CONFIG_ARCH_AT91) += mpa1600.dtb
>   # sam9260
>   dtb-$(CONFIG_ARCH_AT91) += animeo_ip.dtb
> diff --git a/arch/arm/boot/dts/at91-1arm.dts b/arch/arm/boot/dts/at91-1arm.dts
> new file mode 100644
> index 0000000..39b0c56
> --- /dev/null
> +++ b/arch/arm/boot/dts/at91-1arm.dts
> @@ -0,0 +1,70 @@
> +/*
> + * at91-1arm.dts - Device Tree file for Ajeco 1ARM single board computer
> + *
> + * Copyright (C) 2013 Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>
> + *
> + * Licensed under GPLv2 only
> + */
> +/dts-v1/;
> +#include "at91rm9200_pqfp.dtsi"
> +
> +/ {
> +	model = "Ajeco 1ARM single board computer";
> +	compatible = "ajeco,1arm", "atmel,at91rm9200-pqfp", "atmel,at91rm9200";
> +
> +	clocks {
> +		#address-cells = <1>;
> +		#size-cells = <1>;
> +		ranges;
> +
> +		main_clock: clock@0 {
> +			compatible = "atmel,osc", "fixed-clock";
> +			clock-frequency = <18432000>;
> +		};
> +	};
> +
> +	ahb {
> +		apb {
> +			dbgu: serial@fffff200 {
> +				status = "okay";
> +			};
> +
> +			usart0: serial@fffc0000 {
> +				pinctrl-0 =
> +						<&pinctrl_uart0
> +						 &pinctrl_uart0_rts
> +						 &pinctrl_uart0_cts>;
> +
> +				status = "okay";
> +			};
> +
> +			usart1: serial@fffc4000 {
> +				pinctrl-0 =
> +						<&pinctrl_uart1
> +						 &pinctrl_uart1_rts
> +						 &pinctrl_uart1_cts
> +						 &pinctrl_uart1_dtr_dsr
> +						 &pinctrl_uart1_dcd
> +						 &pinctrl_uart1_ri>;
> +				status = "okay";
> +			};
> +
> +			macb0: ethernet@fffbc000 {
> +				phy-mode = "rmii";
> +				/* phy irq PC4 */
> +				status = "okay";
> +			};


Could you add a phy node in macb0 node (see 
https://lkml.org/lkml/2013/8/28/183) ?
In this node you can describe phy irq and even phy id (if it is hardcoded).

The same goes for all rm9200 boards except rm9200ek (I already posted a 
series for this one).

Best Regards,

Boris

> +
> +			usb1: gadget@fffb0000 {
> +				atmel,vbus-gpio = <&pioC 2 0>;
> +				atmel,pullup-gpio = <&pioC 3 0>;
> +				status = "okay";
> +			};
> +		};
> +
> +		usb0: ohci@00300000 {
> +			num-ports = <1>;
> +			status = "okay";
> +		};
> +	};
> +};
> diff --git a/arch/arm/configs/at91rm9200_defconfig b/arch/arm/configs/at91rm9200_defconfig
> index 75502c4..d333250 100644
> --- a/arch/arm/configs/at91rm9200_defconfig
> +++ b/arch/arm/configs/at91rm9200_defconfig
> @@ -17,7 +17,6 @@ CONFIG_MODULE_SRCVERSION_ALL=y
>   # CONFIG_IOSCHED_CFQ is not set
>   CONFIG_ARCH_AT91=y
>   CONFIG_ARCH_AT91RM9200=y
> -CONFIG_MACH_ONEARM=y
>   CONFIG_MACH_AT91RM9200EK=y
>   CONFIG_MACH_CSB337=y
>   CONFIG_MACH_CSB637=y
> diff --git a/arch/arm/mach-at91/Kconfig.non_dt b/arch/arm/mach-at91/Kconfig.non_dt
> index ca900be..4dcf706 100644
> --- a/arch/arm/mach-at91/Kconfig.non_dt
> +++ b/arch/arm/mach-at91/Kconfig.non_dt
> @@ -56,12 +56,6 @@ if ARCH_AT91RM9200
>
>   comment "AT91RM9200 Board Type"
>
> -config MACH_ONEARM
> -	bool "Ajeco 1ARM Single Board Computer"
> -	help
> -	  Select this if you are using Ajeco's 1ARM Single Board Computer.
> -	  <http://www.ajeco.fi/>
> -
>   config MACH_AT91RM9200EK
>   	bool "Atmel AT91RM9200-EK Evaluation Kit"
>   	select HAVE_AT91_DATAFLASH_CARD
> diff --git a/arch/arm/mach-at91/Makefile b/arch/arm/mach-at91/Makefile
> index 3b0a953..5c5534c 100644
> --- a/arch/arm/mach-at91/Makefile
> +++ b/arch/arm/mach-at91/Makefile
> @@ -33,7 +33,6 @@ obj-$(CONFIG_ARCH_AT91SAM9G45)	+= at91sam9g45_devices.o
>   obj-$(CONFIG_ARCH_AT91X40)	+= at91x40.o at91x40_time.o
>
>   # AT91RM9200 board-specific support
> -obj-$(CONFIG_MACH_ONEARM)	+= board-1arm.o
>   obj-$(CONFIG_MACH_AT91RM9200EK)	+= board-rm9200ek.o
>   obj-$(CONFIG_MACH_CSB337)	+= board-csb337.o
>   obj-$(CONFIG_MACH_CSB637)	+= board-csb637.o
> diff --git a/arch/arm/mach-at91/board-1arm.c b/arch/arm/mach-at91/board-1arm.c
> deleted file mode 100644
> index 35ab632..0000000
> --- a/arch/arm/mach-at91/board-1arm.c
> +++ /dev/null
> @@ -1,99 +0,0 @@
> -/*
> - * linux/arch/arm/mach-at91/board-1arm.c
> - *
> - *  Copyright (C) 2005 SAN People
> - *
> - * 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.
> - *
> - * This program is distributed in the hope that it will be useful,
> - * but WITHOUT ANY WARRANTY; without even the implied warranty of
> - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
> - * GNU General Public License for more details.
> - *
> - * You should have received a copy of the GNU General Public License
> - * along with this program; if not, write to the Free Software
> - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
> - */
> -
> -#include <linux/types.h>
> -#include <linux/gpio.h>
> -#include <linux/init.h>
> -#include <linux/mm.h>
> -#include <linux/module.h>
> -#include <linux/platform_device.h>
> -
> -#include <mach/hardware.h>
> -#include <asm/setup.h>
> -#include <asm/mach-types.h>
> -#include <asm/irq.h>
> -
> -#include <asm/mach/arch.h>
> -#include <asm/mach/map.h>
> -#include <asm/mach/irq.h>
> -
> -#include <mach/cpu.h>
> -
> -#include "at91_aic.h"
> -#include "board.h"
> -#include "generic.h"
> -
> -
> -static void __init onearm_init_early(void)
> -{
> -	/* Set cpu type: PQFP */
> -	at91rm9200_set_type(ARCH_REVISON_9200_PQFP);
> -
> -	/* Initialize processor: 18.432 MHz crystal */
> -	at91_initialize(18432000);
> -}
> -
> -static struct macb_platform_data __initdata onearm_eth_data = {
> -	.phy_irq_pin	= AT91_PIN_PC4,
> -	.is_rmii	= 1,
> -};
> -
> -static struct at91_usbh_data __initdata onearm_usbh_data = {
> -	.ports		= 1,
> -	.vbus_pin	= {-EINVAL, -EINVAL},
> -	.overcurrent_pin= {-EINVAL, -EINVAL},
> -};
> -
> -static struct at91_udc_data __initdata onearm_udc_data = {
> -	.vbus_pin	= AT91_PIN_PC2,
> -	.pullup_pin	= AT91_PIN_PC3,
> -};
> -
> -static void __init onearm_board_init(void)
> -{
> -	/* Serial */
> -	/* DBGU on ttyS0. (Rx & Tx only) */
> -	at91_register_uart(0, 0, 0);
> -
> -	/* USART0 on ttyS1 (Rx, Tx, CTS, RTS) */
> -	at91_register_uart(AT91RM9200_ID_US0, 1, ATMEL_UART_CTS | ATMEL_UART_RTS);
> -
> -	/* USART1 on ttyS2 (Rx, Tx, CTS, RTS, DTR, DSR, DCD, RI) */
> -	at91_register_uart(AT91RM9200_ID_US1, 2, ATMEL_UART_CTS | ATMEL_UART_RTS
> -			   | ATMEL_UART_DTR | ATMEL_UART_DSR | ATMEL_UART_DCD
> -			   | ATMEL_UART_RI);
> -	at91_add_device_serial();
> -	/* Ethernet */
> -	at91_add_device_eth(&onearm_eth_data);
> -	/* USB Host */
> -	at91_add_device_usbh(&onearm_usbh_data);
> -	/* USB Device */
> -	at91_add_device_udc(&onearm_udc_data);
> -}
> -
> -MACHINE_START(ONEARM, "Ajeco 1ARM single board computer")
> -	/* Maintainer: Lennert Buytenhek <buytenh@wantstofly.org> */
> -	.init_time	= at91rm9200_timer_init,
> -	.map_io		= at91_map_io,
> -	.handle_irq	= at91_aic_handle_irq,
> -	.init_early	= onearm_init_early,
> -	.init_irq	= at91_init_irq_default,
> -	.init_machine	= onearm_board_init,
> -MACHINE_END
>
Boris BREZILLON Nov. 15, 2013, 5:27 p.m. UTC | #2
On 15/11/2013 15:49, Jean-Christophe PLAGNIOL-VILLARD wrote:
> Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>
> Cc: Nicolas Ferre <nicolas.ferre@atmel.com>
> ---
>   arch/arm/boot/dts/Makefile            |  1 +
>   arch/arm/boot/dts/at91-1arm.dts       | 70 +++++++++++++++++++++++++
>   arch/arm/configs/at91rm9200_defconfig |  1 -
>   arch/arm/mach-at91/Kconfig.non_dt     |  6 ---
>   arch/arm/mach-at91/Makefile           |  1 -
>   arch/arm/mach-at91/board-1arm.c       | 99 -----------------------------------
>   6 files changed, 71 insertions(+), 107 deletions(-)
>   create mode 100644 arch/arm/boot/dts/at91-1arm.dts
>   delete mode 100644 arch/arm/mach-at91/board-1arm.c
>
> diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile
> index 802720e..f1fb6d7 100644
> --- a/arch/arm/boot/dts/Makefile
> +++ b/arch/arm/boot/dts/Makefile
> @@ -3,6 +3,7 @@ ifeq ($(CONFIG_OF),y)
>   # Keep at91 dtb files sorted alphabetically for each SoC
>   # rm9200
>   dtb-$(CONFIG_ARCH_AT91) += at91rm9200ek.dtb
> +dtb-$(CONFIG_ARCH_AT91) += at91-1arm.dtb
>   dtb-$(CONFIG_ARCH_AT91) += mpa1600.dtb
>   # sam9260
>   dtb-$(CONFIG_ARCH_AT91) += animeo_ip.dtb
> diff --git a/arch/arm/boot/dts/at91-1arm.dts b/arch/arm/boot/dts/at91-1arm.dts
> new file mode 100644
> index 0000000..39b0c56
> --- /dev/null
> +++ b/arch/arm/boot/dts/at91-1arm.dts
> @@ -0,0 +1,70 @@
> +/*
> + * at91-1arm.dts - Device Tree file for Ajeco 1ARM single board computer
> + *
> + * Copyright (C) 2013 Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>
> + *
> + * Licensed under GPLv2 only
> + */
> +/dts-v1/;
> +#include "at91rm9200_pqfp.dtsi"
> +
> +/ {
> +	model = "Ajeco 1ARM single board computer";
> +	compatible = "ajeco,1arm", "atmel,at91rm9200-pqfp", "atmel,at91rm9200";
> +
> +	clocks {
> +		#address-cells = <1>;
> +		#size-cells = <1>;
> +		ranges;
> +
> +		main_clock: clock@0 {
> +			compatible = "atmel,osc", "fixed-clock";
> +			clock-frequency = <18432000>;
> +		};
> +	};
> +
> +	ahb {
> +		apb {
> +			dbgu: serial@fffff200 {
> +				status = "okay";
> +			};
> +
> +			usart0: serial@fffc0000 {
> +				pinctrl-0 =
> +						<&pinctrl_uart0
> +						 &pinctrl_uart0_rts
> +						 &pinctrl_uart0_cts>;
> +
> +				status = "okay";
> +			};
> +
> +			usart1: serial@fffc4000 {
> +				pinctrl-0 =
> +						<&pinctrl_uart1
> +						 &pinctrl_uart1_rts
> +						 &pinctrl_uart1_cts
> +						 &pinctrl_uart1_dtr_dsr
> +						 &pinctrl_uart1_dcd
> +						 &pinctrl_uart1_ri>;
> +				status = "okay";
> +			};
> +
> +			macb0: ethernet@fffbc000 {
> +				phy-mode = "rmii";
> +				/* phy irq PC4 */
> +				status = "okay";
> +			};
> +
> +			usb1: gadget@fffb0000 {
> +				atmel,vbus-gpio = <&pioC 2 0>;
> +				atmel,pullup-gpio = <&pioC 3 0>;

Shouldn't you use GPIO_ACTIVE_HIGH macro instead of the plain 0 value 
(as done in other dts files) ?

> +				status = "okay";
> +			};
> +		};
> +
> +		usb0: ohci@00300000 {
> +			num-ports = <1>;
> +			status = "okay";
> +		};
> +	};
> +};
> diff --git a/arch/arm/configs/at91rm9200_defconfig b/arch/arm/configs/at91rm9200_defconfig
> index 75502c4..d333250 100644
> --- a/arch/arm/configs/at91rm9200_defconfig
> +++ b/arch/arm/configs/at91rm9200_defconfig
> @@ -17,7 +17,6 @@ CONFIG_MODULE_SRCVERSION_ALL=y
>   # CONFIG_IOSCHED_CFQ is not set
>   CONFIG_ARCH_AT91=y
>   CONFIG_ARCH_AT91RM9200=y
> -CONFIG_MACH_ONEARM=y
>   CONFIG_MACH_AT91RM9200EK=y
>   CONFIG_MACH_CSB337=y
>   CONFIG_MACH_CSB637=y
> diff --git a/arch/arm/mach-at91/Kconfig.non_dt b/arch/arm/mach-at91/Kconfig.non_dt
> index ca900be..4dcf706 100644
> --- a/arch/arm/mach-at91/Kconfig.non_dt
> +++ b/arch/arm/mach-at91/Kconfig.non_dt
> @@ -56,12 +56,6 @@ if ARCH_AT91RM9200
>
>   comment "AT91RM9200 Board Type"
>
> -config MACH_ONEARM
> -	bool "Ajeco 1ARM Single Board Computer"
> -	help
> -	  Select this if you are using Ajeco's 1ARM Single Board Computer.
> -	  <http://www.ajeco.fi/>
> -
>   config MACH_AT91RM9200EK
>   	bool "Atmel AT91RM9200-EK Evaluation Kit"
>   	select HAVE_AT91_DATAFLASH_CARD
> diff --git a/arch/arm/mach-at91/Makefile b/arch/arm/mach-at91/Makefile
> index 3b0a953..5c5534c 100644
> --- a/arch/arm/mach-at91/Makefile
> +++ b/arch/arm/mach-at91/Makefile
> @@ -33,7 +33,6 @@ obj-$(CONFIG_ARCH_AT91SAM9G45)	+= at91sam9g45_devices.o
>   obj-$(CONFIG_ARCH_AT91X40)	+= at91x40.o at91x40_time.o
>
>   # AT91RM9200 board-specific support
> -obj-$(CONFIG_MACH_ONEARM)	+= board-1arm.o
>   obj-$(CONFIG_MACH_AT91RM9200EK)	+= board-rm9200ek.o
>   obj-$(CONFIG_MACH_CSB337)	+= board-csb337.o
>   obj-$(CONFIG_MACH_CSB637)	+= board-csb637.o
> diff --git a/arch/arm/mach-at91/board-1arm.c b/arch/arm/mach-at91/board-1arm.c
> deleted file mode 100644
> index 35ab632..0000000
> --- a/arch/arm/mach-at91/board-1arm.c
> +++ /dev/null
> @@ -1,99 +0,0 @@
> -/*
> - * linux/arch/arm/mach-at91/board-1arm.c
> - *
> - *  Copyright (C) 2005 SAN People
> - *
> - * 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.
> - *
> - * This program is distributed in the hope that it will be useful,
> - * but WITHOUT ANY WARRANTY; without even the implied warranty of
> - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
> - * GNU General Public License for more details.
> - *
> - * You should have received a copy of the GNU General Public License
> - * along with this program; if not, write to the Free Software
> - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
> - */
> -
> -#include <linux/types.h>
> -#include <linux/gpio.h>
> -#include <linux/init.h>
> -#include <linux/mm.h>
> -#include <linux/module.h>
> -#include <linux/platform_device.h>
> -
> -#include <mach/hardware.h>
> -#include <asm/setup.h>
> -#include <asm/mach-types.h>
> -#include <asm/irq.h>
> -
> -#include <asm/mach/arch.h>
> -#include <asm/mach/map.h>
> -#include <asm/mach/irq.h>
> -
> -#include <mach/cpu.h>
> -
> -#include "at91_aic.h"
> -#include "board.h"
> -#include "generic.h"
> -
> -
> -static void __init onearm_init_early(void)
> -{
> -	/* Set cpu type: PQFP */
> -	at91rm9200_set_type(ARCH_REVISON_9200_PQFP);
> -
> -	/* Initialize processor: 18.432 MHz crystal */
> -	at91_initialize(18432000);
> -}
> -
> -static struct macb_platform_data __initdata onearm_eth_data = {
> -	.phy_irq_pin	= AT91_PIN_PC4,
> -	.is_rmii	= 1,
> -};
> -
> -static struct at91_usbh_data __initdata onearm_usbh_data = {
> -	.ports		= 1,
> -	.vbus_pin	= {-EINVAL, -EINVAL},
> -	.overcurrent_pin= {-EINVAL, -EINVAL},
> -};
> -
> -static struct at91_udc_data __initdata onearm_udc_data = {
> -	.vbus_pin	= AT91_PIN_PC2,
> -	.pullup_pin	= AT91_PIN_PC3,
> -};
> -
> -static void __init onearm_board_init(void)
> -{
> -	/* Serial */
> -	/* DBGU on ttyS0. (Rx & Tx only) */
> -	at91_register_uart(0, 0, 0);
> -
> -	/* USART0 on ttyS1 (Rx, Tx, CTS, RTS) */
> -	at91_register_uart(AT91RM9200_ID_US0, 1, ATMEL_UART_CTS | ATMEL_UART_RTS);
> -
> -	/* USART1 on ttyS2 (Rx, Tx, CTS, RTS, DTR, DSR, DCD, RI) */
> -	at91_register_uart(AT91RM9200_ID_US1, 2, ATMEL_UART_CTS | ATMEL_UART_RTS
> -			   | ATMEL_UART_DTR | ATMEL_UART_DSR | ATMEL_UART_DCD
> -			   | ATMEL_UART_RI);
> -	at91_add_device_serial();
> -	/* Ethernet */
> -	at91_add_device_eth(&onearm_eth_data);
> -	/* USB Host */
> -	at91_add_device_usbh(&onearm_usbh_data);
> -	/* USB Device */
> -	at91_add_device_udc(&onearm_udc_data);
> -}
> -
> -MACHINE_START(ONEARM, "Ajeco 1ARM single board computer")
> -	/* Maintainer: Lennert Buytenhek <buytenh@wantstofly.org> */
> -	.init_time	= at91rm9200_timer_init,
> -	.map_io		= at91_map_io,
> -	.handle_irq	= at91_aic_handle_irq,
> -	.init_early	= onearm_init_early,
> -	.init_irq	= at91_init_irq_default,
> -	.init_machine	= onearm_board_init,
> -MACHINE_END
>
Jean-Christophe PLAGNIOL-VILLARD Nov. 15, 2013, 5:41 p.m. UTC | #3
On 17:10 Fri 15 Nov     , boris brezillon wrote:
> On 15/11/2013 15:49, Jean-Christophe PLAGNIOL-VILLARD wrote:
> >Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>
> >Cc: Nicolas Ferre <nicolas.ferre@atmel.com>
> >---
> >  arch/arm/boot/dts/Makefile            |  1 +
> >  arch/arm/boot/dts/at91-1arm.dts       | 70 +++++++++++++++++++++++++
> >  arch/arm/configs/at91rm9200_defconfig |  1 -
> >  arch/arm/mach-at91/Kconfig.non_dt     |  6 ---
> >  arch/arm/mach-at91/Makefile           |  1 -
> >  arch/arm/mach-at91/board-1arm.c       | 99 -----------------------------------
> >  6 files changed, 71 insertions(+), 107 deletions(-)
> >  create mode 100644 arch/arm/boot/dts/at91-1arm.dts
> >  delete mode 100644 arch/arm/mach-at91/board-1arm.c
> >
> >diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile
> >index 802720e..f1fb6d7 100644
> >--- a/arch/arm/boot/dts/Makefile
> >+++ b/arch/arm/boot/dts/Makefile
> >@@ -3,6 +3,7 @@ ifeq ($(CONFIG_OF),y)
> >  # Keep at91 dtb files sorted alphabetically for each SoC
> >  # rm9200
> >  dtb-$(CONFIG_ARCH_AT91) += at91rm9200ek.dtb
> >+dtb-$(CONFIG_ARCH_AT91) += at91-1arm.dtb
> >  dtb-$(CONFIG_ARCH_AT91) += mpa1600.dtb
> >  # sam9260
> >  dtb-$(CONFIG_ARCH_AT91) += animeo_ip.dtb
> >diff --git a/arch/arm/boot/dts/at91-1arm.dts b/arch/arm/boot/dts/at91-1arm.dts
> >new file mode 100644
> >index 0000000..39b0c56
> >--- /dev/null
> >+++ b/arch/arm/boot/dts/at91-1arm.dts
> >@@ -0,0 +1,70 @@
> >+/*
> >+ * at91-1arm.dts - Device Tree file for Ajeco 1ARM single board computer
> >+ *
> >+ * Copyright (C) 2013 Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>
> >+ *
> >+ * Licensed under GPLv2 only
> >+ */
> >+/dts-v1/;
> >+#include "at91rm9200_pqfp.dtsi"
> >+
> >+/ {
> >+	model = "Ajeco 1ARM single board computer";
> >+	compatible = "ajeco,1arm", "atmel,at91rm9200-pqfp", "atmel,at91rm9200";
> >+
> >+	clocks {
> >+		#address-cells = <1>;
> >+		#size-cells = <1>;
> >+		ranges;
> >+
> >+		main_clock: clock@0 {
> >+			compatible = "atmel,osc", "fixed-clock";
> >+			clock-frequency = <18432000>;
> >+		};
> >+	};
> >+
> >+	ahb {
> >+		apb {
> >+			dbgu: serial@fffff200 {
> >+				status = "okay";
> >+			};
> >+
> >+			usart0: serial@fffc0000 {
> >+				pinctrl-0 =
> >+						<&pinctrl_uart0
> >+						 &pinctrl_uart0_rts
> >+						 &pinctrl_uart0_cts>;
> >+
> >+				status = "okay";
> >+			};
> >+
> >+			usart1: serial@fffc4000 {
> >+				pinctrl-0 =
> >+						<&pinctrl_uart1
> >+						 &pinctrl_uart1_rts
> >+						 &pinctrl_uart1_cts
> >+						 &pinctrl_uart1_dtr_dsr
> >+						 &pinctrl_uart1_dcd
> >+						 &pinctrl_uart1_ri>;
> >+				status = "okay";
> >+			};
> >+
> >+			macb0: ethernet@fffbc000 {
> >+				phy-mode = "rmii";
> >+				/* phy irq PC4 */
> >+				status = "okay";
> >+			};
> 
> 
> Could you add a phy node in macb0 node (see
> https://lkml.org/lkml/2013/8/28/183) ?
> In this node you can describe phy irq and even phy id (if it is hardcoded).
> 
> The same goes for all rm9200 boards except rm9200ek (I already
> posted a series for this one).

I did not do this as this code was never tested on those board as the driver
was not supporting it so as I can not test it I do not want to do it

Best Regards,
J.
Boris BREZILLON Nov. 15, 2013, 6:27 p.m. UTC | #4
On 15/11/2013 18:41, Jean-Christophe PLAGNIOL-VILLARD wrote:
> On 17:10 Fri 15 Nov     , boris brezillon wrote:
>> On 15/11/2013 15:49, Jean-Christophe PLAGNIOL-VILLARD wrote:
>>> Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>
>>> Cc: Nicolas Ferre <nicolas.ferre@atmel.com>
>>> ---
>>>   arch/arm/boot/dts/Makefile            |  1 +
>>>   arch/arm/boot/dts/at91-1arm.dts       | 70 +++++++++++++++++++++++++
>>>   arch/arm/configs/at91rm9200_defconfig |  1 -
>>>   arch/arm/mach-at91/Kconfig.non_dt     |  6 ---
>>>   arch/arm/mach-at91/Makefile           |  1 -
>>>   arch/arm/mach-at91/board-1arm.c       | 99 -----------------------------------
>>>   6 files changed, 71 insertions(+), 107 deletions(-)
>>>   create mode 100644 arch/arm/boot/dts/at91-1arm.dts
>>>   delete mode 100644 arch/arm/mach-at91/board-1arm.c
>>>
>>> diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile
>>> index 802720e..f1fb6d7 100644
>>> --- a/arch/arm/boot/dts/Makefile
>>> +++ b/arch/arm/boot/dts/Makefile
>>> @@ -3,6 +3,7 @@ ifeq ($(CONFIG_OF),y)
>>>   # Keep at91 dtb files sorted alphabetically for each SoC
>>>   # rm9200
>>>   dtb-$(CONFIG_ARCH_AT91) += at91rm9200ek.dtb
>>> +dtb-$(CONFIG_ARCH_AT91) += at91-1arm.dtb
>>>   dtb-$(CONFIG_ARCH_AT91) += mpa1600.dtb
>>>   # sam9260
>>>   dtb-$(CONFIG_ARCH_AT91) += animeo_ip.dtb
>>> diff --git a/arch/arm/boot/dts/at91-1arm.dts b/arch/arm/boot/dts/at91-1arm.dts
>>> new file mode 100644
>>> index 0000000..39b0c56
>>> --- /dev/null
>>> +++ b/arch/arm/boot/dts/at91-1arm.dts
>>> @@ -0,0 +1,70 @@
>>> +/*
>>> + * at91-1arm.dts - Device Tree file for Ajeco 1ARM single board computer
>>> + *
>>> + * Copyright (C) 2013 Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>
>>> + *
>>> + * Licensed under GPLv2 only
>>> + */
>>> +/dts-v1/;
>>> +#include "at91rm9200_pqfp.dtsi"
>>> +
>>> +/ {
>>> +	model = "Ajeco 1ARM single board computer";
>>> +	compatible = "ajeco,1arm", "atmel,at91rm9200-pqfp", "atmel,at91rm9200";
>>> +
>>> +	clocks {
>>> +		#address-cells = <1>;
>>> +		#size-cells = <1>;
>>> +		ranges;
>>> +
>>> +		main_clock: clock@0 {
>>> +			compatible = "atmel,osc", "fixed-clock";
>>> +			clock-frequency = <18432000>;
>>> +		};
>>> +	};
>>> +
>>> +	ahb {
>>> +		apb {
>>> +			dbgu: serial@fffff200 {
>>> +				status = "okay";
>>> +			};
>>> +
>>> +			usart0: serial@fffc0000 {
>>> +				pinctrl-0 =
>>> +						<&pinctrl_uart0
>>> +						 &pinctrl_uart0_rts
>>> +						 &pinctrl_uart0_cts>;
>>> +
>>> +				status = "okay";
>>> +			};
>>> +
>>> +			usart1: serial@fffc4000 {
>>> +				pinctrl-0 =
>>> +						<&pinctrl_uart1
>>> +						 &pinctrl_uart1_rts
>>> +						 &pinctrl_uart1_cts
>>> +						 &pinctrl_uart1_dtr_dsr
>>> +						 &pinctrl_uart1_dcd
>>> +						 &pinctrl_uart1_ri>;
>>> +				status = "okay";
>>> +			};
>>> +
>>> +			macb0: ethernet@fffbc000 {
>>> +				phy-mode = "rmii";
>>> +				/* phy irq PC4 */
>>> +				status = "okay";
>>> +			};
>>
>> Could you add a phy node in macb0 node (see
>> https://lkml.org/lkml/2013/8/28/183) ?
>> In this node you can describe phy irq and even phy id (if it is hardcoded).
>>
>> The same goes for all rm9200 boards except rm9200ek (I already
>> posted a series for this one).
> I did not do this as this code was never tested on those board as the driver
> was not supporting it so as I can not test it I do not want to do it

How could this be a valid argument ?
I'm not telling that this should be mainlined without any tests, but 
IMHO dropping
new features because we don't have time to test it is not a good approach.

Moreover, the non-dt versions of these boards provide phy irq 
functionality and I think
we should at least provide the same level of functionality when 
migrating to dt.

I implemented the phy dt definition support for macb (and implicitely for
at91_ether) ethernet drivers, and I think this should be used for all 
new dt boards.

Anyway, this is not my decision, and let at91 maintainers (including 
you) decide wether
this should be dropped for this version.

Best Regards,

Boris

>
> Best Regards,
> J.
Jean-Christophe PLAGNIOL-VILLARD Nov. 15, 2013, 6:33 p.m. UTC | #5
On 19:27 Fri 15 Nov     , boris brezillon wrote:
> On 15/11/2013 18:41, Jean-Christophe PLAGNIOL-VILLARD wrote:
> >On 17:10 Fri 15 Nov     , boris brezillon wrote:
> >>On 15/11/2013 15:49, Jean-Christophe PLAGNIOL-VILLARD wrote:
> >>>Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>
> >>>Cc: Nicolas Ferre <nicolas.ferre@atmel.com>
> >>>---
> >>>  arch/arm/boot/dts/Makefile            |  1 +
> >>>  arch/arm/boot/dts/at91-1arm.dts       | 70 +++++++++++++++++++++++++
> >>>  arch/arm/configs/at91rm9200_defconfig |  1 -
> >>>  arch/arm/mach-at91/Kconfig.non_dt     |  6 ---
> >>>  arch/arm/mach-at91/Makefile           |  1 -
> >>>  arch/arm/mach-at91/board-1arm.c       | 99 -----------------------------------
> >>>  6 files changed, 71 insertions(+), 107 deletions(-)
> >>>  create mode 100644 arch/arm/boot/dts/at91-1arm.dts
> >>>  delete mode 100644 arch/arm/mach-at91/board-1arm.c
> >>>
> >>>diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile
> >>>index 802720e..f1fb6d7 100644
> >>>--- a/arch/arm/boot/dts/Makefile
> >>>+++ b/arch/arm/boot/dts/Makefile
> >>>@@ -3,6 +3,7 @@ ifeq ($(CONFIG_OF),y)
> >>>  # Keep at91 dtb files sorted alphabetically for each SoC
> >>>  # rm9200
> >>>  dtb-$(CONFIG_ARCH_AT91) += at91rm9200ek.dtb
> >>>+dtb-$(CONFIG_ARCH_AT91) += at91-1arm.dtb
> >>>  dtb-$(CONFIG_ARCH_AT91) += mpa1600.dtb
> >>>  # sam9260
> >>>  dtb-$(CONFIG_ARCH_AT91) += animeo_ip.dtb
> >>>diff --git a/arch/arm/boot/dts/at91-1arm.dts b/arch/arm/boot/dts/at91-1arm.dts
> >>>new file mode 100644
> >>>index 0000000..39b0c56
> >>>--- /dev/null
> >>>+++ b/arch/arm/boot/dts/at91-1arm.dts
> >>>@@ -0,0 +1,70 @@
> >>>+/*
> >>>+ * at91-1arm.dts - Device Tree file for Ajeco 1ARM single board computer
> >>>+ *
> >>>+ * Copyright (C) 2013 Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>
> >>>+ *
> >>>+ * Licensed under GPLv2 only
> >>>+ */
> >>>+/dts-v1/;
> >>>+#include "at91rm9200_pqfp.dtsi"
> >>>+
> >>>+/ {
> >>>+	model = "Ajeco 1ARM single board computer";
> >>>+	compatible = "ajeco,1arm", "atmel,at91rm9200-pqfp", "atmel,at91rm9200";
> >>>+
> >>>+	clocks {
> >>>+		#address-cells = <1>;
> >>>+		#size-cells = <1>;
> >>>+		ranges;
> >>>+
> >>>+		main_clock: clock@0 {
> >>>+			compatible = "atmel,osc", "fixed-clock";
> >>>+			clock-frequency = <18432000>;
> >>>+		};
> >>>+	};
> >>>+
> >>>+	ahb {
> >>>+		apb {
> >>>+			dbgu: serial@fffff200 {
> >>>+				status = "okay";
> >>>+			};
> >>>+
> >>>+			usart0: serial@fffc0000 {
> >>>+				pinctrl-0 =
> >>>+						<&pinctrl_uart0
> >>>+						 &pinctrl_uart0_rts
> >>>+						 &pinctrl_uart0_cts>;
> >>>+
> >>>+				status = "okay";
> >>>+			};
> >>>+
> >>>+			usart1: serial@fffc4000 {
> >>>+				pinctrl-0 =
> >>>+						<&pinctrl_uart1
> >>>+						 &pinctrl_uart1_rts
> >>>+						 &pinctrl_uart1_cts
> >>>+						 &pinctrl_uart1_dtr_dsr
> >>>+						 &pinctrl_uart1_dcd
> >>>+						 &pinctrl_uart1_ri>;
> >>>+				status = "okay";
> >>>+			};
> >>>+
> >>>+			macb0: ethernet@fffbc000 {
> >>>+				phy-mode = "rmii";
> >>>+				/* phy irq PC4 */
> >>>+				status = "okay";
> >>>+			};
> >>
> >>Could you add a phy node in macb0 node (see
> >>https://lkml.org/lkml/2013/8/28/183) ?
> >>In this node you can describe phy irq and even phy id (if it is hardcoded).
> >>
> >>The same goes for all rm9200 boards except rm9200ek (I already
> >>posted a series for this one).
> >I did not do this as this code was never tested on those board as the driver
> >was not supporting it so as I can not test it I do not want to do it
> 
> How could this be a valid argument ?
> I'm not telling that this should be mainlined without any tests, but
> IMHO dropping
> new features because we don't have time to test it is not a good approach.

execpt here the board code was never tested as when the board was merged the
cadence driver did NOT support phy IRQ so I can garanti it will work

so I do not prodive the DT support if the board maintainer care about its
board it will fix it


> 
> Moreover, the non-dt versions of these boards provide phy irq
> functionality and I think
> we should at least provide the same level of functionality when
> migrating to dt.
> 
> I implemented the phy dt definition support for macb (and implicitely for
> at91_ether) ethernet drivers, and I think this should be used for
> all new dt boards.

If you want to use it and work on the HW

here I'm note sure so I play safe

Best Regards,
J.
diff mbox

Patch

diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile
index 802720e..f1fb6d7 100644
--- a/arch/arm/boot/dts/Makefile
+++ b/arch/arm/boot/dts/Makefile
@@ -3,6 +3,7 @@  ifeq ($(CONFIG_OF),y)
 # Keep at91 dtb files sorted alphabetically for each SoC
 # rm9200
 dtb-$(CONFIG_ARCH_AT91) += at91rm9200ek.dtb
+dtb-$(CONFIG_ARCH_AT91) += at91-1arm.dtb
 dtb-$(CONFIG_ARCH_AT91) += mpa1600.dtb
 # sam9260
 dtb-$(CONFIG_ARCH_AT91) += animeo_ip.dtb
diff --git a/arch/arm/boot/dts/at91-1arm.dts b/arch/arm/boot/dts/at91-1arm.dts
new file mode 100644
index 0000000..39b0c56
--- /dev/null
+++ b/arch/arm/boot/dts/at91-1arm.dts
@@ -0,0 +1,70 @@ 
+/*
+ * at91-1arm.dts - Device Tree file for Ajeco 1ARM single board computer
+ *
+ * Copyright (C) 2013 Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>
+ *
+ * Licensed under GPLv2 only
+ */
+/dts-v1/;
+#include "at91rm9200_pqfp.dtsi"
+
+/ {
+	model = "Ajeco 1ARM single board computer";
+	compatible = "ajeco,1arm", "atmel,at91rm9200-pqfp", "atmel,at91rm9200";
+
+	clocks {
+		#address-cells = <1>;
+		#size-cells = <1>;
+		ranges;
+
+		main_clock: clock@0 {
+			compatible = "atmel,osc", "fixed-clock";
+			clock-frequency = <18432000>;
+		};
+	};
+
+	ahb {
+		apb {
+			dbgu: serial@fffff200 {
+				status = "okay";
+			};
+
+			usart0: serial@fffc0000 {
+				pinctrl-0 =
+						<&pinctrl_uart0
+						 &pinctrl_uart0_rts
+						 &pinctrl_uart0_cts>;
+
+				status = "okay";
+			};
+
+			usart1: serial@fffc4000 {
+				pinctrl-0 =
+						<&pinctrl_uart1
+						 &pinctrl_uart1_rts
+						 &pinctrl_uart1_cts
+						 &pinctrl_uart1_dtr_dsr
+						 &pinctrl_uart1_dcd
+						 &pinctrl_uart1_ri>;
+				status = "okay";
+			};
+
+			macb0: ethernet@fffbc000 {
+				phy-mode = "rmii";
+				/* phy irq PC4 */
+				status = "okay";
+			};
+
+			usb1: gadget@fffb0000 {
+				atmel,vbus-gpio = <&pioC 2 0>;
+				atmel,pullup-gpio = <&pioC 3 0>;
+				status = "okay";
+			};
+		};
+
+		usb0: ohci@00300000 {
+			num-ports = <1>;
+			status = "okay";
+		};
+	};
+};
diff --git a/arch/arm/configs/at91rm9200_defconfig b/arch/arm/configs/at91rm9200_defconfig
index 75502c4..d333250 100644
--- a/arch/arm/configs/at91rm9200_defconfig
+++ b/arch/arm/configs/at91rm9200_defconfig
@@ -17,7 +17,6 @@  CONFIG_MODULE_SRCVERSION_ALL=y
 # CONFIG_IOSCHED_CFQ is not set
 CONFIG_ARCH_AT91=y
 CONFIG_ARCH_AT91RM9200=y
-CONFIG_MACH_ONEARM=y
 CONFIG_MACH_AT91RM9200EK=y
 CONFIG_MACH_CSB337=y
 CONFIG_MACH_CSB637=y
diff --git a/arch/arm/mach-at91/Kconfig.non_dt b/arch/arm/mach-at91/Kconfig.non_dt
index ca900be..4dcf706 100644
--- a/arch/arm/mach-at91/Kconfig.non_dt
+++ b/arch/arm/mach-at91/Kconfig.non_dt
@@ -56,12 +56,6 @@  if ARCH_AT91RM9200
 
 comment "AT91RM9200 Board Type"
 
-config MACH_ONEARM
-	bool "Ajeco 1ARM Single Board Computer"
-	help
-	  Select this if you are using Ajeco's 1ARM Single Board Computer.
-	  <http://www.ajeco.fi/>
-
 config MACH_AT91RM9200EK
 	bool "Atmel AT91RM9200-EK Evaluation Kit"
 	select HAVE_AT91_DATAFLASH_CARD
diff --git a/arch/arm/mach-at91/Makefile b/arch/arm/mach-at91/Makefile
index 3b0a953..5c5534c 100644
--- a/arch/arm/mach-at91/Makefile
+++ b/arch/arm/mach-at91/Makefile
@@ -33,7 +33,6 @@  obj-$(CONFIG_ARCH_AT91SAM9G45)	+= at91sam9g45_devices.o
 obj-$(CONFIG_ARCH_AT91X40)	+= at91x40.o at91x40_time.o
 
 # AT91RM9200 board-specific support
-obj-$(CONFIG_MACH_ONEARM)	+= board-1arm.o
 obj-$(CONFIG_MACH_AT91RM9200EK)	+= board-rm9200ek.o
 obj-$(CONFIG_MACH_CSB337)	+= board-csb337.o
 obj-$(CONFIG_MACH_CSB637)	+= board-csb637.o
diff --git a/arch/arm/mach-at91/board-1arm.c b/arch/arm/mach-at91/board-1arm.c
deleted file mode 100644
index 35ab632..0000000
--- a/arch/arm/mach-at91/board-1arm.c
+++ /dev/null
@@ -1,99 +0,0 @@ 
-/*
- * linux/arch/arm/mach-at91/board-1arm.c
- *
- *  Copyright (C) 2005 SAN People
- *
- * 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.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
- */
-
-#include <linux/types.h>
-#include <linux/gpio.h>
-#include <linux/init.h>
-#include <linux/mm.h>
-#include <linux/module.h>
-#include <linux/platform_device.h>
-
-#include <mach/hardware.h>
-#include <asm/setup.h>
-#include <asm/mach-types.h>
-#include <asm/irq.h>
-
-#include <asm/mach/arch.h>
-#include <asm/mach/map.h>
-#include <asm/mach/irq.h>
-
-#include <mach/cpu.h>
-
-#include "at91_aic.h"
-#include "board.h"
-#include "generic.h"
-
-
-static void __init onearm_init_early(void)
-{
-	/* Set cpu type: PQFP */
-	at91rm9200_set_type(ARCH_REVISON_9200_PQFP);
-
-	/* Initialize processor: 18.432 MHz crystal */
-	at91_initialize(18432000);
-}
-
-static struct macb_platform_data __initdata onearm_eth_data = {
-	.phy_irq_pin	= AT91_PIN_PC4,
-	.is_rmii	= 1,
-};
-
-static struct at91_usbh_data __initdata onearm_usbh_data = {
-	.ports		= 1,
-	.vbus_pin	= {-EINVAL, -EINVAL},
-	.overcurrent_pin= {-EINVAL, -EINVAL},
-};
-
-static struct at91_udc_data __initdata onearm_udc_data = {
-	.vbus_pin	= AT91_PIN_PC2,
-	.pullup_pin	= AT91_PIN_PC3,
-};
-
-static void __init onearm_board_init(void)
-{
-	/* Serial */
-	/* DBGU on ttyS0. (Rx & Tx only) */
-	at91_register_uart(0, 0, 0);
-
-	/* USART0 on ttyS1 (Rx, Tx, CTS, RTS) */
-	at91_register_uart(AT91RM9200_ID_US0, 1, ATMEL_UART_CTS | ATMEL_UART_RTS);
-
-	/* USART1 on ttyS2 (Rx, Tx, CTS, RTS, DTR, DSR, DCD, RI) */
-	at91_register_uart(AT91RM9200_ID_US1, 2, ATMEL_UART_CTS | ATMEL_UART_RTS
-			   | ATMEL_UART_DTR | ATMEL_UART_DSR | ATMEL_UART_DCD
-			   | ATMEL_UART_RI);
-	at91_add_device_serial();
-	/* Ethernet */
-	at91_add_device_eth(&onearm_eth_data);
-	/* USB Host */
-	at91_add_device_usbh(&onearm_usbh_data);
-	/* USB Device */
-	at91_add_device_udc(&onearm_udc_data);
-}
-
-MACHINE_START(ONEARM, "Ajeco 1ARM single board computer")
-	/* Maintainer: Lennert Buytenhek <buytenh@wantstofly.org> */
-	.init_time	= at91rm9200_timer_init,
-	.map_io		= at91_map_io,
-	.handle_irq	= at91_aic_handle_irq,
-	.init_early	= onearm_init_early,
-	.init_irq	= at91_init_irq_default,
-	.init_machine	= onearm_board_init,
-MACHINE_END