[PATCH 11/11] ARM: at91: switch Calao QIL-A9260 board to DT
Nicolas Ferre
nicolas.ferre at atmel.com
Fri Dec 13 06:08:23 EST 2013
On 15/11/2013 15:50, Jean-Christophe PLAGNIOL-VILLARD :
> Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj at jcrosoft.com>
> Cc: Nicolas Ferre <nicolas.ferre at atmel.com>
I corrected several errors: for other patches please check that the same
errors are not applying:
- typo in file header: s/Caloa/Calao/
- DT nodes in address ascending order
- incomplete command line:
1/ no "mem" parameter, please
2/ ubi rootfs specification parameters not complete
- node addresses for MTD partitions not aligned with node name
(I mean, part after the @)
I will not do the same for other patches. So if you identify such
errors, please correct them...
Bye,
> ---
> arch/arm/boot/dts/Makefile | 1 +
> arch/arm/boot/dts/at91-qil_a9260.dts | 185 +++++++++++++++++++
> arch/arm/configs/at91sam9260_9g20_defconfig | 1 -
> arch/arm/mach-at91/Kconfig.non_dt | 6 -
> arch/arm/mach-at91/Makefile | 1 -
> arch/arm/mach-at91/board-qil-a9260.c | 266 ----------------------------
> 6 files changed, 186 insertions(+), 274 deletions(-)
> create mode 100644 arch/arm/boot/dts/at91-qil_a9260.dts
> delete mode 100644 arch/arm/mach-at91/board-qil-a9260.c
>
> diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile
> index d042c68..1de1ba2 100644
> --- a/arch/arm/boot/dts/Makefile
> +++ b/arch/arm/boot/dts/Makefile
> @@ -15,6 +15,7 @@ dtb-$(CONFIG_ARCH_AT91) += at91-rsi-ews.dtb
> dtb-$(CONFIG_ARCH_AT91) += mpa1600.dtb
> # sam9260
> dtb-$(CONFIG_ARCH_AT91) += animeo_ip.dtb
> +dtb-$(CONFIG_ARCH_AT91) += at91-qil_a9260.dtb
> dtb-$(CONFIG_ARCH_AT91) += aks-cdu.dtb
> dtb-$(CONFIG_ARCH_AT91) += ethernut5.dtb
> dtb-$(CONFIG_ARCH_AT91) += evk-pro3.dtb
> diff --git a/arch/arm/boot/dts/at91-qil_a9260.dts b/arch/arm/boot/dts/at91-qil_a9260.dts
> new file mode 100644
> index 0000000..d3d52dd
> --- /dev/null
> +++ b/arch/arm/boot/dts/at91-qil_a9260.dts
> @@ -0,0 +1,185 @@
> +/*
> + * at91-qil_a9260.dts - Device Tree file for Caloa QIL A9260 board
> + *
> + * Copyright (C) 2011-2013 Jean-Christophe PLAGNIOL-VILLARD <plagnioj at jcrosoft.com>
> + *
> + * Licensed under GPLv2.
> + */
> +/dts-v1/;
> +#include "at91sam9260.dtsi"
> +/ {
> + model = "Calao QIL A9260";
> + compatible = "calao,qil-a9260", "atmel,at91sam9260", "atmel,at91sam9";
> +
> + chosen {
> + bootargs = "mem=64M console=ttyS0,115200 root=/dev/mtdblock5 rw rootfstype=ubifs";
> + };
> +
> + memory {
> + reg = <0x20000000 0x4000000>;
> + };
> +
> + clocks {
> + #address-cells = <1>;
> + #size-cells = <1>;
> + ranges;
> +
> + main_clock: clock at 0 {
> + compatible = "atmel,osc", "fixed-clock";
> + clock-frequency = <12000000>;
> + };
> + };
> +
> + ahb {
> + apb {
> + shdwc at fffffd10 {
> + atmel,wakeup-counter = <10>;
> + atmel,wakeup-rtt-timer;
> + };
> +
> + dbgu: serial at fffff200 {
> + status = "okay";
> + };
> +
> + usart0: serial at fffb0000 {
> + pinctrl-0 =
> + <&pinctrl_usart0
> + &pinctrl_usart0_rts
> + &pinctrl_usart0_cts
> + &pinctrl_usart0_dtr_dsr
> + &pinctrl_usart0_dcd
> + &pinctrl_usart0_ri>;
> + status = "okay";
> + };
> +
> + usart1: serial at fffb4000 {
> + pinctrl-0 =
> + <&pinctrl_usart1
> + &pinctrl_usart1_rts
> + &pinctrl_usart1_cts>;
> + status = "okay";
> + };
> +
> + usart2: serial at fffb8000 {
> + pinctrl-0 =
> + <&pinctrl_usart2
> + &pinctrl_usart2_rts
> + &pinctrl_usart2_cts>;
> + status = "okay";
> + };
> +
> + macb0: ethernet at fffc4000 {
> + phy-mode = "rmii";
> + status = "okay";
> + };
> +
> + usb1: gadget at fffa4000 {
> + atmel,vbus-gpio = <&pioC 5 GPIO_ACTIVE_HIGH>;
> + status = "okay";
> + };
> +
> + spi0: spi at fffc8000 {
> + status = "okay";
> + cs-gpios = <&pioA 3 GPIO_ACTIVE_HIGH>;
> +
> + m41t94 at 0 {
> + compatible = "st,m41t94";
> + reg = <0>;
> + spi-max-frequency = <1000000>;
> + };
> +
> + };
> +
> + mmc0: mmc at fffa8000 {
> + pinctrl-0 = <
> + &pinctrl_mmc0_clk
> + &pinctrl_mmc0_slot0_cmd_dat0
> + &pinctrl_mmc0_slot0_dat1_3>;
> + status = "okay";
> + slot at 0 {
> + reg = <0>;
> + bus-width = <4>;
> + };
> + };
> + };
> +
> + nand0: nand at 40000000 {
> + nand-bus-width = <8>;
> + nand-ecc-mode = "soft";
> + nand-on-flash-bbt;
> + status = "okay";
> +
> + at91bootstrap at 0 {
> + label = "at91bootstrap";
> + reg = <0x0 0x20000>;
> + };
> +
> + barebox at 20000 {
> + label = "barebox";
> + reg = <0x20000 0x40000>;
> + };
> +
> + bareboxenv at 60000 {
> + label = "bareboxenv";
> + reg = <0x60000 0x20000>;
> + };
> +
> + bareboxenv2 at 80000 {
> + label = "bareboxenv2";
> + reg = <0x80000 0x20000>;
> + };
> +
> + oftree at 80000 {
> + label = "oftree";
> + reg = <0xa0000 0x20000>;
> + };
> +
> + kernel at a0000 {
> + label = "kernel";
> + reg = <0xc0000 0x400000>;
> + };
> +
> + rootfs at 4a0000 {
> + label = "rootfs";
> + reg = <0x4c0000 0x7800000>;
> + };
> +
> + data at 7ca0000 {
> + label = "data";
> + reg = <0x7cc0000 0x8340000>;
> + };
> + };
> +
> + usb0: ohci at 00500000 {
> + num-ports = <2>;
> + status = "okay";
> + };
> + };
> +
> + leds {
> + compatible = "gpio-leds";
> +
> + user_led {
> + label = "user_led";
> + gpios = <&pioB 21 GPIO_ACTIVE_HIGH>;
> + linux,default-trigger = "heartbeat";
> + };
> + };
> +
> + gpio_keys {
> + compatible = "gpio-keys";
> + #address-cells = <1>;
> + #size-cells = <0>;
> +
> + user_pb {
> + label = "user_pb";
> + gpios = <&pioB 10 GPIO_ACTIVE_LOW>;
> + linux,code = <28>;
> + gpio-key,wakeup;
> + };
> + };
> +
> + i2c at 0 {
> + status = "okay";
> + };
> +};
> diff --git a/arch/arm/configs/at91sam9260_9g20_defconfig b/arch/arm/configs/at91sam9260_9g20_defconfig
> index ab66867..64700c31 100644
> --- a/arch/arm/configs/at91sam9260_9g20_defconfig
> +++ b/arch/arm/configs/at91sam9260_9g20_defconfig
> @@ -15,7 +15,6 @@ CONFIG_MACH_AT91SAM9260EK=y
> CONFIG_MACH_CAM60=y
> CONFIG_MACH_SAM9_L9260=y
> CONFIG_MACH_AFEB9260=y
> -CONFIG_MACH_QIL_A9260=y
> CONFIG_MACH_CPU9260=y
> CONFIG_MACH_AT91SAM9G20EK=y
> CONFIG_MACH_AT91SAM9G20EK_2MMC=y
> diff --git a/arch/arm/mach-at91/Kconfig.non_dt b/arch/arm/mach-at91/Kconfig.non_dt
> index c193a13..d16075a 100644
> --- a/arch/arm/mach-at91/Kconfig.non_dt
> +++ b/arch/arm/mach-at91/Kconfig.non_dt
> @@ -128,12 +128,6 @@ config MACH_AFEB9260
> <svn://194.85.238.22/home/users/george/svn/arm9eb>
> <http://groups.google.com/group/arm9fpga-evolution-board>
>
> -config MACH_QIL_A9260
> - bool "CALAO QIL-A9260 board"
> - help
> - Select this if you are using a Calao Systems QIL-A9260 Board.
> - <http://www.calao-systems.com>
> -
> config MACH_CPU9260
> bool "Eukrea CPU9260 board"
> help
> diff --git a/arch/arm/mach-at91/Makefile b/arch/arm/mach-at91/Makefile
> index 8eda4b0..fb9ecd4 100644
> --- a/arch/arm/mach-at91/Makefile
> +++ b/arch/arm/mach-at91/Makefile
> @@ -44,7 +44,6 @@ obj-$(CONFIG_MACH_ECO920) += board-eco920.o
> obj-$(CONFIG_MACH_AT91SAM9260EK) += board-sam9260ek.o
> obj-$(CONFIG_MACH_CAM60) += board-cam60.o
> obj-$(CONFIG_MACH_SAM9_L9260) += board-sam9-l9260.o
> -obj-$(CONFIG_MACH_QIL_A9260) += board-qil-a9260.o
> obj-$(CONFIG_MACH_AFEB9260) += board-afeb-9260v1.o
> obj-$(CONFIG_MACH_CPU9260) += board-cpu9krea.o
>
> diff --git a/arch/arm/mach-at91/board-qil-a9260.c b/arch/arm/mach-at91/board-qil-a9260.c
> deleted file mode 100644
> index aa3bc9b..0000000
> --- a/arch/arm/mach-at91/board-qil-a9260.c
> +++ /dev/null
> @@ -1,266 +0,0 @@
> -/*
> - * linux/arch/arm/mach-at91/board-qil-a9260.c
> - *
> - * Copyright (C) 2005 SAN People
> - * Copyright (C) 2006 Atmel
> - * Copyright (C) 2007 Calao-systems
> - *
> - * 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 <linux/spi/spi.h>
> -#include <linux/gpio_keys.h>
> -#include <linux/input.h>
> -#include <linux/clk.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/hardware.h>
> -#include <mach/at91sam9_smc.h>
> -
> -#include "at91_aic.h"
> -#include "at91_shdwc.h"
> -#include "board.h"
> -#include "sam9_smc.h"
> -#include "generic.h"
> -
> -
> -static void __init ek_init_early(void)
> -{
> - /* Initialize processor: 12.000 MHz crystal */
> - at91_initialize(12000000);
> -}
> -
> -/*
> - * USB Host port
> - */
> -static struct at91_usbh_data __initdata ek_usbh_data = {
> - .ports = 2,
> - .vbus_pin = {-EINVAL, -EINVAL},
> - .overcurrent_pin= {-EINVAL, -EINVAL},
> -};
> -
> -/*
> - * USB Device port
> - */
> -static struct at91_udc_data __initdata ek_udc_data = {
> - .vbus_pin = AT91_PIN_PC5,
> - .pullup_pin = -EINVAL, /* pull-up driven by UDC */
> -};
> -
> -/*
> - * SPI devices.
> - */
> -static struct spi_board_info ek_spi_devices[] = {
> -#if defined(CONFIG_RTC_DRV_M41T94)
> - { /* M41T94 RTC */
> - .modalias = "m41t94",
> - .chip_select = 0,
> - .max_speed_hz = 1 * 1000 * 1000,
> - .bus_num = 0,
> - }
> -#endif
> -};
> -
> -/*
> - * MACB Ethernet device
> - */
> -static struct macb_platform_data __initdata ek_macb_data = {
> - .phy_irq_pin = AT91_PIN_PA31,
> - .is_rmii = 1,
> -};
> -
> -/*
> - * NAND flash
> - */
> -static struct mtd_partition __initdata ek_nand_partition[] = {
> - {
> - .name = "Uboot & Kernel",
> - .offset = 0,
> - .size = SZ_16M,
> - },
> - {
> - .name = "Root FS",
> - .offset = MTDPART_OFS_NXTBLK,
> - .size = 120 * SZ_1M,
> - },
> - {
> - .name = "FS",
> - .offset = MTDPART_OFS_NXTBLK,
> - .size = 120 * SZ_1M,
> - },
> -};
> -
> -static struct atmel_nand_data __initdata ek_nand_data = {
> - .ale = 21,
> - .cle = 22,
> - .det_pin = -EINVAL,
> - .rdy_pin = AT91_PIN_PC13,
> - .enable_pin = AT91_PIN_PC14,
> - .ecc_mode = NAND_ECC_SOFT,
> - .on_flash_bbt = 1,
> - .parts = ek_nand_partition,
> - .num_parts = ARRAY_SIZE(ek_nand_partition),
> -};
> -
> -static struct sam9_smc_config __initdata ek_nand_smc_config = {
> - .ncs_read_setup = 0,
> - .nrd_setup = 1,
> - .ncs_write_setup = 0,
> - .nwe_setup = 1,
> -
> - .ncs_read_pulse = 3,
> - .nrd_pulse = 3,
> - .ncs_write_pulse = 3,
> - .nwe_pulse = 3,
> -
> - .read_cycle = 5,
> - .write_cycle = 5,
> -
> - .mode = AT91_SMC_READMODE | AT91_SMC_WRITEMODE | AT91_SMC_EXNWMODE_DISABLE | AT91_SMC_DBW_8,
> - .tdf_cycles = 2,
> -};
> -
> -static void __init ek_add_device_nand(void)
> -{
> - /* configure chip-select 3 (NAND) */
> - sam9_smc_configure(0, 3, &ek_nand_smc_config);
> -
> - at91_add_device_nand(&ek_nand_data);
> -}
> -
> -/*
> - * MCI (SD/MMC)
> - */
> -static struct mci_platform_data __initdata ek_mci0_data = {
> - .slot[0] = {
> - .bus_width = 4,
> - .detect_pin = -EINVAL,
> - .wp_pin = -EINVAL,
> - },
> -};
> -
> -/*
> - * GPIO Buttons
> - */
> -#if defined(CONFIG_KEYBOARD_GPIO) || defined(CONFIG_KEYBOARD_GPIO_MODULE)
> -static struct gpio_keys_button ek_buttons[] = {
> - { /* USER PUSH BUTTON */
> - .code = KEY_ENTER,
> - .gpio = AT91_PIN_PB10,
> - .active_low = 1,
> - .desc = "user_pb",
> - .wakeup = 1,
> - }
> -};
> -
> -static struct gpio_keys_platform_data ek_button_data = {
> - .buttons = ek_buttons,
> - .nbuttons = ARRAY_SIZE(ek_buttons),
> -};
> -
> -static struct platform_device ek_button_device = {
> - .name = "gpio-keys",
> - .id = -1,
> - .num_resources = 0,
> - .dev = {
> - .platform_data = &ek_button_data,
> - }
> -};
> -
> -static void __init ek_add_device_buttons(void)
> -{
> - at91_set_GPIO_periph(AT91_PIN_PB10, 1); /* user push button, pull up enabled */
> - at91_set_deglitch(AT91_PIN_PB10, 1);
> -
> - platform_device_register(&ek_button_device);
> -}
> -#else
> -static void __init ek_add_device_buttons(void) {}
> -#endif
> -
> -/*
> - * LEDs
> - */
> -static struct gpio_led ek_leds[] = {
> - { /* user_led (green) */
> - .name = "user_led",
> - .gpio = AT91_PIN_PB21,
> - .active_low = 0,
> - .default_trigger = "heartbeat",
> - }
> -};
> -
> -static void __init ek_board_init(void)
> -{
> - /* Serial */
> - /* DBGU on ttyS0. (Rx & Tx only) */
> - at91_register_uart(0, 0, 0);
> -
> - /* USART0 on ttyS1. (Rx, Tx, CTS, RTS, DTR, DSR, DCD, RI) */
> - at91_register_uart(AT91SAM9260_ID_US0, 1, ATMEL_UART_CTS | ATMEL_UART_RTS
> - | ATMEL_UART_DTR | ATMEL_UART_DSR | ATMEL_UART_DCD
> - | ATMEL_UART_RI);
> -
> - /* USART1 on ttyS2. (Rx, Tx, CTS, RTS) */
> - at91_register_uart(AT91SAM9260_ID_US1, 2, ATMEL_UART_CTS | ATMEL_UART_RTS);
> -
> - /* USART2 on ttyS3. (Rx, Tx, CTS, RTS) */
> - at91_register_uart(AT91SAM9260_ID_US2, 3, ATMEL_UART_CTS | ATMEL_UART_RTS);
> - at91_add_device_serial();
> - /* USB Host */
> - at91_add_device_usbh(&ek_usbh_data);
> - /* USB Device */
> - at91_add_device_udc(&ek_udc_data);
> - /* SPI */
> - at91_add_device_spi(ek_spi_devices, ARRAY_SIZE(ek_spi_devices));
> - /* NAND */
> - ek_add_device_nand();
> - /* I2C */
> - at91_add_device_i2c(NULL, 0);
> - /* Ethernet */
> - at91_add_device_eth(&ek_macb_data);
> - /* MMC */
> - at91_add_device_mci(0, &ek_mci0_data);
> - /* Push Buttons */
> - ek_add_device_buttons();
> - /* LEDs */
> - at91_gpio_leds(ek_leds, ARRAY_SIZE(ek_leds));
> - /* shutdown controller, wakeup button (5 msec low) */
> - at91_shdwc_write(AT91_SHDW_MR, AT91_SHDW_CPTWK0_(10) | AT91_SHDW_WKMODE0_LOW
> - | AT91_SHDW_RTTWKEN);
> -}
> -
> -MACHINE_START(QIL_A9260, "CALAO QIL_A9260")
> - /* Maintainer: calao-systems */
> - .init_time = at91sam926x_pit_init,
> - .map_io = at91_map_io,
> - .handle_irq = at91_aic_handle_irq,
> - .init_early = ek_init_early,
> - .init_irq = at91_init_irq_default,
> - .init_machine = ek_board_init,
> -MACHINE_END
>
--
Nicolas Ferre
More information about the linux-arm-kernel
mailing list