summaryrefslogtreecommitdiffstats
path: root/sys/arm
Commit message (Collapse)AuthorAgeFilesLines
* Implement GPIO_GET_BUS() method for all GPIO drivers.loos2015-01-3113-54/+231
| | | | | Add helper routines to deal with attach and detach of gpiobus and gpioc devices that are common to all drivers.
* Clean up and fix the device detach routine and the failure path on GPIOloos2015-01-317-37/+49
| | | | | | drivers. This paves the way for upcoming work.
* ti_pruss: make sure the mmap'ed memory region is uncacheable.rpaulo2015-01-311-0/+1
| | | | MFC after: 1 week
* The BCM2835 GPIO controller uses has interrupt lines and not only one.loos2015-01-301-29/+23
| | | | | | | | | Allocate all four, we will use them soon. Simplificate the allocation of memory and interrupt resources with a single bus_alloc_resources() call instead of doing them separately. Destroy the mutex in case of errors.
* Allow the retrieving of the reserved pins state.loos2015-01-301-76/+62
| | | | | | | | | | | | | With this change, it is now possible to verify the pin function and level of reserved pins (but not set them). The use of reserved pins on Raspberry pi can lead to short circuits and real damage to the SoC. While here, remove duplicated code, make use of OF_getencprop_alloc() instead of using fixed sized variables and reduce the dmesg spam by printing reserved pin ranges (when possible) instead of printing each pin in the range.
* Rename the avila, cambria and zynq GPIO driver names to match the expectedloos2015-01-293-16/+3
| | | | | | | | | | string. With this change it is not necessary redeclare the driver relations with gpiobus and gpioc. This also prevents redundant declarations when gpiobusvar.h is included (which is going to happen soon).
* Set LCDC clock frequency to 2*148500 KHzgonzo2015-01-291-3/+3
| | | | | | Minimum LCDC is 2 so clock freq shouild be 2*max_pixel_clock. Maximum pixel clock for HDMI is 148500 (1920x1080). But AM335x can not run in this mode due to bandwidth and clock limitations
* Add ARMv7 performance monitoring counters.br2015-01-283-0/+14
| | | | | | Differential Revision: https://reviews.freebsd.org/D1687 Reviewed by: rpaulo Sponsored by: DARPA, AFRL
* Add a generic way for hooking PMC interrupt.br2015-01-261-0/+157
|
* Ensure that _tmppt KVA is used exclusively by providing exclusive sxkib2015-01-261-0/+6
| | | | | | | | | | | lock around the mapping and uiomove(). Before r277643, it was partially protected by Giant (but potential sleeping in fault from uiomove() would still allow other thread to reuse the mapping). Noted by: ian Reviewed by: alc, ian Sponsored by: The FreeBSD Foundation MFC after: 3 weeks
* - Increase default i2c bus timeout to 5 seconds from 1 second. Sometimesgonzo2015-01-251-5/+39
| | | | | | | 1 second is not enugh for TDA19988 HDMI framer (e.g. on Beaglebone Black) - Add per-device i2c_timout sysctl (dev.iichb.X.i2c_timeout) to control I2C bus timeout manually - Pass softc instead of device_t to all sysctl handlers
* Add vt(4) support to AM335x LCDC drivergonzo2015-01-252-4/+49
|
* Add support for audio transmitting, include drivers for:br2015-01-2411-1/+1896
| | | | | | | | | | o Digital Audio Multiplexer (AUDMUX) o Smart Direct Memory Access Controller (SDMA) o Synchronous Serial Interface (SSI) Disable by default as it depends on SDMA firmware. Sponsored by: Machdep, Inc.
* Remove Giant from /dev/mem and /dev/kmem. It is definitely not neededkib2015-01-241-2/+0
| | | | | | | | | for i386, and from the code inspection, nothing in the arm/mips/sparc64 implementations depends on it. Discussed with: imp, nwhitehorn Sponsored by: The FreeBSD Foundation MFC after: 3 weeks
* After interrupt read value from register to make sure it reached hardware. Thisgonzo2015-01-241-0/+4
| | | | | | should fix "Spurious inteerupt" message Suggested by ian@
* Add pinctrl driver support for the encoded input register config wordsian2015-01-231-3/+28
| | | | | that the linux guys made up on the fly (but didn't document) last August. This type of encoded config now appears in the imx6 fdt data.
* Enable all the mmc/sd controllers, because there's no telling which onesian2015-01-231-1/+1
| | | | | | any given board will be using. Yes, changing source is an unusually primitive power control implementation.
* Declare Maxmem on arm. This should have been part of r277532.ian2015-01-221-0/+1
|
* Add the Maxmem global and set it to the highest physical page number plus 1.ian2015-01-221-6/+23
|
* Add last_fault_code used in pmap-v6.c if kernel is compiled with "option DEBUG"gonzo2015-01-221-0/+8
|
* Write ACK for all kinds of LCDC interruptsgonzo2015-01-221-2/+3
|
* Move the __aligned() declaration to where it will actually do something.ian2015-01-211-2/+2
|
* Micro-optimize the new arm inline bus_space implementation by grouping allian2015-01-212-16/+23
| | | | | | | | the data the inline functions access together at the start of the bus_space struct. The start-of part isn't so important, it's the grouping-together that's the point: now all the most-accessed data should be in one cache line. Suggested by: cognet
* Remove "#define DEBUG" that conflicts with "option DEBUG" in kernel configgonzo2015-01-212-2/+0
|
* Remove a couple files that are no longer used (functionality take over byian2015-01-213-292/+0
| | | | arm/bus_space_base.c).
* Use explicit initializer style, fill in missing functions as unimplemented.ian2015-01-211-43/+79
|
* Use the base arm bus_space instead of an identical local copy.ian2015-01-212-230/+6
|
* Use the base arm bus_space instead of an identical local copy.ian2015-01-2115-141/+19
|
* Use the base arm bus_space instead of an identical local copy.ian2015-01-214-30/+34
|
* Use the base arm bus_space instead of an identical local copy.ian2015-01-212-112/+6
|
* Remove a no-longer-used include.ian2015-01-211-2/+0
|
* The versatile platform had two copies of a bus_space that are essentiallyian2015-01-217-306/+7
| | | | duplicates of the standard arm base bus_space, so just use it.
* Rename bus_space-v6.c to bus_space_base.c, because it's not v6-specifician2015-01-2115-18/+22
| | | | | and now some v5 Marvell systems are using it. Only define fdt_bus_tag if option FDT is defined.
* Use explicit initializer style, fill in missing functions.ian2015-01-212-70/+71
|
* Move bs_unimplemented() to bus_space_generic.c so it can be shared.ian2015-01-213-9/+10
|
* The mv/bus_space.c file is essentially identical to arm/bus_space-v6.c,ian2015-01-212-162/+1
| | | | so just use it.
* For some reason, all the arm bus_space functions that work with uint16ian2015-01-2115-134/+120
| | | | | values have armv4 in the name. There's nothing armv4-special about them, so just use the same sort of names as all the other functions.
* Use arm/bus_space-v6.c for all armv6 systems, the essentially identicalian2015-01-215-267/+5
| | | | files for lpc and xilinx aren't needed. Also, fix a couple paste-os.
* Use the explicit member initializer style to init the bus_space struct.ian2015-01-211-72/+77
| | | | | | Fill in some formerly NULL members where the implementation function exists. Add a dummy function that panics and use it as a placeholder for thigns that are still unimplemented. Remove a few unused includes.
* Revise the arm bus_space implementation to avoid dereferencing the tag onian2015-01-2113-397/+371
| | | | | | | | | | | | | | | | | every operation to retrieve the bs_cookie value almost nothing actually uses. The bus_space struct contains a private data pointer (poorly named bs_cookie, now renamed to bs_privdata) which is used only by a few old armv4 xscale implementations. The bus_space functions were all defined to take this value as the first parameter instead of the bus_space_tag_t, requiring all the inline macro and function expansions to dereference the tag to pass it to another function, which never uses it. Now all the functions take the tag as the first parameter and retrieve the privdata if they need it. Also fix a couple bus_space_unmap() implementations that were calling kva_free() instead of pmap_unmapdev(). Discussed with: cognet
* Add inline implementations of arm bus_space_read/write_N().ian2015-01-202-37/+55
| | | | Reviewed by: cognet
* Remove the SMP code from locore-v4. These will never use the SMP code asandrew2015-01-201-92/+0
| | | | | | there is no multi-core hardware prior to ARMv6. Sponsored by: The FreeBSD Foundation
* Add the User and PL1 read only and reqd write thread ID registers.andrew2015-01-201-0/+7
| | | | Sponsored by: The FreeBSD Foundation
* Enable Synopsys DesignWare Mobile Storage Host Controllerganbold2015-01-202-2/+5
| | | | | | | | driver on Rockchip boards. It currently supports PIO mode and dma mode needs external dma controller to be used. Submitted by: jmcneill Approved by: stas (mentor)
* Properly clear IRQ status in order to fix "Spurious IRQ" message from AINT.gonzo2015-01-201-0/+3
| | | | This register is not documented in TRM but that's what linux driver does
* Save the command-and-flags value into the shadow register when it is written.ian2015-01-181-1/+4
| | | | | | This doesn't actually change any behavior, because it just allows a 16-bit read of the command register to return the correct value, and nothing actually does a 16-bit read of that register.
* Fix programming timing parameters to LCDC. Actual value used for HBP, HFP, ↵gonzo2015-01-181-13/+27
| | | | | | HSW, VSW is register's programmed value + 1.
* Add a new SDHCI quirk, SDHCI_QUIRK_DONT_SET_HISPD_BIT. Apparently someian2015-01-171-1/+2
| | | | | | | | | | | | | sdhci controllers, such as the one on a Raspberry Pi, mishandle the signal timing in high speed signaling mode, but run just fine in standard mode with the bus running at frequencies between 25-50MHz (which shouldn't work). This is the solution adopted by U-Boot and other OSes (linux and *BSD) for the timeouts on Raspberry Pi boards with certain SD cards. Some research shows that this quirk is also used on a few other boards, so the fix is a generic quirk instead of being in the RPi-specific driver code. This change is based on information discovered by Michal Meloun.
* Minor cleanups, comment changes. No need to load 3 values when setting upian2015-01-171-11/+10
| | | | | | the stack for secondary cores, the other two values are only used for zeroing bss on the primary core. No need to store the size of the stack at the top of the stack (seems to be a leftover instruction from some cut-n-paste).
* Enable the snoop control unit during MP startup, rather than relying onian2015-01-161-3/+20
| | | | | | the bootloader to have done so. Submitted by: Thomas Skibo <thomasskibo@sbcglobal.net>
OpenPOWER on IntegriCloud