aboutsummaryrefslogtreecommitdiff
path: root/sys/modules/i2c
Commit message (Collapse)AuthorAgeFilesLines
* Build geni_iic kmod on aarch64Poul-Henning Kamp2025-04-082-0/+13
|
* Remove residual blank line at start of MakefileWarner Losh2024-07-1550-50/+0
| | | | | | | This is a residual of the $FreeBSD$ removal. MFC After: 3 days (though I'll just run the command on the branches) Sponsored by: Netflix
* i2c: rtc: Add module for hym8563 driverEmmanuel Vadot2023-10-062-1/+15
| | | | It's used in the nanopi-r5s
* i2c: Add Microcrystal RV3032 RTC driverEmmanuel Vadot2023-10-032-1/+15
| | | | | | | | This is a simple RTC driver for the rv3032 from Microcrystal. Just the basic functionality is implemented (no timer, alarm etc ..). Sponsored by: Beckhoff Automation GmbH & Co. KG Differential Revision: https://reviews.freebsd.org/D41995
* iicbus: Move opencores i2c driver into controller subdirectoryEmmanuel Vadot2023-10-031-1/+1
| | | | | Sponsored by: Beckhoff Automation GmbH & Co. KG Differential Revision: https://reviews.freebsd.org/D41914
* iicbus: Move i2c sensors drivers into new sensor subdirectoryEmmanuel Vadot2023-10-033-3/+3
| | | | | | | No reason that they should live directly under iicbus Sponsored by: Beckhoff Automation GmbH & Co. KG Differential Revision: https://reviews.freebsd.org/D41913
* iicbus: Move ADC drivers into a new adc subfolderEmmanuel Vadot2023-10-032-2/+2
| | | | | | | No reason that they should live directly under iicbus Sponsored by: Beckhoff Automation GmbH & Co. KG Differential Revision: https://reviews.freebsd.org/D41911
* iicbus: Move remaining rtc driver into rtc subfolderEmmanuel Vadot2023-10-038-8/+8
| | | | | | | No reason that they should live directly under iicbus Sponsored by: Beckhoff Automation GmbH & Co. KG Differential Revision: https://reviews.freebsd.org/D41908
* sys: Remove $FreeBSD$: one-line sh patternWarner Losh2023-08-1648-48/+0
| | | | Remove /^\s*#[#!]?\s*\$FreeBSD\$.*$\n/
* gpio: Merge TCA6416 & TCA6408 drivers into TCA64XXJakub KoƂodziej2022-09-193-8/+6
| | | | | | | | | | | This merges TCA6416, TCA6408 drivers and adds PCA9555 support. They handle 8 pin and 16 pin ICs with basic INPUT/OUTPUT functionality. The register map is fairly similar so there is no point in having two separate drivers. Reviewed by: kd Obtained from: Semihalf Differential Revision: https://reviews.freebsd.org/D36559
* iicbus: Add missing dependency for iicbus module.Michal Meloun2022-02-231-1/+1
| | | | | Reported by: rpokala, mjg MFC with: 1bd3e8ba696633ccd7525030d951b58ade167814
* iicbb: Always build ofw_bus_if.hWarner Losh2022-01-021-6/+1
| | | | | | | | | | Always make ofw_bus_if.h. While it's only used when option FDT is in the kernel, it can always be generated. In theory we could omit it if option FDT isn't present, but none of the rest of sys/modules does that. That fine-grained control likely won't be reliable w/o a redesign of the kernel/module config system. Sponsored by: Netflix
* Revert "wpa: Import wpa_supplicant/hostapd commit 14ab4a816"Cy Schubert2021-12-021-1/+2
| | | | | | | | This reverts commit 266f97b5e9a7958e365e78288616a459b40d924a, reversing changes made to a10253cffea84c0c980a36ba6776b00ed96c3e3b. A mismerge of a merge to catch up to main resulted in files being committed which should not have been.
* wpa: Import wpa_supplicant/hostapd commit 14ab4a816Cy Schubert2021-12-021-2/+1
| | | | | | This is the November update to vendor/wpa committed upstream 2021-11-26. MFC after: 1 month
* TMP461: Add thermal sensor driverHubert Mazur2021-12-022-1/+9
| | | | | | | | | | | Add driver for TMP461 thermal sensor. Register new sysctl node of integer type for device. Read register and fill sysctl with valid temperature. Reviewed by: Sponsored by: Alstom Obtained from: Semihalf Differential revision: https://reviews.freebsd.org/D32818
* Pcf85063: Add RTC driverHubert Mazur2021-11-241-2/+2
| | | | | | | | | | Add driver for pcf85063 real time clock. Register set and get time methods. Parse data obtained from bus according to specification and fill kernel structures. Obtained from: Semihalf Sponsored by: Alstom Group Differential revision: https://reviews.freebsd.org/D32817
* Fix some modules to export more used symbolsKonstantin Belousov2021-11-184-0/+8
| | | | | | | | | and remove non-present symbols that are now reported by kmod_syms.awk. Reviewed by: emaste Sponsored by: The FreeBSD Foundation MFC after: 1 week Differential revision: https://reviews.freebsd.org/D32878
* pca954x: driver for PCA954x / TCA954x I2C switchesAndriy Gapon2021-11-132-0/+21
| | | | | | At the moment only PCA9548A is supported and has been tested. MFC after: 2 weeks
* pcf8574: driver for 8-pin quasi-bidirectional GPIO over I2CAndriy Gapon2021-11-062-0/+19
| | | | MFC after: 2 weeks
* driver for MAX44009 I2C illuminance sensorAndriy Gapon2021-11-062-0/+18
|
* pcf8591: driver for adc/dac with i2c interfaceAndriy Gapon2021-11-062-0/+18
|
* iicoc: support building as a moduleThomas Skibo2021-11-012-0/+10
| | | | | | | | | Only build on RISC-V for now, since we're not aware of any other cores with this IP supported by FreeBSD. Reviewed by: jrtc27, philip MFC after: 3 days Differential Revision: https://reviews.freebsd.org/D32737
* modules: iichid: needs opt_acpi.hKyle Evans2021-09-301-1/+2
| | | | This fixes the standalone build.
* htu21: driver for HTU21D I2C temperature and humidity sensorAndriy Gapon2021-01-192-0/+18
| | | | | MFC after: 2 weeks Relnotes: perhaps
* hid: Import iichid - I2C transport backend for HID subsystemVladimir Kondratyev2021-01-072-0/+13
| | | | | | | | | | | | | | | | | This implements hid_if.m methods for HID-over-I2C protocol [1]. Following kernel options are added: IICHID_SAMPLING - Enable support for a sampling mode as interrupt resource acquisition is not always possible in a case of GPIO interrupts. IICHID_DEBUG - Enable debug output. The module is based on prior Marc Priggemeyer work (D16698). [1] http://download.microsoft.com/download/7/d/d/7dd44bb7-2a7a-4505-ac1c-7227d3d96d5b/hid-over-i2c-protocol-spec-v1-0.docx Differential revision: https://reviews.freebsd.org/D27892
* cyapa(4): Add support for evdev protocolVladimir Kondratyev2020-12-231-1/+2
| | | | | Tested-by: Matthias Apitz <guru@unixarea.de> MFC-after: 2 weeks
* Introduce support for Epson RX-8803 RTC.Marcin Wojtas2020-05-252-1/+18
| | | | | | | | | | | | | | | This patch introduces support for Epson RX-8803 RTC controller accessible over I2C bus. It has a resolution of 1 sec. Support for interrupt based alarm was not implemented. Submitted by: Kornel Duleba <mindal@semihalf.com> Reviewed by: manu Obtained from: Semihalf Sponsored by: Alstom Group Differential Revision: https://reviews.freebsd.org/D24364 Notes: svn path=/head/; revision=361463
* Add TCA6416 GPIO expander support.Marcin Wojtas2020-05-252-0/+11
| | | | | | | | | | | | | | | Add basic TCA6416 GPIO expander support over I2C bus. The driver handles enabling and disabling pins, setting pin mode to IN and OUT and toggling the pins. External interrupts are not supported. Submitted by: Dawid Gorecki <dgr@semihalf.com> Reviewed by: manu, mmel Obtained from: Semihalf Sponsored by: Alstom Group Differential Revision: https://reviews.freebsd.org/D24363 Notes: svn path=/head/; revision=361462
* iicbus(4): Add support for ACPI-based children enumerationVladimir Kondratyev2020-03-091-0/+5
| | | | | | | | | | | | | | | | | | | | When iicbus is attached as child of Designware I2C controller it scans all ACPI nodes for "I2C Serial Bus Connection Resource Descriptor" described in section 19.6.57 of ACPI specs. If such a descriptor is found, I2C child is added to iicbus, it's I2C address, IRQ resource and ACPI handle are added to ivars. Existing ACPI bus-hosted child is deleted afterwards. The driver also installs so called "I2C address space handler" which is disabled by default as nontested. Set hw.iicbus.enable_acpi_space_handler loader tunable to 1 to enable it. Reviewed by: markj MFC after: 2 weeks Differential Revision: https://reviews.freebsd.org/D22901 Notes: svn path=/head/; revision=358820
* Remove sparc64 kernel supportWarner Losh2020-02-031-8/+2
| | | | | | | | | Remove all sparc64 specific files Remove all sparc64 ifdefs Removee indireeect sparc64 ifdefs Notes: svn path=/head/; revision=357455
* Add support for i2c bus mux hardware.Ian Lepore2020-01-025-0/+71
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | An i2c bus can be divided into segments which can be selectively connected and disconnected from the main bus. This is usually done to enable using multiple slave devices having the same address, by isolating the devices onto separate bus segments, only one of which is connected to the main bus at once. There are several types of i2c bus muxes, which break down into two general categories... - Muxes which are themselves i2c slaves. These devices respond to i2c commands on their upstream bus, and based on those commands, connect various downstream buses to the upstream. In newbus terms, they are both a child of an iicbus and the parent of one or more iicbus instances. - Muxes which are not i2c devices themselves. Such devices are part of the i2c bus electrically, but in newbus terms their parent is some other bus. The association with the upstream bus must be established by separate metadata (such as FDT data). In both cases, the mux driver has one or more iicbus child instances representing the downstream buses. The mux driver implements the iicbus_if interface, as if it were an iichb host bridge/i2c controller driver. It services the IO requests sent to it by forwarding them to the iicbus instance representing the upstream bus, after electrically connecting the upstream bus to the downstream bus that hosts the i2c slave device which made the IO request. The net effect is automatic mux switching which is transparent to slaves on the downstream buses. They just do i2c IO they way they normally do, and the bus is electrically connected for the duration of the IO and then idled when it is complete. The existing iicbus_if callback() method is enhanced so that the parameter passed to it can be a struct which contains a device_t for the requesting bus and slave devices. This change is done by adding a flag that indicates the extra values are present, and making the flags field the first field of a new args struct. If the flag is set, the iichb or mux driver can recast the pointer-to-flags into a pointer-to-struct and access the extra fields. Thus abi compatibility with older drivers is retained (but a mux cannot exist on the bus with the older iicbus driver in use.) A new set of core support routines exists in iicbus.c. This code will help implement mux drivers for any type of mux hardware by supplying all the boilerplate code that forwards IO requests upstream. It also has code for parsing metadata and instantiating the child iicbus instances based on it. Two new hardware mux drivers are added. The ltc430x driver supports the LTC4305/4306 mux chips which are controlled via i2c commands. The iic_gpiomux driver supports any mux hardware which is controlled by manipulating the state of one or more gpio pins. Test Plan Tested locally using a variety of mux'd bus configurations involving both ltc4305 and a homebrew gpio-controlled mux. Tested configurations included cascaded muxes (unlikely in the real world, but useful to prove that 'it all just works' in terms of the automatic switching and upstream forwarding of IO requests). Notes: svn path=/head/; revision=356278
* Include ofw_bus_if.h in SRCS only on systems configured with the FDT option.Ian Lepore2019-12-131-1/+4
| | | | Notes: svn path=/head/; revision=355738
* Add a driver for Texas Instruments ADS101x/ADS111x i2c ADC chips.Ian Lepore2019-08-052-0/+16
| | | | | | | | | | Instances of the device can be configured using hints or FDT data. Interfaces to reconfigure the chip and extract voltage measurements from it are available via sysctl(8). Notes: svn path=/head/; revision=350591
* enable ig4_acpi on aarch64Ed Maste2019-07-241-1/+2
| | | | | | | | | | | The already-listed APMC0D0F ID belongs to the Ampere eMAG aarch64 platform, but ACPI support was not even built on aarch64. Submitted by: Greg V <greg_unrelenting.technology> Differential Revision: https://reviews.freebsd.org/D21059 Notes: svn path=/head/; revision=350303
* Remove jedec_ts(4)Ravi Pokala2018-08-012-8/+0
| | | | | | | | | | | | | | The jedec_ts(4) driver has been marked as deprecated in stable/11, and is now being removed from -HEAD. Add a notice in UPDATING, and update the few remaining references (regarding jedec_dimm(4)'s compatibility and history) to reflect the fact that jedec_ts(4) is now deleted. Reviewed by: avg Relnotes: yes Differential Revision: https://reviews.freebsd.org/D16537 Notes: svn path=/head/; revision=337033
* Add opt_platform.h for several modules that have #ifdef FDT in the source.Ian Lepore2018-04-012-1/+2
| | | | | | | Submitted by: Andre Albsmeier <Andre.Albsmeier@siemens.com> Notes: svn path=/head/; revision=331868
* Build the ds1672 driver as a module. Add a detach() to unregister the rtc.Ian Lepore2018-03-062-0/+20
| | | | Notes: svn path=/head/; revision=330529
* Build iicbus/rtc8583 as a module.Ian Lepore2018-03-042-0/+20
| | | | Notes: svn path=/head/; revision=330412
* imcsmb(4): Intel integrated Memory Controller (iMC) SMBus controller driverRavi Pokala2018-03-032-0/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | imcsmb(4) provides smbus(4) support for the SMBus controller functionality in the integrated Memory Controllers (iMCs) embedded in Intel Sandybridge- Xeon, Ivybridge-Xeon, Haswell-Xeon, and Broadwell-Xeon CPUs. Each CPU implements one or more iMCs, depending on the number of cores; each iMC implements two SMBus controllers (iMC-SMBs). *** IMPORTANT NOTE *** Because motherboard firmware or the BMC might try to use the iMC-SMBs for monitoring DIMM temperatures and/or managing an NVDIMM, the driver might need to temporarily disable those functions, or take a hardware interlock, before using the iMC-SMBs. Details on how to do this may vary from board to board, and the procedure may be proprietary. It is strongly suggested that anyone wishing to use this driver contact their motherboard vendor, and modify the driver as described in the manual page and in the driver itself. (For what it's worth, the driver as-is has been tested on various SuperMicro motherboards.) Reviewed by: avg, jhb MFC after: 1 week Relnotes: yes Sponsored by: Panasas Differential Revision: https://reviews.freebsd.org/D14447 Discussed with: avg, ian, jhb Tested by: allanjude (previous version), Panasas Notes: svn path=/head/; revision=330304
* Instead of building ofw_iicbus as a separate module, just compile it in toIan Lepore2018-02-253-19/+4
| | | | | | | | | | | | | | | | | | | | | the iicbus module for FDT-based systems. The primary motivation for this is that host controller drivers which declare DRIVER_MODULE(ofw_iicbus, thisdriver, etc, etc) now only need a single MODULE_DEPEND(thisdriver, ofw_iicbus) for runtime linking to resolve all the symbols. With ofw_iicbus and iicbus in separate modules, drivers would need to declare a MODULE_DEPEND() on both, because symbol lookup is non-recursive through the dependency chain. Requiring a driver to have MODULE_DEPENDS() on both amounts to requiring the drivers to understand the kobj inheritence details of how ofw_iicbus is implemented, which seems like something they shouldn't have to know (and could even change some day). Also, this is somewhat analogous to how the drivers get built when compiled into the kernel. You don't have to ask for ofw_iicbus separately, it just gets built in along with iicbus when option FDT is in effect. Notes: svn path=/head/; revision=329988
* jedec_dimm(4): report asset info and temperatures for DDR3 and DDR4 DIMMsRavi Pokala2018-02-222-0/+8
| | | | | | | | | | | | | | | | | | | A super-set of the functionality of jedec_ts(4). jedec_dimm(4) reports asset information (Part Number, Serial Number) encoded in the "Serial Presence Detect" (SPD) data on JEDEC DDR3 and DDR4 DIMMs. It also calculates and reports the memory capacity of the DIMM, in megabytes. If the DIMM includes a "Thermal Sensor On DIMM" (TSOD), the temperature is also reported. Reviewed by: cem MFC after: 1 week Relnotes: yes Sponsored by: Panasas Differential Revision: https://reviews.freebsd.org/D14392 Discussed with: avg, cem Tested by: avg, cem (previous version, no semantic changes) Notes: svn path=/head/; revision=329843
* Build ofw_iicbus as a module if OPT_FDT is defined.Ian Lepore2018-02-192-0/+19
| | | | Notes: svn path=/head/; revision=329541
* Add iic_recover_bus.c, now part of iicbus. This should have been addedIan Lepore2018-02-181-0/+1
| | | | | | | as part of r320463. Notes: svn path=/head/; revision=329535
* Arrange SRCS= as 1 file per line, alphabetical, so it's easier to maintain.Ian Lepore2018-02-181-4/+12
| | | | | | | Whitespace only, no functional changes. Notes: svn path=/head/; revision=329534
* Give icee(4) a detach() method so it can be used as a module. Add aIan Lepore2017-09-172-0/+15
| | | | | | | module makefile for it. Notes: svn path=/head/; revision=323691
* Add a missing header file to SRCS to fix out-of-kernel builds.Ian Lepore2017-09-166-6/+6
| | | | | | | | | PR: 222354 Submitted by: eugen@ Pointy hat: ian@ Notes: svn path=/head/; revision=323642
* Minor fixes and enhancements for the s35390a i2c RTC driver...Ian Lepore2017-08-142-0/+8
| | | | | | | | | | | | - Add FDT probe code. - Do i2c transfers with exclusive bus ownership. - Use config_intrhook_oneshot() to defer chip setup because some i2c busses can't do transfers without interrupts. - Add a detach() routine. - Add to module build. Notes: svn path=/head/; revision=322477
* Add a new driver, ds13rtc, that handles all DS13xx series i2c RTC chips.Ian Lepore2017-08-132-0/+8
| | | | | | | | | | | | | | | | | | This driver supports only basic timekeeping functionality. It completely replaces the ds133x driver. It can also replace the ds1374 driver, but that will take a few other changes in MIPS code and config, and will be committed separately. It does NOT replace the existing ds1307 driver, which provides access to some of the extended features on the 1307 chip, such as controlling the square wave output signal. If both ds1307 and ds13rtc drivers are present, the ds1307 driver will outbid and win control of the device. This driver can be configured with FDT data, or by using hints on non-FDT systems. In addition to the standard hints for i2c devices, it requires a "chiptype" string of the form "dallas,ds13xx" where 'xx' is the chip id (i.e., the same format as FDT compat strings). Notes: svn path=/head/; revision=322473
* Add missing header file to SRCS.Ian Lepore2017-08-031-1/+1
| | | | | | | Reported by: manu@ Notes: svn path=/head/; revision=322026
* Add missing ofw_bus_if.h src file.Ian Lepore2017-08-023-3/+3
| | | | Notes: svn path=/head/; revision=321934