ig4(4): Fix SDA HOLD time set too low on Skylake controllersExecution of "Soft reset" command (IG4_REG_RESETS_SKL) at controller initstage sets SDA_HOLD register value to 0x0001 which is often too
ig4(4): Fix SDA HOLD time set too low on Skylake controllersExecution of "Soft reset" command (IG4_REG_RESETS_SKL) at controller initstage sets SDA_HOLD register value to 0x0001 which is often too low fornormal operation.Set SDA_HOLD back to 28 after reset to restore controller functionality.PR: 240339Reported by: imp, GregV, et al.
show more ...
[ig4] style(9) clean-upSubmitted by: Rajesh Kumar <[email protected]>Approved by: re (gjb, kib)
[ig4] Fix device description for Kaby Lake systemsKaby Lake I2C controller is Intel Sunrise Point-H not Intel Sunrise Point-LP.Submitted by: Dmitry LuhtionovApproved by: re (kib)
[ig4] Add PCI IDs for I2C controller on Intel Kaby Lake systemsPR: 221777Approved by: re (kib)Submitted by: [email protected]
[ig4] Fix I/O timeout issue with Designware I2C controller on AMD platformsDue to hardware limitation AMD I2C controller can't trigger pendinginterrupt if interrupt status has been changed after c
[ig4] Fix I/O timeout issue with Designware I2C controller on AMD platformsDue to hardware limitation AMD I2C controller can't trigger pendinginterrupt if interrupt status has been changed after clearinginterrupt status bits. So, I2C will lose the interrupt and IO will betimed out. Implements a workaround to disable I2C controller interruptand re-enable I2C interrupt before existing interrupt handler.Submitted by: [email protected]MFC after: 2 weeksDifferential Revision: https://reviews.freebsd.org/D16720
[ig4] add ACPI Device HID for AMD platformsAdded ACPI Device HID AMDI0010 for the designware I2C controllers infuture AMD platforms. Also, when verifying component version check forminimal value
[ig4] add ACPI Device HID for AMD platformsAdded ACPI Device HID AMDI0010 for the designware I2C controllers infuture AMD platforms. Also, when verifying component version check forminimal value instead of exact match.PR: 230641Submitted by: Rajesh <[email protected]>Reviewed by: cem, gonzoMFC after: 2 weeksDifferential Revision: https://reviews.freebsd.org/D16670
[ig4] Fix initialization sequence for newer ig4 chipsNewer chips may require assert/deassert after power down for properstartup. Check respective flag in DEVIDLE_CTRL and perform operationif necc
[ig4] Fix initialization sequence for newer ig4 chipsNewer chips may require assert/deassert after power down for properstartup. Check respective flag in DEVIDLE_CTRL and perform operationif neccesssary.PR: 221777Submitted by: [email protected]Obtained from: DragonFly BSDTested on: Thinkpad T470
Remove MODULE_PNP_INFO for ig4(4) driverig4(4) does not support suspend/resume but present on the hardware wheresuch functionality is critical, like laptops. Remove PNP info to avoidbreaking susp
Remove MODULE_PNP_INFO for ig4(4) driverig4(4) does not support suspend/resume but present on the hardware wheresuch functionality is critical, like laptops. Remove PNP info to avoidbreaking suspend/resume on the systems where ig4(4) load is not explicitlyrequested by the user.PR: 229791Reported by: Ali Abdallah
ig4(4): add devmatch(8) PNP infoNow that we have all devices ids in a table add MODULE_PNP_INFO macroto let devmatch autoload module
ig4(4): Fix Apollo lake entries platform identifierIdentify Apollo Lake controllers as IG4_APL and not as a IG4_SKYLAKEReported by: rpokala@
ig4(4): add support for Apollo Lake I2C controllersAdd PCI ids for I2C controllers on Apollo Lake platform. Also convertswitch/case probe logic into a table.Reviewed by: avgDifferential Revisio
ig4(4): add support for Apollo Lake I2C controllersAdd PCI ids for I2C controllers on Apollo Lake platform. Also convertswitch/case probe logic into a table.Reviewed by: avgDifferential Revision: https://reviews.freebsd.org/D16120
[ig4] Add support for i2c controllers on Skylake and Kaby LakeThis was tested by Ben on HP Chromebook 13 G1 with aSkylake CPU and Sunrise Point-LP I2C controller and by me onMinnowboard Turbot w
[ig4] Add support for i2c controllers on Skylake and Kaby LakeThis was tested by Ben on HP Chromebook 13 G1 with aSkylake CPU and Sunrise Point-LP I2C controller and by me onMinnowboard Turbot with Atom E3826 (formerly Bay Trail)Submitted by: Ben Pye <[email protected]>Reviewed by: gonzoObtained from: DragonflyBSD (a4549657 by Imre Vadász)MFC after: 2 weeksDifferential Revision: https://reviews.freebsd.org/D13654
[ig4] Add ACPI platform support for ig4 driverAdd ACPI part for ig4 driver to make it work on Intel BayTrail SoC whereig4 device is available only through ACPIReviewed by: avgMFC after: 1 week
[ig4] Add ACPI platform support for ig4 driverAdd ACPI part for ig4 driver to make it work on Intel BayTrail SoC whereig4 device is available only through ACPIReviewed by: avgMFC after: 1 weekDifferential Revision: https://reviews.freebsd.org/D8742
Add Braswell PCI IDs for Intel CherryviewSubmitted by: Johannes Lundberg <yohanesu75 at gmail.com>Reviewed by: jhbDifferential Revision: https://reviews.freebsd.org/D8861
fix typo in a commentMFC after: 5 weeksX-MFC with: r308219
ichiic/ig4: completely disengage from smbusMFC after: 5 weeks
add iic interface to ig4 driver, move isl and cyapa to iicbusSummary:The hardware does not expose a classic SMBus interface.Instead it has a lower level interface that can express a far richerI2
add iic interface to ig4 driver, move isl and cyapa to iicbusSummary:The hardware does not expose a classic SMBus interface.Instead it has a lower level interface that can express a far richerI2C protocol than what smbus offers. However, the interface does notprovide a way to explicitly generate the I2C stop and start conditions.It's only possible to request that the stop condition is generatedafter transferring the next byte in either direction. So, at leastone data byte must always be transferred.Thus, some I2C sequences are impossible to generate, e.g., an equivalentof smbus quick command (<start>-<slave addr>-<r/w bit>-<stop>).At the same time isl(4) and cyapa(4) are moved to iicbus and now they useiicbus_transfer for communication. Previously they used smbus_trans()interface that is not defined by the SMBus protocol and was implementedonly by ig4(4). In fact, that interface was impossible to implementfor the typical SMBus controllers like intpm(4) or ichsmb(4) wherea type of the SMBus command must be programmed.The plan is to remove smbus_trans() and all its uses.As an aside, the smbus_trans() method deviates from the standard,but perhaps backwards, FreeBSD convention of using 8-bit slaveaddresses (shifted by 1 bit to the left). The method expects7-bit addresses.There is a user facing consequence of this change.A user must now provide device hints for isl and cyapa that specify an iicbus to useand a slave address on it.On Chromebook hardware where isl and cyapa devices are commonly foundit is also possible to use a new chromebook_platform(4) driver thatautomatically configures isl and cyapa devices. There is no need toprovide the device hints in that case,Right now smbus(4) driver tries to discover all slaves on the bus.That is very dangerous. Fortunately, the probing code uses smbus_trans()to do its job, so it is really enabled for ig4 only.The plan is to remove that auto-probing code and smbus_trans().Tested by: grembo, Matthias Apitz <[email protected]> (w/o chromebook_platform)Discussed with: grembo, impReviewed by: wblock (docs)MFC after: 1 monthRelnotes: yesDifferential Revision: https://reviews.freebsd.org/D8172
Fix ig4 operation for certain machinesSome machine BIOSes use the I2C bus and leave it in a state that causesinterrupts to not work properly due to a pending interrupt having beenlatched.Refact
Fix ig4 operation for certain machinesSome machine BIOSes use the I2C bus and leave it in a state that causesinterrupts to not work properly due to a pending interrupt having beenlatched.Refactor the code a bit to clear pending interrupts when I2C is enabled.This fixes the primary problem.Also fix a possible race condition in the interrupt handler where theinterrupt was being cleared after reading the status instead of before.Reported by: pfgReviewed by: jhbApproved by: jhbObtained from: DragonFly BSDDifferential Revision: https://reviews.freebsd.org/D6586
sys/dev: minor spelling fixes.Most affect comments, very few have user-visible effects.
Use DELAY() instead of sleeping during boot-time attach.Tested by: Wolfgang Zenker <[email protected]>
Allow building a kernel with baked in ig4, isl and cyapa drivers.Also addresses jhb's remarks on D2811 and D3068.PR: 202059Differential Revision: https://reviews.freebsd.org/D3351Reviewed by:
Allow building a kernel with baked in ig4, isl and cyapa drivers.Also addresses jhb's remarks on D2811 and D3068.PR: 202059Differential Revision: https://reviews.freebsd.org/D3351Reviewed by: jhbApproved by: jhb
Protect smbus ioctls in ig4 driver using a shared lock.Document locking semantics.Differential Revision: https://reviews.freebsd.org/D2744Reviewed by: jah, kibApproved by: kib
ig4 - Intel fourth gen integrated I2C SMBus driver.Differential Revision: https://reviews.freebsd.org/D2372Reviewed by: jhb, wblock, adrianApproved by: jhb, wblockRelnotes: yes