linux-headers (unknown)

(root)/
include/
linux/
aspeed-lpc-ctrl.h
       1  /* SPDX-License-Identifier: GPL-2.0+ WITH Linux-syscall-note */
       2  /*
       3   * Copyright 2017 IBM Corp.
       4   *
       5   * This program is free software; you can redistribute it and/or
       6   * modify it under the terms of the GNU General Public License
       7   * as published by the Free Software Foundation; either version
       8   * 2 of the License, or (at your option) any later version.
       9   */
      10  
      11  #ifndef _LINUX_ASPEED_LPC_CTRL_H
      12  #define _LINUX_ASPEED_LPC_CTRL_H
      13  
      14  #include <linux/ioctl.h>
      15  #include <linux/types.h>
      16  
      17  /* Window types */
      18  #define ASPEED_LPC_CTRL_WINDOW_FLASH	1
      19  #define ASPEED_LPC_CTRL_WINDOW_MEMORY	2
      20  
      21  /*
      22   * This driver provides a window for the host to access a BMC resource
      23   * across the BMC <-> Host LPC bus.
      24   *
      25   * window_type: The BMC resource that the host will access through the
      26   * window. BMC flash and BMC RAM.
      27   *
      28   * window_id: For each window type there may be multiple windows,
      29   * these are referenced by ID.
      30   *
      31   * flags: Reserved for future use, this field is expected to be
      32   * zeroed.
      33   *
      34   * addr: Address on the host LPC bus that the specified window should
      35   * be mapped. This address must be power of two aligned.
      36   *
      37   * offset: Offset into the BMC window that should be mapped to the
      38   * host (at addr). This must be a multiple of size.
      39   *
      40   * size: The size of the mapping. The smallest possible size is 64K.
      41   * This must be power of two aligned.
      42   *
      43   */
      44  
      45  struct aspeed_lpc_ctrl_mapping {
      46  	__u8	window_type;
      47  	__u8	window_id;
      48  	__u16	flags;
      49  	__u32	addr;
      50  	__u32	offset;
      51  	__u32	size;
      52  };
      53  
      54  #define __ASPEED_LPC_CTRL_IOCTL_MAGIC	0xb2
      55  
      56  #define ASPEED_LPC_CTRL_IOCTL_GET_SIZE	_IOWR(__ASPEED_LPC_CTRL_IOCTL_MAGIC, \
      57  		0x00, struct aspeed_lpc_ctrl_mapping)
      58  
      59  #define ASPEED_LPC_CTRL_IOCTL_MAP	_IOW(__ASPEED_LPC_CTRL_IOCTL_MAGIC, \
      60  		0x01, struct aspeed_lpc_ctrl_mapping)
      61  
      62  #endif /* _LINUX_ASPEED_LPC_CTRL_H */