13cd83bacSCorey Minyard /* SPDX-License-Identifier: GPL-2.0+ */
23cd83bacSCorey Minyard 
33cd83bacSCorey Minyard /*
43cd83bacSCorey Minyard  * Generic code to add IPMI platform devices.
53cd83bacSCorey Minyard  */
63cd83bacSCorey Minyard 
73cd83bacSCorey Minyard #include <linux/ipmi.h>
83cd83bacSCorey Minyard 
93cd83bacSCorey Minyard struct ipmi_plat_data {
103cd83bacSCorey Minyard 	unsigned int type; /* si_type for si, SI_INVALID for others */
113cd83bacSCorey Minyard 	unsigned int space; /* addr_space for si, intf# for ssif. */
123cd83bacSCorey Minyard 	unsigned long addr;
133cd83bacSCorey Minyard 	unsigned int regspacing;
143cd83bacSCorey Minyard 	unsigned int regsize;
153cd83bacSCorey Minyard 	unsigned int regshift;
163cd83bacSCorey Minyard 	unsigned int irq;
173cd83bacSCorey Minyard 	unsigned int slave_addr;
183cd83bacSCorey Minyard 	enum ipmi_addr_src addr_source;
193cd83bacSCorey Minyard };
203cd83bacSCorey Minyard 
213cd83bacSCorey Minyard struct platform_device *ipmi_platform_add(const char *name, unsigned int inst,
223cd83bacSCorey Minyard 					  struct ipmi_plat_data *p);
23