Commit Graph

429 Commits

Author SHA1 Message Date
Felix Fietkau
eb370470d8 atheros: v3.18: switch to IRQ domain
Rework MISC and PCI IRQ controllers code to use IRQ domains and bitops.

Signed-off-by: Sergey Ryazanov <ryazanov.s.a@gmail.com>

SVN-Revision: 44727
2015-03-13 03:01:31 +00:00
Felix Fietkau
4a3bd49cf1 atheros: v3.18: update register names
Make register names more consistent, mostly add appropriate prefix
(AR5312_ or AR2315_) or _BASE suffix. Also add macro to simplify mask
and shift operation.

No functional changes.

Signed-off-by: Sergey Ryazanov <ryazanov.s.a@gmail.com>

SVN-Revision: 44726
2015-03-13 03:01:21 +00:00
Felix Fietkau
9ceee12a49 atheros: v3.18: remap flash for boardconfig parsing
Rework boardconfig handling code to honestly remap flash memory region.

Signed-off-by: Sergey Ryazanov <ryazanov.s.a@gmail.com>

SVN-Revision: 44725
2015-03-13 03:01:17 +00:00
Felix Fietkau
6b041d0b1d atheros: v3.18: make registers headers local
There are no external users (last one was PCI driver) for these headers,
so move them to arch directory. Few macroses from ar231x.h header moved
to devices.h and file was removed.

Signed-off-by: Sergey Ryazanov <ryazanov.s.a@gmail.com>

SVN-Revision: 44724
2015-03-13 03:01:11 +00:00
Felix Fietkau
892ef42a77 atheros: v3.18: remap main SoC MMR memory
Honestly remap main SoC MMR mem and use accessor functions to
interact with registers. Now registers defined relatively to base
address (e.g. SDRAM controller base address).

Signed-off-by: Sergey Ryazanov <ryazanov.s.a@gmail.com>

SVN-Revision: 44723
2015-03-13 03:01:04 +00:00
Felix Fietkau
cd4462326c atheros: v3.18: cleanup register headers
AFAIK, no one AR2315+ chip (AR2315, AR2316, AR2317, AR2318) does not
contain IR block, so remove IR registers definitions. Also remove few
unused macroses.

Signed-off-by: Sergey Ryazanov <ryazanov.s.a@gmail.com>

SVN-Revision: 44722
2015-03-13 03:00:59 +00:00
Felix Fietkau
99377012d4 atheros: v3.18: pass PCI IRQ and I/O mem via resources
Pass PCI IRQ and I/O memory ranges via platform device resources, this
change makes PCI controller driver independed from arch headers, so
also remove few includes.

Signed-off-by: Sergey Ryazanov <ryazanov.s.a@gmail.com>

SVN-Revision: 44721
2015-03-13 03:00:51 +00:00
Felix Fietkau
6ba3363290 atheros: v3.18: remap PCI controller MMR memory
Honestly remap PCI controller MMR and use accessor functions to interact
with registers.

Signed-off-by: Sergey Ryazanov <ryazanov.s.a@gmail.com>

SVN-Revision: 44720
2015-03-13 03:00:43 +00:00
Felix Fietkau
862a89b8f7 atheros: v3.18: add context container for PCI driver
Add container and place all context specific variables and structure to
it.

Signed-off-by: Sergey Ryazanov <ryazanov.s.a@gmail.com>

SVN-Revision: 44719
2015-03-13 03:00:19 +00:00
Felix Fietkau
6d7e75fd99 atheros: v3.18: move PCI enable code to arch
Move PCI host interface enable code to arch, since it touches generic
SoC registers outside the PCI MMR region.

Signed-off-by: Sergey Ryazanov <ryazanov.s.a@gmail.com>

SVN-Revision: 44718
2015-03-13 03:00:06 +00:00
Felix Fietkau
26136ce9ae atheros: v3.18: rearrange PCI regs definitions
Move PCI controller configuration registers from generic header to
driver source. No functional changes.

Signed-off-by: Sergey Ryazanov <ryazanov.s.a@gmail.com>

SVN-Revision: 44717
2015-03-13 02:59:54 +00:00
Felix Fietkau
2c463148d1 atheros: v3.18: relocate PCI host DMA base definition
Put AR2315_PCI_HOST_SDRAM_BASEADDR macro to DMA header, since this is
arbitrary value and not some hw specific constant. Also this relocation
decouples dma from HW specific header.

Signed-off-by: Sergey Ryazanov <ryazanov.s.a@gmail.com>

SVN-Revision: 44716
2015-03-13 02:59:43 +00:00
Felix Fietkau
f458d11655 atheros: v3.18: rework early initialization
Do not use prom_init() callback, do memory initialization in
plat_mem_setup() callback and move serial port configuration to
arch_initcall stage.

Signed-off-by: Sergey Ryazanov <ryazanov.s.a@gmail.com>

SVN-Revision: 44715
2015-03-13 02:59:27 +00:00
Felix Fietkau
cdabe30755 atheros: v3.18: rearrange interrupt handling functions
No functional changes, just change functions order in source file.

Signed-off-by: Sergey Ryazanov <ryazanov.s.a@gmail.com>

SVN-Revision: 44714
2015-03-13 02:59:19 +00:00
Felix Fietkau
2f1ff48ea3 atheros: v3.18: change calls logic
Check SoC family (AR5312+ or AR2315+) before call instead of checking it
inside the called function. Also convert ar{5312,2315}_init_device()
function to void, since they both return zero and nobody care about
return value.

Signed-off-by: Sergey Ryazanov <ryazanov.s.a@gmail.com>

SVN-Revision: 44713
2015-03-13 02:59:04 +00:00
Felix Fietkau
8a98d187d5 atheros: v3.18: update names and declarations
Sync functions, variables and enums names with upstream. Mostly replace
'ar231x_' prefix by 'ath25_'.

No functional changes, except few 'int' -> 'unsigned' changes.

Signed-off-by: Sergey Ryazanov <ryazanov.s.a@gmail.com>

SVN-Revision: 44712
2015-03-13 02:58:58 +00:00
Felix Fietkau
fb4c293629 atheros: v3.18: cleanup cpu-feature-overrides.h
Remove mention of undefined features.

Signed-off-by: Sergey Ryazanov <ryazanov.s.a@gmail.com>

SVN-Revision: 44711
2015-03-13 02:58:49 +00:00
Felix Fietkau
2bb9583741 atheros: v3.18: remove eth platform device unused field
Ethernet controller driver don't use boarddata directly, so remove
corresponding field from its platform device structure.

Signed-off-by: Sergey Ryazanov <ryazanov.s.a@gmail.com>

SVN-Revision: 44710
2015-03-13 02:58:37 +00:00
Felix Fietkau
ef65a21a0c atheros: v3.18: remove odd header reset.h
This header provides prototype for function without realization and
users.

Signed-off-by: Sergey Ryazanov <ryazanov.s.a@gmail.com>

SVN-Revision: 44709
2015-03-13 02:58:24 +00:00
Felix Fietkau
6ede1e1726 atheros: v3.18: rename platform header
Rename ar231x_platform.h to ath25_platform.h

Signed-off-by: Sergey Ryazanov <ryazanov.s.a@gmail.com>

SVN-Revision: 44708
2015-03-13 02:58:17 +00:00
Felix Fietkau
fc7ff24b11 atheros: v3.18: rename kernel platform to ath25
Rename platform source directory and asm includes directory.

No functional changes.

Signed-off-by: Sergey Ryazanov <ryazanov.s.a@gmail.com>

SVN-Revision: 44707
2015-03-13 02:57:59 +00:00
Felix Fietkau
cd34dcd2ce atheros: v3.18: rename ATHEROS_AR231X symbol to ATH25
This patch starts upsteam ath25 code backporting.

No functional changes.

Signed-off-by: Sergey Ryazanov <ryazanov.s.a@gmail.com>

SVN-Revision: 44706
2015-03-13 02:57:51 +00:00
Felix Fietkau
d3354d1aac atheros: add v3.18 support
Signed-off-by: Sergey Ryazanov <ryazanov.s.a@gmail.com>

SVN-Revision: 44705
2015-03-13 02:57:41 +00:00
John Crispin
fa097e5ae5 kernel: disbale HAMRADIO in generic config
HAMRADIO enabled in all generic configs, but no one platform directly
use related drivers/protocols. This symbol is only used for kmod-ax25
package modules. Furthermore, half of platforms explicitly disables
this symbol, what silently disables build of modules for kmod-ax25
package.

So disable HAMRADIO by-default in generic config, add it to kmod-ax25
package and remove it from platform specific configs.

Signed-off-by: Sergey Ryazanov <ryazanov.s.a@gmail.com>

SVN-Revision: 44613
2015-03-06 07:56:21 +00:00
John Crispin
7886cced18 kernel: remove GENERIC_NET_UTILS from platform configs
CONFIG_GENERIC_NET_UTILS is selected by CONFIG_NET and already enabled
in generic config, so we don't need this symbol in platform specific
configurations.

Signed-off-by: Sergey Ryazanov <ryazanov.s.a@gmail.com>

SVN-Revision: 44611
2015-03-06 07:55:57 +00:00
Jonas Gorski
3139140339 kernel: move CONFIG_MIPS_O32_FP64_SUPPORT to generic configs
Most MIPS targets have it disabled, so move the symbol to the generic
configs to keep target configs small.

Signed-off-by: Jonas Gorski <jogo@openwrt.org>

SVN-Revision: 44583
2015-03-01 11:37:15 +00:00
Felix Fietkau
c288d2d6d9 kernel: makefiles: make use of new var KERNEL_PATCHVER
replace all occurences of LINUX_VERSION with the cleaner
approach. future kernel upgrades must mostly touch only
one file. the only platform left is netlogic, because it
uses a intermediate kernel 3.14.16

Signed-off-by: Bastian Bittorf <bittorf@bluebottle.com>

SVN-Revision: 43047
2014-10-24 19:34:02 +00:00
John Crispin
80ff3af16f atheros: refresh config
Remove symbols that are now placed in the generic config.

Signed-off-by: Sergey Ryazanov <ryazanov.s.a@gmail.com>

SVN-Revision: 42513
2014-09-12 06:54:16 +00:00
John Crispin
cb5902d603 atheros: convert AR2315 GPIO code to platform driver
Convert gpiolib realization to platform driver and move to the
appropriate subdirectory. Misc GPIO interrupt acknowledgement placed
to the MISC IRQ handler since in fact we can detect only one GPIO state
change.

Signed-off-by: Sergey Ryazanov <ryazanov.s.a@gmail.com>

SVN-Revision: 42512
2014-09-12 06:54:10 +00:00
John Crispin
a8799105d7 atheros: convert AR5312 GPIO code to platform driver
Signed-off-by: Sergey Ryazanov <ryazanov.s.a@gmail.com>

SVN-Revision: 42511
2014-09-12 06:54:05 +00:00
John Crispin
0e86c116cb atheros: rework chained interrupts handling
Call generic_handle_irq() instead of do_IRQ() for chained interrupts,
remove XXX_NONE interrupts and call spurious_interrupt() when an interrupt
is unexpected.

Signed-off-by: Sergey Ryazanov <ryazanov.s.a@gmail.com>

SVN-Revision: 42510
2014-09-12 06:53:58 +00:00
John Crispin
d780abcbbc atheros: convert gpio.h to stub
Implement to_irq() handler for AR2315 GPIO chip and convert custom
gpio.h header to stub.

Signed-off-by: Sergey Ryazanov <ryazanov.s.a@gmail.com>

SVN-Revision: 42509
2014-09-12 06:53:53 +00:00
John Crispin
6f874d84d5 atheros: rename SoCs config symbols
Rename config symbols to be consistent with other SoCs config symbols
supported by MIPS arch.

Signed-off-by: Sergey Ryazanov <ryazanov.s.a@gmail.com>

SVN-Revision: 42508
2014-09-12 06:53:48 +00:00
John Crispin
413736e5f8 atheros: add AR2316 and AR2318 SoCs detection
Tested with AR2315, AR2316 and AR2317 SoCs, not tested with AR2318 but
changes seems correct: revision is one more than AR2317.

Signed-off-by: Sergey Ryazanov <ryazanov.s.a@gmail.com>

SVN-Revision: 42507
2014-09-12 06:53:43 +00:00
John Crispin
c883854f7e atheros: ar2315-pci: convert to platform driver
Convert the PCI controller support code to platform driver and move it to
appropriate subdirectory.

Signed-off-by: Sergey Ryazanov <ryazanov.s.a@gmail.com>

SVN-Revision: 42506
2014-09-12 06:53:33 +00:00
John Crispin
4156c9734a atheros: ar2315-pci: rename configuration symbol
Rename configuration symbol to be consistent with other MIPS machines.

Signed-off-by: Sergey Ryazanov <ryazanov.s.a@gmail.com>

SVN-Revision: 42505
2014-09-12 06:53:27 +00:00
John Crispin
fb4196ec2a atheros: ar2315-pci: update DMA offset macroses
Remove duplicated macroses, which define DMA offset (SDRAM baseaddress).

Signed-off-by: Sergey Ryazanov <ryazanov.s.a@gmail.com>

SVN-Revision: 42504
2014-09-12 06:53:21 +00:00
John Crispin
94efeaa51f atheros: ar2315-pci: update host bridge resources
It seems that the PCI controller does not support I/O ports, so remove
the ports range. Also correct the beginning of the memory range and its
size.

Signed-off-by: Sergey Ryazanov <ryazanov.s.a@gmail.com>

SVN-Revision: 42503
2014-09-12 06:53:15 +00:00
John Crispin
78c914ffe5 atheros: ar2315-pci: rework the configuration access code
Use __raw_{read,write}l accessors and use Abort interrupt to detect a
configuration space read/write errors. The second change improves errors
detection, what improves the device presence detection and helps us to
avoid following (and similar) errors:

pci 0000:00:00.2: ignoring class 0x7e0200 (doesn't match header type 02)
pci 0000:00:00.2: bridge configuration invalid ([bus 03-90]), reconfiguring
pci 0000:00:00.2: not setting up bridge for bus 0000:01

Signed-off-by: Sergey Ryazanov <ryazanov.s.a@gmail.com>

SVN-Revision: 42502
2014-09-12 06:53:09 +00:00
John Crispin
dbdd8906ac atheros: ar2315-pci: rework interrupt handling
Add PCI IRQ controller to facilitate interrupt handling, move interrupts
initialization to the IRQ controller initialization from
pcibios_plat_dev_init() callback.

Also remove odd PCI dev configuration manipulation from pcibios_plat_dev_init()
callback.

Signed-off-by: Sergey Ryazanov <ryazanov.s.a@gmail.com>

SVN-Revision: 42501
2014-09-12 06:53:00 +00:00
John Crispin
0f645cbd83 atheros: ar2315-pci: rework host controller initialization
Explicitly configure PCI host controller, and do not expose it to PCI
subsystem. The PCI host controller acts as a usual PCI device connected
to the bus, but its configuration as a usual PCI device is senseless,
since the host controller provide access to _internal_ memory space for
_external_ device.

Signed-off-by: Sergey Ryazanov <ryazanov.s.a@gmail.com>

SVN-Revision: 42500
2014-09-12 06:52:55 +00:00
John Crispin
37d2445fcb atheros: ar2315-pci: cosmetic changes
- add comment, which briefly describes PCI controller features and
   Fonera 2.0g schematics.
 - rename several functions and structures, to make it clear that this
   code only for AR2315 chips.

Signed-off-by: Sergey Ryazanov <ryazanov.s.a@gmail.com>

SVN-Revision: 42499
2014-09-12 06:52:51 +00:00
John Crispin
1e6af86ff9 atheros: ar2315-pci: remove odd locking in PCI config space access function
Caller (generic PCI code) already do proper locking so no need to add
another one here.

Signed-off-by: Sergey Ryazanov <ryazanov.s.a@gmail.com>

SVN-Revision: 42498
2014-09-12 06:52:46 +00:00
John Crispin
09f38a3f76 atheros: remove odd ATHEROS_AR2315 config symbol dependencies
Remove options which already selected by ATHEROS_AR231X on which
ATHEROS_AR2315 depends.

Signed-off-by: Sergey Ryazanov <ryazanov.s.a@gmail.com>

SVN-Revision: 42497
2014-09-12 06:52:42 +00:00
John Crispin
2e9deed90a atheros: various space related changes
- remove odd blank lines
 - remove odd spaces after casts
 - fix alignment

 No functional changes.

Signed-off-by: Sergey Ryazanov <ryazanov.s.a@gmail.com>

SVN-Revision: 42496
2014-09-12 06:52:36 +00:00
John Crispin
d34c3e0674 atheros: rework and cleanup board initialization
- remove odd flags and branching
  - add __init mark
  - make shorter variables names
  - returns true or false from boolean functions
  - unwrap short function declarations
  - unwrap quoted string
  - rename macroses with names in CamelCase

Signed-off-by: Sergey Ryazanov <ryazanov.s.a@gmail.com>

SVN-Revision: 42495
2014-09-12 06:52:26 +00:00
John Crispin
98b6a56b3c atheros: update ether addresses handling
- use ether_foo() routines to work with addresses
 - use ETH_ALEN inplace of magic '6'

Signed-off-by: Sergey Ryazanov <ryazanov.s.a@gmail.com>

SVN-Revision: 42494
2014-09-12 06:52:21 +00:00
John Crispin
bdc1357e7b atheros: remove useless includes
Signed-off-by: Sergey Ryazanov <ryazanov.s.a@gmail.com>

SVN-Revision: 42493
2014-09-12 06:52:14 +00:00
John Crispin
300021d6c4 atheros: ar231x-eth: remove useless IOCTL handlers
These IOCTLs handled in the core now.

Signed-off-by: Sergey Ryazanov <ryazanov.s.a@gmail.com>

SVN-Revision: 42492
2014-09-12 06:52:07 +00:00
John Crispin
a28fd0dfd0 atheros: ar2315-spiflash: use mutex inplace of spinlock
Use mutex inplace of spinlock to make code simple, also call
mutex_{lock,unlock} explicitly to avoid sparse warning about context
imbalance.

Signed-off-by: Sergey Ryazanov <ryazanov.s.a@gmail.com>

SVN-Revision: 42491
2014-09-12 06:52:00 +00:00