Commit Graph

72 Commits

Author SHA1 Message Date
thorpej 18f3098ca5 Use DEVICE_COMPAT_EOL. 2021-01-27 02:29:48 +00:00
thorpej 1f5ee02347 Change the device_compatible_match() function to only perform the match.
Introduce a device_compatible_lookup() function to return an entry based
on the same matching criteria (a'la of_search_compatible()).

Update iic_compatible_match() to reflect the above change, and introduce
iic_compatible_lookup().  This pattern is less awkward to use.
2021-01-18 15:28:21 +00:00
thorpej 7246a94523 Use designated initializers and a consistent termination style in
compat_data[].
2021-01-17 21:42:35 +00:00
kardel 3761416972 Use mutex for lwp/interrupt coordination. using splX() simply does not work
on multiprocessor systems.

fixes PR kern/55506
2020-08-04 13:20:45 +00:00
thorpej 814a779807 Update for proplib(3) API changes. 2020-06-11 02:32:06 +00:00
hkenken af6f2f7b13 Remove GPIO driver attach defer. 2019-11-27 07:26:08 +00:00
hkenken 59f7698778 Change manufacturer to Micron from Numonyx.
N25Q -> MT25Q
2019-11-26 02:41:58 +00:00
tnn 57e890b14b add fdt device_compatible_entry 2019-11-02 22:55:57 +00:00
tnn c022c48edf fix hang when SSDFB_ATTACH_FLAG_CONSOLE used with spi 2019-11-02 17:13:20 +00:00
tnn 281830f270 add spi(4) bus frontend for ssdfb(4) 2019-11-02 14:33:27 +00:00
tnn a0d9af4553 On second thought revert that. Let's open this can of worms some other day. 2019-09-14 15:12:12 +00:00
tnn 35a7abb119 KB -> kB 2019-09-14 14:41:23 +00:00
bouyer d5eb278c85 Add support for Winbond W25Q128.V (128mb) chips, as found on newer lime2-emmc
boards.
While there fix a missing \n in dmesg.
2019-09-05 16:17:48 +00:00
martin 3ee8645531 Make this at least compile - I have no way to test. 2019-08-21 08:03:22 +00:00
hkenken 1cd721f3f9 Fix typo. 2019-08-19 10:56:33 +00:00
tnn 1583622be1 m25p: add compatible entry for "jedec,spi-nor" and match on it 2019-08-13 17:11:32 +00:00
tnn f5ccd4002e spi: prepare for fdt direct attachment of spi slaves
Introduce sba_child_devices array in spibus_attach_args. If the parent has
populated sba_child_devices then attach them first. Then do any devices
devices the user has wired in the kernel config, if any.
2019-08-13 16:37:15 +00:00
tnn b656910d5f spi: make the "slave" config(5) locator optional
needed to be able to support FDT direct attachment of SPI slaves
2019-08-05 23:42:48 +00:00
tnn 8bb11c75f4 m25p: change devices recently added from 4kB "sector size" to 64kB ...
... even though it is wrong and these devices really use 4kB sector size.
Despite the struct member being named sector size it is actually used as
block size. Our spiflash driver doesn't issue sector erase commands.
Stopgap measure to fix data corruption until the driver is fixed.
2019-08-04 22:13:24 +00:00
tnn e9ef85cfea m25p: add GigaDevice 25Q127CSIG
(This is the boot ROM found on ROCKPro64.)
2019-08-04 20:49:54 +00:00
tnn 55423e6fd6 m25p: add some ~2010 vintage parts found in junk drawer 2019-08-03 02:22:06 +00:00
tnn c0d3233ca1 m25p: print vendor & device id before bailing out on unknown devices 2019-08-03 00:46:02 +00:00
hkenken f5808f43a4 Avoid workqueue_check_duplication(). 2019-07-04 11:13:26 +00:00
mlelstv 26a59cedc6 More input validation. Fix off-by-1 for size limit. 2019-03-09 07:53:12 +00:00
mlelstv 975ce0ba8d Add userland driver to spi framework.
Previously spi would configure the controller to use the lowest speed of
all connected devices since the kernel started and to fail attempted mode
changes. This is now improved to keep individual modes and speeds for each
slave and to reconfigure the controller as necessary for each transfer.

Added man page for spi(9).
2019-02-23 10:43:25 +00:00
riastradh d1579b2d70 Rename min/max -> uimin/uimax for better honesty.
These functions are defined on unsigned int.  The generic name
min/max should not silently truncate to 32 bits on 64-bit systems.
This is purely a name change -- no functional change intended.

HOWEVER!  Some subsystems have

	#define min(a, b)	((a) < (b) ? (a) : (b))
	#define max(a, b)	((a) > (b) ? (a) : (b))

even though our standard name for that is MIN/MAX.  Although these
may invite multiple evaluation bugs, these do _not_ cause integer
truncation.

To avoid `fixing' these cases, I first changed the name in libkern,
and then compile-tested every file where min/max occurred in order to
confirm that it failed -- and thus confirm that nothing shadowed
min/max -- before changing it.

I have left a handful of bootloaders that are too annoying to
compile-test, and some dead code:

cobalt ews4800mips hp300 hppa ia64 luna68k vax
acorn32/if_ie.c (not included in any kernels)
macppc/if_gm.c (superseded by gem(4))

It should be easy to fix the fallout once identified -- this way of
doing things fails safe, and the goal here, after all, is to _avoid_
silent integer truncations, not introduce them.

Maybe one day we can reintroduce min/max as type-generic things that
never silently truncate.  But we should avoid doing that for a while,
so that existing code has a chance to be detected by the compiler for
conversion to uimin/uimax without changing the semantics until we can
properly audit it all.  (Who knows, maybe in some cases integer
truncation is actually intended!)
2018-09-03 16:29:22 +00:00
jakllsch bcc691bb0b Add four Winbond devices. 2018-01-31 16:00:03 +00:00
jakllsch 31c83f40e5 We always need bp->b_resid initialized before we try to toss the transfer. 2018-01-12 19:38:52 +00:00
hkenken 5a40d81280 Add support Microchip SST25VF016B.
- Fixed imxspi send and receive bugs.
2017-08-07 09:24:43 +00:00
phx ac36483cc7 Fixed typo in name for MCP3304. 2016-11-20 12:38:04 +00:00
jakllsch 91a739399d Reset b_resid when tossing transfer with non-zero b_error. 2016-08-19 03:23:39 +00:00
hkenken b802f479cb use workqueue(9) 2015-12-14 10:31:38 +00:00
phx d643dd143b MI driver for the Microchip 3x0x series of SAR analog to digital converters. 2015-08-18 15:54:20 +00:00
ryo 4469b0d73d need to forward the data pointer 2015-07-22 10:07:59 +00:00
mlelstv 6f00c789e1 Use C99-style initializers for struct dkdriver. 2015-04-26 15:15:19 +00:00
mlelstv 217621d7a9 use disk_init() wrapper function instead of poking data structures. 2014-10-11 13:56:01 +00:00
dholland f9228f4225 Add d_discard to all struct cdevsw instances I could find.
All have been set to "nodiscard"; some should get a real implementation.
2014-07-25 08:10:31 +00:00
dholland 8c70ef39af Add d_discard to all struct bdevsw instances I could find.
I've set them all to nodiscard. Some of them (wd, dk, vnd, ld,
raidframe, maybe cgd) should be implemented for real.
2014-07-25 08:02:18 +00:00
dholland da7427b662 "peripheral", not "peripherial". 2014-07-13 17:12:23 +00:00
kardel a845bf81d9 add Microchip MCP23S17 GPIO driver
(via SPI interface)
2014-04-06 17:59:39 +00:00
hkenken 459f2ce05f Add optical joystick support for NetWalker.
+ OJ6SH-T25 (Sharp "Optical TOUCH CRUISER" sensor)
+ 2 Mouse buttons (GPIO)
2014-03-29 12:00:27 +00:00
hkenken 3dbfb37284 Fix printf formating in DPRINTF. 2014-03-28 11:52:51 +00:00
skrll dd7bb1e0a8 G/C sys/simplelock.h includes 2014-02-28 10:16:51 +00:00
rkujawa 21a43d7204 Add preliminary driver for Microchip MCP48x1 family of DACs.
Needs more testing and an appropriate API for such (non-audio) DACs. For now
one can set the output value using sysctl node. Also sysmon(4) will conveniently
report the voltage on Vout pin of the DAC. Note that this is not an actual
measured voltage, but merely calculated using equation from datasheet. Real
voltage might be different and depend on analog circuitry attached to the DAC.
2014-02-25 20:09:37 +00:00
martin 666d626222 Remove an unused variable 2014-01-28 19:26:32 +00:00
rkujawa 61e65effad Add support for M25P16, tested on Raspberry PI with Digilent PmodSF. 2013-10-26 15:18:21 +00:00
rkujawa ca819ab5ac Add support for STMicro M25PX64 and Numonyx N25Q128.
Obtained from Marvell, Semihalf.
2013-04-21 08:38:16 +00:00
rkujawa b97cbd07b3 Fix wrong calculation of destination pointer in writes.
Existing calculation of destination pointer was always causing unnecessary erases of SPI Flash memory and was always writing each consecutive 2048 byte blocks of data into the same address of the SPI Flash memory. This commit fixes issue with writes of multiple blocks using 'dd' tool.

Patch from Semihalf.
Author: Michal Dubiel <md@semihalf.com>
2013-02-15 17:46:53 +00:00
rkujawa b99a618c86 Fix usage of uninitialised variable holding number of slave devices.
The sc_nslaves has to be initialised before it is used in allocation of a memory holding save devices' configuration, otherwise slave drivers are causing kernel crashes.

Patch from Semihalf.
Author: Michal Dubiel <md@semihalf.com>
2013-02-15 17:44:40 +00:00
jakllsch 3e230313d1 Don't leak condvars and mutexes, even if they are on the stack.
Fixes LOCKDEBUG asserts when a mutex/condvar is initialized at the same
stack address as a previous initialization.  We probably want to revisit
the transfer structure lifecyle at some point in the future.
2013-01-04 22:23:06 +00:00