android_kernel_xiaomi_sm8350/arch/arm/mach-omap2
Paul Walmsley 63c8523841 OMAP2/3/4: create omap_hwmod layer
OMAP SoCs can be considered a collection of hardware IP blocks
connected by various interconnects.  The bus topology and device
integration data is somewhat more complex than platform_device can
encode.  This patch creates code and structures to manage information
about OMAP on-chip devices ("hardware modules") and their integration
to the rest of the chip.  Hardware module data is intended to be
generated dynamically from the TI hardware database for the OMAP4
chips and beyond, easing Linux support for new chip variants.

This code currently:

- resets and configures all hardware modules upon startup, reducing bootloader
  dependencies;

- provides hooks for Linux driver model code to enable, idle, and shutdown
  hardware modules (forthcoming patch);

- waits for hardware modules to leave idle once their clocks
  are enabled and OCP_SYSCONFIG bits are set appropriately.

- provides a means to pass arbitrary IP block configuration data (e.g.,
  FIFO size) to the device driver (via the dev_attr void pointer)

In the future this code is intended to:

- estimate interconnect bandwidth and latency characteristics to
  ensure constraints are satisfied during DVFS

- provide *GRPSEL bit data to the powerdomain code

- handle pin/ball muxing for devices

- generate IO mapping information dynamically

- supply device firewall configuration data

- provide hardware module data to other on-chip coprocessor software

- allow the removal of the "disable unused clocks" code in the OMAP2/3
  clock code

This patch represents a collaborative effort involving many people from TI,
Nokia, and the Linux-OMAP community.

Signed-off-by: Paul Walmsley <paul@pwsan.com>
Cc: Benoit Cousson <b-cousson@ti.com>
Cc: Kevin Hilman <khilman@deeprootsystems.com>
Cc: Tony Lindgren <tony@atomide.com>
Cc: Rajendra Nayak <rnayak@ti.com>
Cc: Vikram Pandita <vikram.pandita@ti.com>
Cc: Sakari Poussa <sakari.poussa@nokia.com>
Cc: Anand Sawant <sawant@ti.com>
Cc: Santosh Shilimkar <santosh.shilimkar@ti.com>
Cc: Eric Thomas <ethomas@ti.com>
Cc: Richard Woodruff <r-woodruff2@ti.com>
2009-09-03 20:14:03 +03:00
..
board-2430sdp.c OMAP2/3 board-*.c files: read bootloader configuration earlier 2009-09-03 20:14:02 +03:00
board-3430sdp.c OMAP2/3 board-*.c files: read bootloader configuration earlier 2009-09-03 20:14:02 +03:00
board-4430sdp.c OMAP: UART: drop OMAP_TAG_UART, enable all UARTs, auto-disabled on idle 2009-08-28 10:51:31 -07:00
board-apollon.c OMAP2/3 board-*.c files: read bootloader configuration earlier 2009-09-03 20:14:02 +03:00
board-generic.c OMAP2/3 board-*.c files: read bootloader configuration earlier 2009-09-03 20:14:02 +03:00
board-h4.c OMAP2/3 board-*.c files: read bootloader configuration earlier 2009-09-03 20:14:02 +03:00
board-ldp.c OMAP2/3 board-*.c files: read bootloader configuration earlier 2009-09-03 20:14:02 +03:00
board-n8x0.c OMAP2: add board file for Nokia N800 and N810 2009-08-28 10:51:38 -07:00
board-omap3beagle.c OMAP2/3 board-*.c files: read bootloader configuration earlier 2009-09-03 20:14:02 +03:00
board-omap3evm.c OMAP2/3 board-*.c files: read bootloader configuration earlier 2009-09-03 20:14:02 +03:00
board-omap3pandora.c OMAP2/3 board-*.c files: read bootloader configuration earlier 2009-09-03 20:14:02 +03:00
board-overo.c OMAP2/3 board-*.c files: read bootloader configuration earlier 2009-09-03 20:14:02 +03:00
board-rx51-peripherals.c OMAP3: RX51: Define TWL4030 USB transceiver in board file 2009-08-10 14:49:51 +03:00
board-rx51.c OMAP2/3 board-*.c files: read bootloader configuration earlier 2009-09-03 20:14:02 +03:00
board-zoom2.c OMAP2/3 board-*.c files: read bootloader configuration earlier 2009-09-03 20:14:02 +03:00
board-zoom-debugboard.c OMAP2/3: Pass irqflags to 8250 driver 2009-08-28 11:24:08 -07:00
clock24xx.c OMAP2 clock: 2430 I2CHS uses non-standard CM_IDLEST register 2009-07-24 20:10:36 -06:00
clock24xx.h OMAP2 clock: 2430 I2CHS uses non-standard CM_IDLEST register 2009-07-24 20:10:36 -06:00
clock34xx.c OMAP3 clock: Fixed processing of bootarg 'mpurate' 2009-09-03 20:13:58 +03:00
clock34xx.h OMAP3 clock: remove superfluous calls to omap2_init_clk_clkdm 2009-09-03 20:14:00 +03:00
clock.c OMAP2/3 clock: split, rename omap2_wait_clock_ready() 2009-07-24 20:10:35 -06:00
clock.h OMAP2/3 clock: split, rename omap2_wait_clock_ready() 2009-07-24 20:10:35 -06:00
clockdomain.c [ARM] omap: ensure that failing power domain lookups produce errors 2009-02-23 14:55:34 +00:00
clockdomains.h OMAP3: PM: D2D clockdomain supports SW supervised transitions 2009-05-28 10:59:08 -07:00
cm4xxx.c OMAP2/3/4 PRCM: add module IDLEST wait code 2009-09-03 20:14:02 +03:00
cm-regbits-24xx.h [ARM] OMAP2 PRCM: clean up CM_IDLEST bits 2009-02-08 17:50:37 +00:00
cm-regbits-34xx.h OMAP3: PM: Add D2D clocks and auto-idle setup to PRCM init 2009-05-28 10:59:07 -07:00
cm.c OMAP2/3/4 PRCM: add module IDLEST wait code 2009-09-03 20:14:02 +03:00
cm.h OMAP2/3/4 PRCM: add module IDLEST wait code 2009-09-03 20:14:02 +03:00
control.c
devices.c OMAP3: MMC: Add mux for pins 2009-08-28 11:24:11 -07:00
gpmc-onenand.c OMAP2/3: gpmc-onenand: correct use of async timings 2009-06-23 13:30:24 +03:00
gpmc-smc91x.c ARM: OMAP2/3: Add generic smc91x support when connected to GPMC 2009-05-28 13:23:52 -07:00
gpmc.c ARM: OMAP4: Add minimal support for omap4 2009-05-28 14:16:04 -07:00
id.c OMAP2/3: Add omap_type() for determining GP/EMU/HS 2009-06-23 13:30:23 +03:00
io.c OMAP2/3 board-*.c files: read bootloader configuration earlier 2009-09-03 20:14:02 +03:00
iommu2.c OMAP: iommu: add initial debugfs support 2009-08-28 10:54:41 -07:00
irq.c OMAP: Add new function to check wether there is irq pending 2009-05-28 10:59:04 -07:00
Kconfig OMAP2: add board file for Nokia N800 and N810 2009-08-28 10:51:38 -07:00
mailbox.c OMAP2/3: omap mailbox: platform_get_irq() error ignored 2009-06-23 13:30:22 +03:00
Makefile OMAP2/3/4: create omap_hwmod layer 2009-09-03 20:14:03 +03:00
Makefile.boot
mcbsp.c ARM: includecheck fix: mach-omap2/mcbsp.c 2009-07-25 17:08:23 +01:00
mmc-twl4030.c OMAP2/3: mmc-twl4030: Free up MMC regulators while cleaning up 2009-08-10 14:49:51 +03:00
mmc-twl4030.h ARM: OMAP3: mmc-twl4030 uses regulator framework 2009-05-28 14:04:03 -07:00
mux.c OMAP3: MMC: Add mux for pins 2009-08-28 11:24:11 -07:00
omap3-iommu.c omap iommu: add MPU_BRIDGE_IOMMU for tidspbridge migration 2009-05-22 10:17:02 +03:00
omap_hwmod.c OMAP2/3/4: create omap_hwmod layer 2009-09-03 20:14:03 +03:00
omap-headsmp.S ARM: OMAP4: SMP: Add OMAP4430 SMP board files 2009-06-09 13:03:50 +05:30
omap-smp.c OMAP: Remove OMAP_IO_ADDRESS, use OMAP1_IO_ADDRESS and OMAP2_IO_ADDRESS instead 2009-08-28 10:50:33 -07:00
pm24xx.c OMAP2/3: PM: make PM __init calls static 2009-08-05 09:10:50 -07:00
pm34xx.c OMAP3: PM: Fix wrong sequence in suspend. 2009-08-05 09:10:54 -07:00
pm-debug.c OMAP: Remove OMAP_IO_ADDRESS, use OMAP1_IO_ADDRESS and OMAP2_IO_ADDRESS instead 2009-08-28 10:50:33 -07:00
pm.h OMAP2/3: PM: make PM __init calls static 2009-08-05 09:10:50 -07:00
powerdomain.c OMAP: powerdomain: Fix overflow when doing powerdomain deps lookups. 2009-09-03 20:13:53 +03:00
powerdomains24xx.h
powerdomains34xx.h [ARM] OMAP3 powerdomains: make USBTLL SAR only available on ES3.1 and beyond 2009-02-23 14:52:51 +00:00
powerdomains.h [ARM] OMAP3 powerdomains: make USBTLL SAR only available on ES3.1 and beyond 2009-02-23 14:52:51 +00:00
prcm-common.h OMAP2/3: PM: push core PM code from linux-omap 2009-05-28 10:58:50 -07:00
prcm.c OMAP2/3 clock: split, rename omap2_wait_clock_ready() 2009-07-24 20:10:35 -06:00
prm-regbits-24xx.h
prm-regbits-34xx.h ARM: OMAP3: Fix HW SAVEANDRESTORE shift define 2009-05-16 08:28:17 -07:00
prm.h OMAP: Remove OMAP_IO_ADDRESS, use OMAP1_IO_ADDRESS and OMAP2_IO_ADDRESS instead 2009-08-28 10:50:33 -07:00
sdram-micron-mt46h32m32lf-6.h ARM: OMAP3: SDRC: add timing data for Micron MT46H32M32LF-6, v2 2009-05-28 14:03:59 -07:00
sdram-qimonda-hyb18m512160af-6.h ARM: OMAP3: SDRC: add timing data for Qimonda HYB18M512160AF-6 2009-05-28 14:03:59 -07:00
sdrc2xxx.c ARM: OMAP2/3: Remove OMAP_PRM_REGADDR and OMAP2_PRM_BASE 2009-05-25 11:26:42 -07:00
sdrc.c OMAP2/3 SDRC: don't set SDRC_POWER.PWDENA on boot 2009-07-24 19:44:01 -06:00
sdrc.h OMAP: Remove OMAP_IO_ADDRESS, use OMAP1_IO_ADDRESS and OMAP2_IO_ADDRESS instead 2009-08-28 10:50:33 -07:00
serial.c OMAP2/3 board-*.c files: read bootloader configuration earlier 2009-09-03 20:14:02 +03:00
sleep24xx.S OMAP2/3: PM: push core PM code from linux-omap 2009-05-28 10:58:50 -07:00
sleep34xx.S OMAP2/3: PM: push core PM code from linux-omap 2009-05-28 10:58:50 -07:00
sram34xx.S OMAP3 SDRC: Move the clk stabilization delay to the right place 2009-07-24 20:10:35 -06:00
sram242x.S OMAP: Remove OMAP_IO_ADDRESS, use OMAP1_IO_ADDRESS and OMAP2_IO_ADDRESS instead 2009-08-28 10:50:33 -07:00
sram243x.S OMAP: Remove OMAP_IO_ADDRESS, use OMAP1_IO_ADDRESS and OMAP2_IO_ADDRESS instead 2009-08-28 10:50:33 -07:00
timer-gp.c OMAP: Remove OMAP_IO_ADDRESS, use OMAP1_IO_ADDRESS and OMAP2_IO_ADDRESS instead 2009-08-28 10:50:33 -07:00
timer-mpu.c ARM: OMAP4: SMP: Add mpu timer support for OMAP4430 2009-06-09 13:03:59 +05:30
usb-musb.c USB: musb: fix the nop registration for OMAP3EVM 2009-08-07 16:05:13 -07:00
usb-tusb6010.c ARM: OMAP2: Fix tusb6010 init error and compilation warning 2009-05-12 11:20:02 -07:00