Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit ea7531ac authored by Linus Torvalds's avatar Linus Torvalds
Browse files
Pull ARM SoC cleanups from Olof Johansson:
 "This is a good healthy set of various code removals.  Total net delta
  is 8100 lines removed.

  Among the larger cleanups are:

   - Removal of old Samsung S3C DMA infrastructure by Arnd
   - Removal of the non-DT version of the 'lager' board by Magnus Damm
   - General stale code removal on OMAP and Davinci by Rickard Strandqvist
   - Removal of non-DT support on am3517 platforms by Tony Lindgren

  ... plus several other cleanups of various platforms across the board"

* tag 'cleanup-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (47 commits)
  ARM: sirf: drop redundant function and marco declaration
  arm: omap: specify PMUs are for ARMv7 CPUs
  arm: shmobile: specify PMUs are for ARMv7 CPUs
  arm: iop: specify PMUs are for XScale CPUs
  arm: pxa: specify PMUs are for XScale CPUs
  arm: realview: specify PMU types
  ARM: SAMSUNG: remove unused DMA infrastructure
  ARM: OMAP3: Add back Kconfig option MACH_OMAP3517EVM for ASoC
  ARM: davinci: Remove CDCE949 driver
  ARM: at91: remove useless at91rm9200_set_type()
  ARM: at91: remove useless at91rm9200_dt_initialize()
  ARM: at91: move debug-macro.S into the common space
  ARM: at91: remove useless at91_sysirq_mask_rtx
  ARM: at91: remove useless config MACH_AT91SAM9_DT
  ARM: at91: remove useless config MACH_AT91RM9200_DT
  ARM: at91: remove unused mach/memory.h
  ARM: at91: remove useless header file includes
  ARM: at91: remove unneeded header file
  rtc: at91/Kconfig: remove useless options
  ARM: at91/Documentation: add a README for Atmel SoCs
  ...
parents 4025fa97 41e229a9
Loading
Loading
Loading
Loading
+124 −0
Original line number Diff line number Diff line
ARM Atmel SoCs (aka AT91)
=========================


Introduction
------------
This document gives useful information about the ARM Atmel SoCs that are
currently supported in Linux Mainline (you know, the one on kernel.org).

It is important to note that the Atmel | SMART ARM-based MPU product line is
historically named "AT91" or "at91" throughout the Linux kernel development
process even if this product prefix has completely disappeared from the
official Atmel product name. Anyway, files, directories, git trees,
git branches/tags and email subject always contain this "at91" sub-string.


AT91 SoCs
---------
Documentation and detailled datasheet for each product are available on
the Atmel website: http://www.atmel.com.

  Flavors:
    * ARM 920 based SoC
      - at91rm9200
        + Datasheet
          http://www.atmel.com/Images/doc1768.pdf

    * ARM 926 based SoCs
      - at91sam9260
        + Datasheet
          http://www.atmel.com/Images/doc6221.pdf

      - at91sam9xe
        + Datasheet
          http://www.atmel.com/Images/Atmel-6254-32-bit-ARM926EJ-S-Embedded-Microprocessor-SAM9XE_Datasheet.pdf

      - at91sam9261
        + Datasheet
          http://www.atmel.com/Images/doc6062.pdf

      - at91sam9263
        + Datasheet
          http://www.atmel.com/Images/Atmel_6249_32-bit-ARM926EJ-S-Microcontroller_SAM9263_Datasheet.pdf

      - at91sam9rl
        + Datasheet
          http://www.atmel.com/Images/doc6289.pdf

      - at91sam9g20
        + Datasheet
          http://www.atmel.com/Images/doc6384.pdf

      - at91sam9g45 family
        - at91sam9g45
        - at91sam9g46
        - at91sam9m10
        - at91sam9m11 (device superset)
        + Datasheet
          http://www.atmel.com/Images/Atmel-6437-32-bit-ARM926-Embedded-Microprocessor-SAM9M11_Datasheet.pdf

      - at91sam9x5 family (aka "The 5 series")
        - at91sam9g15
        - at91sam9g25
        - at91sam9g35
        - at91sam9x25
        - at91sam9x35
        + Datasheet (can be considered as covering the whole family)
          http://www.atmel.com/Images/Atmel_11055_32-bit-ARM926EJ-S-Microcontroller_SAM9X35_Datasheet.pdf

      - at91sam9n12
        + Datasheet
          http://www.atmel.com/Images/Atmel_11063_32-bit-ARM926EJ-S-Microcontroller_SAM9N12CN11CN12_Datasheet.pdf

    * ARM Cortex-A5 based SoCs
      - sama5d3 family
        - sama5d31
        - sama5d33
        - sama5d34
        - sama5d35
        - sama5d36 (device superset)
        + Datasheet
          http://www.atmel.com/Images/Atmel-11121-32-bit-Cortex-A5-Microcontroller-SAMA5D3_Datasheet.pdf

    * ARM Cortex-A5 + NEON based SoCs
      - sama5d4 family
        - sama5d41
        - sama5d42
        - sama5d43
        - sama5d44 (device superset)
        + Datasheet
          http://www.atmel.com/Images/Atmel-11238-32-bit-Cortex-A5-Microcontroller-SAMA5D4_Datasheet.pdf


Linux kernel information
------------------------
Linux kernel mach directory: arch/arm/mach-at91
MAINTAINERS entry is: "ARM/ATMEL AT91RM9200 AND AT91SAM ARM ARCHITECTURES"


Device Tree for AT91 SoCs and boards
------------------------------------
All AT91 SoCs are converted to Device Tree. Since Linux 3.19, these products
must use this method to boot the Linux kernel.

Work In Progress statement:
Device Tree files and Device Tree bindings that apply to AT91 SoCs and boards are
considered as "Unstable". To be completely clear, any at91 binding can change at
any time. So, be sure to use a Device Tree Binary and a Kernel Image generated from
the same source tree.
Please refer to the Documentation/devicetree/bindings/ABI.txt file for a
definition of a "Stable" binding/ABI.
This statement will be removed by AT91 MAINTAINERS when appropriate.

Naming conventions and best practice:
- SoCs Device Tree Source Include files are named after the official name of
  the product (at91sam9g20.dtsi or sama5d33.dtsi for instance).
- Device Tree Source Include files (.dtsi) are used to collect common nodes that can be
  shared across SoCs or boards (sama5d3.dtsi or at91sam9x5cm.dtsi for instance).
  When collecting nodes for a particular peripheral or topic, the identifier have to
  be placed at the end of the file name, separated with a "_" (at91sam9x5_can.dtsi
  or sama5d3_gmac.dtsi for example).
- board Device Tree Source files (.dts) are prefixed by the string "at91-" so
  that they can be identified easily. Note that some files are historical exceptions
  to this rule (sama5d3[13456]ek.dts, usb_a9g20.dts or animeo_ip.dts for example).
+0 −46
Original line number Diff line number Diff line
			S3C2410 DMA
			===========

Introduction
------------

   The kernel provides an interface to manage DMA transfers
   using the DMA channels in the CPU, so that the central
   duty of managing channel mappings, and programming the
   channel generators is in one place.


DMA Channel Ordering
--------------------

   Many of the range do not have connections for the DMA
   channels to all sources, which means that some devices
   have a restricted number of channels that can be used.

   To allow flexibility for each CPU type and board, the
   DMA code can be given a DMA ordering structure which
   allows the order of channel search to be specified, as
   well as allowing the prohibition of certain claims.

   struct s3c24xx_dma_order has a list of channels, and
   each channel within has a slot for a list of DMA
   channel numbers. The slots are searched in order for
   the presence of a DMA channel number with DMA_CH_VALID
   or-ed in.

   If the order has the flag DMA_CH_NEVER set, then after
   checking the channel list, the system will return no
   found channel, thus denying the request.

   A board support file can call s3c24xx_dma_order_set()
   to register a complete ordering set. The routine will
   copy the data, so the original can be discarded with
   __initdata.


Authour
-------

Ben Dooks,
Copyright (c) 2007 Ben Dooks, Simtec Electronics
Licensed under the GPL v2
+1 −1
Original line number Diff line number Diff line
@@ -895,6 +895,7 @@ F: arch/arm/boot/dts/at91*.dts
F:	arch/arm/boot/dts/at91*.dtsi
F:	arch/arm/boot/dts/sama*.dts
F:	arch/arm/boot/dts/sama*.dtsi
F:	arch/arm/include/debug/at91.S

ARM/ATMEL AT91 Clock Support
M:	Boris Brezillon <boris.brezillon@free-electrons.com>
@@ -1414,7 +1415,6 @@ F: arch/arm/configs/ape6evm_defconfig
F:	arch/arm/configs/armadillo800eva_defconfig
F:	arch/arm/configs/bockw_defconfig
F:	arch/arm/configs/kzm9g_defconfig
F:	arch/arm/configs/lager_defconfig
F:	arch/arm/configs/mackerel_defconfig
F:	arch/arm/configs/marzen_defconfig
F:	arch/arm/configs/shmobile_defconfig
+7 −2
Original line number Diff line number Diff line
@@ -115,15 +115,18 @@ choice
		    0x80024000      | 0xf0024000     | UART9

	config AT91_DEBUG_LL_DBGU0
		bool "Kernel low-level debugging on rm9200, 9260/9g20, 9261/9g10 and 9rl"
		bool "Kernel low-level debugging on rm9200, 9260/9g20, 9261/9g10, 9rl, 9x5, 9n12"
		select DEBUG_AT91_UART
		depends on HAVE_AT91_DBGU0

	config AT91_DEBUG_LL_DBGU1
		bool "Kernel low-level debugging on 9263 and 9g45"
		bool "Kernel low-level debugging on 9263, 9g45 and sama5d3"
		select DEBUG_AT91_UART
		depends on HAVE_AT91_DBGU1

	config AT91_DEBUG_LL_DBGU2
		bool "Kernel low-level debugging on sama5d4"
		select DEBUG_AT91_UART
		depends on HAVE_AT91_DBGU2

	config DEBUG_BCM2835
@@ -1218,6 +1221,8 @@ config DEBUG_LL_INCLUDE
	string
	default "debug/sa1100.S" if DEBUG_SA1100
	default "debug/8250.S" if DEBUG_LL_UART_8250 || DEBUG_UART_8250
	default "debug/at91.S" if AT91_DEBUG_LL_DBGU0 || AT91_DEBUG_LL_DBGU1 || \
				AT91_DEBUG_LL_DBGU2
	default "debug/asm9260.S" if DEBUG_ASM9260_UART
	default "debug/clps711x.S" if DEBUG_CLPS711X_UART1 || DEBUG_CLPS711X_UART2
	default "debug/meson.S" if DEBUG_MESON_UARTAO
+0 −1
Original line number Diff line number Diff line
@@ -410,7 +410,6 @@ dtb-$(CONFIG_ARCH_SHMOBILE_LEGACY) += \
	r8a7778-bockw.dtb \
	r8a7778-bockw-reference.dtb \
	r8a7779-marzen.dtb \
	r8a7790-lager.dtb \
	sh7372-mackerel.dtb \
	sh73a0-kzm9g.dtb \
	sh73a0-kzm9g-reference.dtb
Loading