aboutsummaryrefslogtreecommitdiffstats
path: root/Documentation/arm/Samsung
diff options
context:
space:
mode:
Diffstat (limited to 'Documentation/arm/Samsung')
-rw-r--r--Documentation/arm/Samsung/Bootloader-interface.txt68
-rw-r--r--Documentation/arm/Samsung/GPIO.txt40
-rw-r--r--Documentation/arm/Samsung/Overview.txt86
-rwxr-xr-xDocumentation/arm/Samsung/clksrc-change-registers.awk166
4 files changed, 0 insertions, 360 deletions
diff --git a/Documentation/arm/Samsung/Bootloader-interface.txt b/Documentation/arm/Samsung/Bootloader-interface.txt
deleted file mode 100644
index d17ed518a7ea..000000000000
--- a/Documentation/arm/Samsung/Bootloader-interface.txt
+++ /dev/null
@@ -1,68 +0,0 @@
- Interface between kernel and boot loaders on Exynos boards
- ==========================================================
-
-Author: Krzysztof Kozlowski
-Date : 6 June 2015
-
-The document tries to describe currently used interface between Linux kernel
-and boot loaders on Samsung Exynos based boards. This is not a definition
-of interface but rather a description of existing state, a reference
-for information purpose only.
-
-In the document "boot loader" means any of following: U-boot, proprietary
-SBOOT or any other firmware for ARMv7 and ARMv8 initializing the board before
-executing kernel.
-
-
-1. Non-Secure mode
-
-Address: sysram_ns_base_addr
-Offset Value Purpose
-=============================================================================
-0x08 exynos_cpu_resume_ns, mcpm_entry_point System suspend
-0x0c 0x00000bad (Magic cookie) System suspend
-0x1c exynos4_secondary_startup Secondary CPU boot
-0x1c + 4*cpu exynos4_secondary_startup (Exynos4412) Secondary CPU boot
-0x20 0xfcba0d10 (Magic cookie) AFTR
-0x24 exynos_cpu_resume_ns AFTR
-0x28 + 4*cpu 0x8 (Magic cookie, Exynos3250) AFTR
-0x28 0x0 or last value during resume (Exynos542x) System suspend
-
-
-2. Secure mode
-
-Address: sysram_base_addr
-Offset Value Purpose
-=============================================================================
-0x00 exynos4_secondary_startup Secondary CPU boot
-0x04 exynos4_secondary_startup (Exynos542x) Secondary CPU boot
-4*cpu exynos4_secondary_startup (Exynos4412) Secondary CPU boot
-0x20 exynos_cpu_resume (Exynos4210 r1.0) AFTR
-0x24 0xfcba0d10 (Magic cookie, Exynos4210 r1.0) AFTR
-
-Address: pmu_base_addr
-Offset Value Purpose
-=============================================================================
-0x0800 exynos_cpu_resume AFTR, suspend
-0x0800 mcpm_entry_point (Exynos542x with MCPM) AFTR, suspend
-0x0804 0xfcba0d10 (Magic cookie) AFTR
-0x0804 0x00000bad (Magic cookie) System suspend
-0x0814 exynos4_secondary_startup (Exynos4210 r1.1) Secondary CPU boot
-0x0818 0xfcba0d10 (Magic cookie, Exynos4210 r1.1) AFTR
-0x081C exynos_cpu_resume (Exynos4210 r1.1) AFTR
-
-
-3. Other (regardless of secure/non-secure mode)
-
-Address: pmu_base_addr
-Offset Value Purpose
-=============================================================================
-0x0908 Non-zero Secondary CPU boot up indicator
- on Exynos3250 and Exynos542x
-
-
-4. Glossary
-
-AFTR - ARM Off Top Running, a low power mode, Cortex cores and many other
-modules are power gated, except the TOP modules
-MCPM - Multi-Cluster Power Management
diff --git a/Documentation/arm/Samsung/GPIO.txt b/Documentation/arm/Samsung/GPIO.txt
deleted file mode 100644
index 795adfd88081..000000000000
--- a/Documentation/arm/Samsung/GPIO.txt
+++ /dev/null
@@ -1,40 +0,0 @@
- Samsung GPIO implementation
- ===========================
-
-Introduction
-------------
-
-This outlines the Samsung GPIO implementation and the architecture
-specific calls provided alongside the drivers/gpio core.
-
-
-S3C24XX (Legacy)
-----------------
-
-See Documentation/arm/Samsung-S3C24XX/GPIO.txt for more information
-about these devices. Their implementation has been brought into line
-with the core samsung implementation described in this document.
-
-
-GPIOLIB integration
--------------------
-
-The gpio implementation uses gpiolib as much as possible, only providing
-specific calls for the items that require Samsung specific handling, such
-as pin special-function or pull resistor control.
-
-GPIO numbering is synchronised between the Samsung and gpiolib system.
-
-
-PIN configuration
------------------
-
-Pin configuration is specific to the Samsung architecture, with each SoC
-registering the necessary information for the core gpio configuration
-implementation to configure pins as necessary.
-
-The s3c_gpio_cfgpin() and s3c_gpio_setpull() provide the means for a
-driver or machine to change gpio configuration.
-
-See arch/arm/plat-samsung/include/plat/gpio-cfg.h for more information
-on these functions.
diff --git a/Documentation/arm/Samsung/Overview.txt b/Documentation/arm/Samsung/Overview.txt
deleted file mode 100644
index 8f7309bad460..000000000000
--- a/Documentation/arm/Samsung/Overview.txt
+++ /dev/null
@@ -1,86 +0,0 @@
- Samsung ARM Linux Overview
- ==========================
-
-Introduction
-------------
-
- The Samsung range of ARM SoCs spans many similar devices, from the initial
- ARM9 through to the newest ARM cores. This document shows an overview of
- the current kernel support, how to use it and where to find the code
- that supports this.
-
- The currently supported SoCs are:
-
- - S3C24XX: See Documentation/arm/Samsung-S3C24XX/Overview.txt for full list
- - S3C64XX: S3C6400 and S3C6410
- - S5PC110 / S5PV210
-
-
-S3C24XX Systems
----------------
-
- There is still documentation in Documnetation/arm/Samsung-S3C24XX/ which
- deals with the architecture and drivers specific to these devices.
-
- See Documentation/arm/Samsung-S3C24XX/Overview.txt for more information
- on the implementation details and specific support.
-
-
-Configuration
--------------
-
- A number of configurations are supplied, as there is no current way of
- unifying all the SoCs into one kernel.
-
- s5pc110_defconfig - S5PC110 specific default configuration
- s5pv210_defconfig - S5PV210 specific default configuration
-
-
-Layout
-------
-
- The directory layout is currently being restructured, and consists of
- several platform directories and then the machine specific directories
- of the CPUs being built for.
-
- plat-samsung provides the base for all the implementations, and is the
- last in the line of include directories that are processed for the build
- specific information. It contains the base clock, GPIO and device definitions
- to get the system running.
-
- plat-s3c24xx is for s3c24xx specific builds, see the S3C24XX docs.
-
- plat-s5p is for s5p specific builds, and contains common support for the
- S5P specific systems. Not all S5Ps use all the features in this directory
- due to differences in the hardware.
-
-
-Layout changes
---------------
-
- The old plat-s3c and plat-s5pc1xx directories have been removed, with
- support moved to either plat-samsung or plat-s5p as necessary. These moves
- where to simplify the include and dependency issues involved with having
- so many different platform directories.
-
-
-Port Contributors
------------------
-
- Ben Dooks (BJD)
- Vincent Sanders
- Herbert Potzl
- Arnaud Patard (RTP)
- Roc Wu
- Klaus Fetscher
- Dimitry Andric
- Shannon Holland
- Guillaume Gourat (NexVision)
- Christer Weinigel (wingel) (Acer N30)
- Lucas Correia Villa Real (S3C2400 port)
-
-
-Document Author
----------------
-
-Copyright 2009-2010 Ben Dooks <ben-linux@fluff.org>
diff --git a/Documentation/arm/Samsung/clksrc-change-registers.awk b/Documentation/arm/Samsung/clksrc-change-registers.awk
deleted file mode 100755
index 7be1b8aa7cd9..000000000000
--- a/Documentation/arm/Samsung/clksrc-change-registers.awk
+++ /dev/null
@@ -1,166 +0,0 @@
-#!/usr/bin/awk -f
-#
-# Copyright 2010 Ben Dooks <ben-linux@fluff.org>
-#
-# Released under GPLv2
-
-# example usage
-# ./clksrc-change-registers.awk arch/arm/plat-s5pc1xx/include/plat/regs-clock.h < src > dst
-
-function extract_value(s)
-{
- eqat = index(s, "=")
- comat = index(s, ",")
- return substr(s, eqat+2, (comat-eqat)-2)
-}
-
-function remove_brackets(b)
-{
- return substr(b, 2, length(b)-2)
-}
-
-function splitdefine(l, p)
-{
- r = split(l, tp)
-
- p[0] = tp[2]
- p[1] = remove_brackets(tp[3])
-}
-
-function find_length(f)
-{
- if (0)
- printf "find_length " f "\n" > "/dev/stderr"
-
- if (f ~ /0x1/)
- return 1
- else if (f ~ /0x3/)
- return 2
- else if (f ~ /0x7/)
- return 3
- else if (f ~ /0xf/)
- return 4
-
- printf "unknown length " f "\n" > "/dev/stderr"
- exit
-}
-
-function find_shift(s)
-{
- id = index(s, "<")
- if (id <= 0) {
- printf "cannot find shift " s "\n" > "/dev/stderr"
- exit
- }
-
- return substr(s, id+2)
-}
-
-
-BEGIN {
- if (ARGC < 2) {
- print "too few arguments" > "/dev/stderr"
- exit
- }
-
-# read the header file and find the mask values that we will need
-# to replace and create an associative array of values
-
- while (getline line < ARGV[1] > 0) {
- if (line ~ /\#define.*_MASK/ &&
- !(line ~ /USB_SIG_MASK/)) {
- splitdefine(line, fields)
- name = fields[0]
- if (0)
- printf "MASK " line "\n" > "/dev/stderr"
- dmask[name,0] = find_length(fields[1])
- dmask[name,1] = find_shift(fields[1])
- if (0)
- printf "=> '" name "' LENGTH=" dmask[name,0] " SHIFT=" dmask[name,1] "\n" > "/dev/stderr"
- } else {
- }
- }
-
- delete ARGV[1]
-}
-
-/clksrc_clk.*=.*{/ {
- shift=""
- mask=""
- divshift=""
- reg_div=""
- reg_src=""
- indent=1
-
- print $0
-
- for(; indent >= 1;) {
- if ((getline line) <= 0) {
- printf "unexpected end of file" > "/dev/stderr"
- exit 1;
- }
-
- if (line ~ /\.shift/) {
- shift = extract_value(line)
- } else if (line ~ /\.mask/) {
- mask = extract_value(line)
- } else if (line ~ /\.reg_divider/) {
- reg_div = extract_value(line)
- } else if (line ~ /\.reg_source/) {
- reg_src = extract_value(line)
- } else if (line ~ /\.divider_shift/) {
- divshift = extract_value(line)
- } else if (line ~ /{/) {
- indent++
- print line
- } else if (line ~ /}/) {
- indent--
-
- if (indent == 0) {
- if (0) {
- printf "shift '" shift "' ='" dmask[shift,0] "'\n" > "/dev/stderr"
- printf "mask '" mask "'\n" > "/dev/stderr"
- printf "dshft '" divshift "'\n" > "/dev/stderr"
- printf "rdiv '" reg_div "'\n" > "/dev/stderr"
- printf "rsrc '" reg_src "'\n" > "/dev/stderr"
- }
-
- generated = mask
- sub(reg_src, reg_div, generated)
-
- if (0) {
- printf "/* rsrc " reg_src " */\n"
- printf "/* rdiv " reg_div " */\n"
- printf "/* shift " shift " */\n"
- printf "/* mask " mask " */\n"
- printf "/* generated " generated " */\n"
- }
-
- if (reg_div != "") {
- printf "\t.reg_div = { "
- printf ".reg = " reg_div ", "
- printf ".shift = " dmask[generated,1] ", "
- printf ".size = " dmask[generated,0] ", "
- printf "},\n"
- }
-
- printf "\t.reg_src = { "
- printf ".reg = " reg_src ", "
- printf ".shift = " dmask[mask,1] ", "
- printf ".size = " dmask[mask,0] ", "
-
- printf "},\n"
-
- }
-
- print line
- } else {
- print line
- }
-
- if (0)
- printf indent ":" line "\n" > "/dev/stderr"
- }
-}
-
-// && ! /clksrc_clk.*=.*{/ { print $0 }