Skip to content

Commit

Permalink
mfd: ioc3: Add driver for SGI IOC3 chip
Browse files Browse the repository at this point in the history
SGI IOC3 chip has integrated ethernet, keyboard and mouse interface.
It also supports connecting a SuperIO chip for serial and parallel
interfaces. IOC3 is used inside various SGI systemboards and add-on
cards with different equipped external interfaces.

Support for ethernet and serial interfaces were implemented inside
the network driver. This patchset moves out the not network related
parts to a new MFD driver, which takes care of card detection,
setup of platform devices and interrupt distribution for the subdevices.

Serial portion: Acked-by: Greg Kroah-Hartman <[email protected]>
Acked-for-MFD-by: Lee Jones <[email protected]>
Network part: Reviewed-by: Jakub Kicinski <[email protected]>
Network part: Acked-by: Jakub Kicinski <[email protected]>

Signed-off-by: Thomas Bogendoerfer <[email protected]>
Signed-off-by: Paul Burton <[email protected]>
Cc: James Hogan <[email protected]>
Cc: David S. Miller <[email protected]>
Cc: Jiri Slaby <[email protected]>
Cc: [email protected]
Cc: [email protected]
Cc: [email protected]
Cc: [email protected]
  • Loading branch information
Thomas Bogendoerfer authored and paulburton committed Jan 9, 2020
1 parent 10cf830 commit 0ce5ebd
Show file tree
Hide file tree
Showing 9 changed files with 893 additions and 481 deletions.
20 changes: 0 additions & 20 deletions arch/mips/sgi-ip27/ip27-timer.c
Original file line number Diff line number Diff line change
Expand Up @@ -168,23 +168,3 @@ void hub_rtc_init(nasid_t nasid)
LOCAL_HUB_S(PI_RT_PEND_B, 0);
}
}

static int __init sgi_ip27_rtc_devinit(void)
{
struct resource res;

memset(&res, 0, sizeof(res));
res.start = XPHYSADDR(KL_CONFIG_CH_CONS_INFO(master_nasid)->memory_base +
IOC3_BYTEBUS_DEV0);
res.end = res.start + 32767;
res.flags = IORESOURCE_MEM;

return IS_ERR(platform_device_register_simple("rtc-m48t35", -1,
&res, 1));
}

/*
* kludge make this a device_initcall after ioc3 resource conflicts
* are resolved
*/
late_initcall(sgi_ip27_rtc_devinit);
13 changes: 13 additions & 0 deletions drivers/mfd/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -2004,5 +2004,18 @@ config RAVE_SP_CORE
Select this to get support for the Supervisory Processor
device found on several devices in RAVE line of hardware.

config SGI_MFD_IOC3
tristate "SGI IOC3 core driver"
depends on PCI && MIPS && 64BIT
select MFD_CORE
help
This option enables basic support for the SGI IOC3-based
controller cards. This option does not enable any specific
functions on such a card, but provides necessary infrastructure
for other drivers to utilize.

If you have an SGI Origin, Octane, or a PCI IOC3 card,
then say Y. Otherwise say N.

endmenu
endif
1 change: 1 addition & 0 deletions drivers/mfd/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -255,3 +255,4 @@ obj-$(CONFIG_MFD_ROHM_BD70528) += rohm-bd70528.o
obj-$(CONFIG_MFD_ROHM_BD718XX) += rohm-bd718x7.o
obj-$(CONFIG_MFD_STMFX) += stmfx.o

obj-$(CONFIG_SGI_MFD_IOC3) += ioc3.o
Loading

0 comments on commit 0ce5ebd

Please sign in to comment.