Merge tag 'v5.4-rc5' into next
Sync up with mainline.
This commit is contained in:
38
include/linux/platform_data/cros_ec_chardev.h
Normal file
38
include/linux/platform_data/cros_ec_chardev.h
Normal file
@@ -0,0 +1,38 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0 */
|
||||
/*
|
||||
* ChromeOS EC device interface.
|
||||
*
|
||||
* Copyright (C) 2014 Google, Inc.
|
||||
*/
|
||||
|
||||
#ifndef _UAPI_LINUX_CROS_EC_DEV_H_
|
||||
#define _UAPI_LINUX_CROS_EC_DEV_H_
|
||||
|
||||
#include <linux/bits.h>
|
||||
#include <linux/ioctl.h>
|
||||
#include <linux/types.h>
|
||||
|
||||
#include <linux/platform_data/cros_ec_commands.h>
|
||||
|
||||
#define CROS_EC_DEV_VERSION "1.0.0"
|
||||
|
||||
/**
|
||||
* struct cros_ec_readmem - Struct used to read mapped memory.
|
||||
* @offset: Within EC_LPC_ADDR_MEMMAP region.
|
||||
* @bytes: Number of bytes to read. Zero means "read a string" (including '\0')
|
||||
* At most only EC_MEMMAP_SIZE bytes can be read.
|
||||
* @buffer: Where to store the result. The ioctl returns the number of bytes
|
||||
* read or negative on error.
|
||||
*/
|
||||
struct cros_ec_readmem {
|
||||
uint32_t offset;
|
||||
uint32_t bytes;
|
||||
uint8_t buffer[EC_MEMMAP_SIZE];
|
||||
};
|
||||
|
||||
#define CROS_EC_DEV_IOC 0xEC
|
||||
#define CROS_EC_DEV_IOCXCMD _IOWR(CROS_EC_DEV_IOC, 0, struct cros_ec_command)
|
||||
#define CROS_EC_DEV_IOCRDMEM _IOWR(CROS_EC_DEV_IOC, 1, struct cros_ec_readmem)
|
||||
#define CROS_EC_DEV_IOCEVENTMASK _IO(CROS_EC_DEV_IOC, 2)
|
||||
|
||||
#endif /* _CROS_EC_DEV_H_ */
|
5725
include/linux/platform_data/cros_ec_commands.h
Normal file
5725
include/linux/platform_data/cros_ec_commands.h
Normal file
File diff suppressed because it is too large
Load Diff
319
include/linux/platform_data/cros_ec_proto.h
Normal file
319
include/linux/platform_data/cros_ec_proto.h
Normal file
@@ -0,0 +1,319 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0 */
|
||||
/*
|
||||
* ChromeOS Embedded Controller protocol interface.
|
||||
*
|
||||
* Copyright (C) 2012 Google, Inc
|
||||
*/
|
||||
|
||||
#ifndef __LINUX_CROS_EC_PROTO_H
|
||||
#define __LINUX_CROS_EC_PROTO_H
|
||||
|
||||
#include <linux/device.h>
|
||||
#include <linux/mutex.h>
|
||||
#include <linux/notifier.h>
|
||||
|
||||
#include <linux/platform_data/cros_ec_commands.h>
|
||||
|
||||
#define CROS_EC_DEV_NAME "cros_ec"
|
||||
#define CROS_EC_DEV_FP_NAME "cros_fp"
|
||||
#define CROS_EC_DEV_ISH_NAME "cros_ish"
|
||||
#define CROS_EC_DEV_PD_NAME "cros_pd"
|
||||
#define CROS_EC_DEV_SCP_NAME "cros_scp"
|
||||
#define CROS_EC_DEV_TP_NAME "cros_tp"
|
||||
|
||||
/*
|
||||
* The EC is unresponsive for a time after a reboot command. Add a
|
||||
* simple delay to make sure that the bus stays locked.
|
||||
*/
|
||||
#define EC_REBOOT_DELAY_MS 50
|
||||
|
||||
/*
|
||||
* Max bus-specific overhead incurred by request/responses.
|
||||
* I2C requires 1 additional byte for requests.
|
||||
* I2C requires 2 additional bytes for responses.
|
||||
* SPI requires up to 32 additional bytes for responses.
|
||||
*/
|
||||
#define EC_PROTO_VERSION_UNKNOWN 0
|
||||
#define EC_MAX_REQUEST_OVERHEAD 1
|
||||
#define EC_MAX_RESPONSE_OVERHEAD 32
|
||||
|
||||
/*
|
||||
* Command interface between EC and AP, for LPC, I2C and SPI interfaces.
|
||||
*/
|
||||
enum {
|
||||
EC_MSG_TX_HEADER_BYTES = 3,
|
||||
EC_MSG_TX_TRAILER_BYTES = 1,
|
||||
EC_MSG_TX_PROTO_BYTES = EC_MSG_TX_HEADER_BYTES +
|
||||
EC_MSG_TX_TRAILER_BYTES,
|
||||
EC_MSG_RX_PROTO_BYTES = 3,
|
||||
|
||||
/* Max length of messages for proto 2*/
|
||||
EC_PROTO2_MSG_BYTES = EC_PROTO2_MAX_PARAM_SIZE +
|
||||
EC_MSG_TX_PROTO_BYTES,
|
||||
|
||||
EC_MAX_MSG_BYTES = 64 * 1024,
|
||||
};
|
||||
|
||||
/**
|
||||
* struct cros_ec_command - Information about a ChromeOS EC command.
|
||||
* @version: Command version number (often 0).
|
||||
* @command: Command to send (EC_CMD_...).
|
||||
* @outsize: Outgoing length in bytes.
|
||||
* @insize: Max number of bytes to accept from the EC.
|
||||
* @result: EC's response to the command (separate from communication failure).
|
||||
* @data: Where to put the incoming data from EC and outgoing data to EC.
|
||||
*/
|
||||
struct cros_ec_command {
|
||||
uint32_t version;
|
||||
uint32_t command;
|
||||
uint32_t outsize;
|
||||
uint32_t insize;
|
||||
uint32_t result;
|
||||
uint8_t data[0];
|
||||
};
|
||||
|
||||
/**
|
||||
* struct cros_ec_device - Information about a ChromeOS EC device.
|
||||
* @phys_name: Name of physical comms layer (e.g. 'i2c-4').
|
||||
* @dev: Device pointer for physical comms device
|
||||
* @was_wake_device: True if this device was set to wake the system from
|
||||
* sleep at the last suspend.
|
||||
* @cros_class: The class structure for this device.
|
||||
* @cmd_readmem: Direct read of the EC memory-mapped region, if supported.
|
||||
* @offset: Is within EC_LPC_ADDR_MEMMAP region.
|
||||
* @bytes: Number of bytes to read. zero means "read a string" (including
|
||||
* the trailing '\0'). At most only EC_MEMMAP_SIZE bytes can be
|
||||
* read. Caller must ensure that the buffer is large enough for the
|
||||
* result when reading a string.
|
||||
* @max_request: Max size of message requested.
|
||||
* @max_response: Max size of message response.
|
||||
* @max_passthru: Max sice of passthru message.
|
||||
* @proto_version: The protocol version used for this device.
|
||||
* @priv: Private data.
|
||||
* @irq: Interrupt to use.
|
||||
* @id: Device id.
|
||||
* @din: Input buffer (for data from EC). This buffer will always be
|
||||
* dword-aligned and include enough space for up to 7 word-alignment
|
||||
* bytes also, so we can ensure that the body of the message is always
|
||||
* dword-aligned (64-bit). We use this alignment to keep ARM and x86
|
||||
* happy. Probably word alignment would be OK, there might be a small
|
||||
* performance advantage to using dword.
|
||||
* @dout: Output buffer (for data to EC). This buffer will always be
|
||||
* dword-aligned and include enough space for up to 7 word-alignment
|
||||
* bytes also, so we can ensure that the body of the message is always
|
||||
* dword-aligned (64-bit). We use this alignment to keep ARM and x86
|
||||
* happy. Probably word alignment would be OK, there might be a small
|
||||
* performance advantage to using dword.
|
||||
* @din_size: Size of din buffer to allocate (zero to use static din).
|
||||
* @dout_size: Size of dout buffer to allocate (zero to use static dout).
|
||||
* @wake_enabled: True if this device can wake the system from sleep.
|
||||
* @suspended: True if this device had been suspended.
|
||||
* @cmd_xfer: Send command to EC and get response.
|
||||
* Returns the number of bytes received if the communication
|
||||
* succeeded, but that doesn't mean the EC was happy with the
|
||||
* command. The caller should check msg.result for the EC's result
|
||||
* code.
|
||||
* @pkt_xfer: Send packet to EC and get response.
|
||||
* @lock: One transaction at a time.
|
||||
* @mkbp_event_supported: True if this EC supports the MKBP event protocol.
|
||||
* @host_sleep_v1: True if this EC supports the sleep v1 command.
|
||||
* @event_notifier: Interrupt event notifier for transport devices.
|
||||
* @event_data: Raw payload transferred with the MKBP event.
|
||||
* @event_size: Size in bytes of the event data.
|
||||
* @host_event_wake_mask: Mask of host events that cause wake from suspend.
|
||||
* @ec: The platform_device used by the mfd driver to interface with the
|
||||
* main EC.
|
||||
* @pd: The platform_device used by the mfd driver to interface with the
|
||||
* PD behind an EC.
|
||||
*/
|
||||
struct cros_ec_device {
|
||||
/* These are used by other drivers that want to talk to the EC */
|
||||
const char *phys_name;
|
||||
struct device *dev;
|
||||
bool was_wake_device;
|
||||
struct class *cros_class;
|
||||
int (*cmd_readmem)(struct cros_ec_device *ec, unsigned int offset,
|
||||
unsigned int bytes, void *dest);
|
||||
|
||||
/* These are used to implement the platform-specific interface */
|
||||
u16 max_request;
|
||||
u16 max_response;
|
||||
u16 max_passthru;
|
||||
u16 proto_version;
|
||||
void *priv;
|
||||
int irq;
|
||||
u8 *din;
|
||||
u8 *dout;
|
||||
int din_size;
|
||||
int dout_size;
|
||||
bool wake_enabled;
|
||||
bool suspended;
|
||||
int (*cmd_xfer)(struct cros_ec_device *ec,
|
||||
struct cros_ec_command *msg);
|
||||
int (*pkt_xfer)(struct cros_ec_device *ec,
|
||||
struct cros_ec_command *msg);
|
||||
struct mutex lock;
|
||||
bool mkbp_event_supported;
|
||||
bool host_sleep_v1;
|
||||
struct blocking_notifier_head event_notifier;
|
||||
|
||||
struct ec_response_get_next_event_v1 event_data;
|
||||
int event_size;
|
||||
u32 host_event_wake_mask;
|
||||
u32 last_resume_result;
|
||||
|
||||
/* The platform devices used by the mfd driver */
|
||||
struct platform_device *ec;
|
||||
struct platform_device *pd;
|
||||
};
|
||||
|
||||
/**
|
||||
* struct cros_ec_sensor_platform - ChromeOS EC sensor platform information.
|
||||
* @sensor_num: Id of the sensor, as reported by the EC.
|
||||
*/
|
||||
struct cros_ec_sensor_platform {
|
||||
u8 sensor_num;
|
||||
};
|
||||
|
||||
/**
|
||||
* struct cros_ec_platform - ChromeOS EC platform information.
|
||||
* @ec_name: Name of EC device (e.g. 'cros-ec', 'cros-pd', ...)
|
||||
* used in /dev/ and sysfs.
|
||||
* @cmd_offset: Offset to apply for each command. Set when
|
||||
* registering a device behind another one.
|
||||
*/
|
||||
struct cros_ec_platform {
|
||||
const char *ec_name;
|
||||
u16 cmd_offset;
|
||||
};
|
||||
|
||||
/**
|
||||
* cros_ec_suspend() - Handle a suspend operation for the ChromeOS EC device.
|
||||
* @ec_dev: Device to suspend.
|
||||
*
|
||||
* This can be called by drivers to handle a suspend event.
|
||||
*
|
||||
* Return: 0 on success or negative error code.
|
||||
*/
|
||||
int cros_ec_suspend(struct cros_ec_device *ec_dev);
|
||||
|
||||
/**
|
||||
* cros_ec_resume() - Handle a resume operation for the ChromeOS EC device.
|
||||
* @ec_dev: Device to resume.
|
||||
*
|
||||
* This can be called by drivers to handle a resume event.
|
||||
*
|
||||
* Return: 0 on success or negative error code.
|
||||
*/
|
||||
int cros_ec_resume(struct cros_ec_device *ec_dev);
|
||||
|
||||
/**
|
||||
* cros_ec_prepare_tx() - Prepare an outgoing message in the output buffer.
|
||||
* @ec_dev: Device to register.
|
||||
* @msg: Message to write.
|
||||
*
|
||||
* This is intended to be used by all ChromeOS EC drivers, but at present
|
||||
* only SPI uses it. Once LPC uses the same protocol it can start using it.
|
||||
* I2C could use it now, with a refactor of the existing code.
|
||||
*
|
||||
* Return: 0 on success or negative error code.
|
||||
*/
|
||||
int cros_ec_prepare_tx(struct cros_ec_device *ec_dev,
|
||||
struct cros_ec_command *msg);
|
||||
|
||||
/**
|
||||
* cros_ec_check_result() - Check ec_msg->result.
|
||||
* @ec_dev: EC device.
|
||||
* @msg: Message to check.
|
||||
*
|
||||
* This is used by ChromeOS EC drivers to check the ec_msg->result for
|
||||
* errors and to warn about them.
|
||||
*
|
||||
* Return: 0 on success or negative error code.
|
||||
*/
|
||||
int cros_ec_check_result(struct cros_ec_device *ec_dev,
|
||||
struct cros_ec_command *msg);
|
||||
|
||||
/**
|
||||
* cros_ec_cmd_xfer() - Send a command to the ChromeOS EC.
|
||||
* @ec_dev: EC device.
|
||||
* @msg: Message to write.
|
||||
*
|
||||
* Call this to send a command to the ChromeOS EC. This should be used
|
||||
* instead of calling the EC's cmd_xfer() callback directly.
|
||||
*
|
||||
* Return: 0 on success or negative error code.
|
||||
*/
|
||||
int cros_ec_cmd_xfer(struct cros_ec_device *ec_dev,
|
||||
struct cros_ec_command *msg);
|
||||
|
||||
/**
|
||||
* cros_ec_cmd_xfer_status() - Send a command to the ChromeOS EC.
|
||||
* @ec_dev: EC device.
|
||||
* @msg: Message to write.
|
||||
*
|
||||
* This function is identical to cros_ec_cmd_xfer, except it returns success
|
||||
* status only if both the command was transmitted successfully and the EC
|
||||
* replied with success status. It's not necessary to check msg->result when
|
||||
* using this function.
|
||||
*
|
||||
* Return: The number of bytes transferred on success or negative error code.
|
||||
*/
|
||||
int cros_ec_cmd_xfer_status(struct cros_ec_device *ec_dev,
|
||||
struct cros_ec_command *msg);
|
||||
|
||||
/**
|
||||
* cros_ec_register() - Register a new ChromeOS EC, using the provided info.
|
||||
* @ec_dev: Device to register.
|
||||
*
|
||||
* Before calling this, allocate a pointer to a new device and then fill
|
||||
* in all the fields up to the --private-- marker.
|
||||
*
|
||||
* Return: 0 on success or negative error code.
|
||||
*/
|
||||
int cros_ec_register(struct cros_ec_device *ec_dev);
|
||||
|
||||
/**
|
||||
* cros_ec_unregister() - Remove a ChromeOS EC.
|
||||
* @ec_dev: Device to unregister.
|
||||
*
|
||||
* Call this to deregister a ChromeOS EC, then clean up any private data.
|
||||
*
|
||||
* Return: 0 on success or negative error code.
|
||||
*/
|
||||
int cros_ec_unregister(struct cros_ec_device *ec_dev);
|
||||
|
||||
/**
|
||||
* cros_ec_query_all() - Query the protocol version supported by the
|
||||
* ChromeOS EC.
|
||||
* @ec_dev: Device to register.
|
||||
*
|
||||
* Return: 0 on success or negative error code.
|
||||
*/
|
||||
int cros_ec_query_all(struct cros_ec_device *ec_dev);
|
||||
|
||||
/**
|
||||
* cros_ec_get_next_event() - Fetch next event from the ChromeOS EC.
|
||||
* @ec_dev: Device to fetch event from.
|
||||
* @wake_event: Pointer to a bool set to true upon return if the event might be
|
||||
* treated as a wake event. Ignored if null.
|
||||
*
|
||||
* Return: negative error code on errors; 0 for no data; or else number of
|
||||
* bytes received (i.e., an event was retrieved successfully). Event types are
|
||||
* written out to @ec_dev->event_data.event_type on success.
|
||||
*/
|
||||
int cros_ec_get_next_event(struct cros_ec_device *ec_dev, bool *wake_event);
|
||||
|
||||
/**
|
||||
* cros_ec_get_host_event() - Return a mask of event set by the ChromeOS EC.
|
||||
* @ec_dev: Device to fetch event from.
|
||||
*
|
||||
* When MKBP is supported, when the EC raises an interrupt, we collect the
|
||||
* events raised and call the functions in the ec notifier. This function
|
||||
* is a helper to know which events are raised.
|
||||
*
|
||||
* Return: 0 on error or non-zero bitmask of one or more EC_HOST_EVENT_*.
|
||||
*/
|
||||
u32 cros_ec_get_host_event(struct cros_ec_device *ec_dev);
|
||||
|
||||
#endif /* __LINUX_CROS_EC_PROTO_H */
|
@@ -1,29 +0,0 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0-or-later */
|
||||
/*
|
||||
* db8500_thermal.h - DB8500 Thermal Management Implementation
|
||||
*
|
||||
* Copyright (C) 2012 ST-Ericsson
|
||||
* Copyright (C) 2012 Linaro Ltd.
|
||||
*
|
||||
* Author: Hongbo Zhang <hongbo.zhang@linaro.com>
|
||||
*/
|
||||
|
||||
#ifndef _DB8500_THERMAL_H_
|
||||
#define _DB8500_THERMAL_H_
|
||||
|
||||
#include <linux/thermal.h>
|
||||
|
||||
#define COOLING_DEV_MAX 8
|
||||
|
||||
struct db8500_trip_point {
|
||||
unsigned long temp;
|
||||
enum thermal_trip_type type;
|
||||
char cdev_name[COOLING_DEV_MAX][THERMAL_NAME_LENGTH];
|
||||
};
|
||||
|
||||
struct db8500_thsens_platform_data {
|
||||
struct db8500_trip_point trip_points[THERMAL_MAX_TRIPS];
|
||||
int num_trips;
|
||||
};
|
||||
|
||||
#endif /* _DB8500_THERMAL_H_ */
|
110
include/linux/platform_data/dma-iop32x.h
Normal file
110
include/linux/platform_data/dma-iop32x.h
Normal file
@@ -0,0 +1,110 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0-only */
|
||||
/*
|
||||
* Copyright © 2006, Intel Corporation.
|
||||
*/
|
||||
#ifndef IOP_ADMA_H
|
||||
#define IOP_ADMA_H
|
||||
#include <linux/types.h>
|
||||
#include <linux/dmaengine.h>
|
||||
#include <linux/interrupt.h>
|
||||
|
||||
#define IOP_ADMA_SLOT_SIZE 32
|
||||
#define IOP_ADMA_THRESHOLD 4
|
||||
#ifdef DEBUG
|
||||
#define IOP_PARANOIA 1
|
||||
#else
|
||||
#define IOP_PARANOIA 0
|
||||
#endif
|
||||
#define iop_paranoia(x) BUG_ON(IOP_PARANOIA && (x))
|
||||
|
||||
#define DMA0_ID 0
|
||||
#define DMA1_ID 1
|
||||
#define AAU_ID 2
|
||||
|
||||
/**
|
||||
* struct iop_adma_device - internal representation of an ADMA device
|
||||
* @pdev: Platform device
|
||||
* @id: HW ADMA Device selector
|
||||
* @dma_desc_pool: base of DMA descriptor region (DMA address)
|
||||
* @dma_desc_pool_virt: base of DMA descriptor region (CPU address)
|
||||
* @common: embedded struct dma_device
|
||||
*/
|
||||
struct iop_adma_device {
|
||||
struct platform_device *pdev;
|
||||
int id;
|
||||
dma_addr_t dma_desc_pool;
|
||||
void *dma_desc_pool_virt;
|
||||
struct dma_device common;
|
||||
};
|
||||
|
||||
/**
|
||||
* struct iop_adma_chan - internal representation of an ADMA device
|
||||
* @pending: allows batching of hardware operations
|
||||
* @lock: serializes enqueue/dequeue operations to the slot pool
|
||||
* @mmr_base: memory mapped register base
|
||||
* @chain: device chain view of the descriptors
|
||||
* @device: parent device
|
||||
* @common: common dmaengine channel object members
|
||||
* @last_used: place holder for allocation to continue from where it left off
|
||||
* @all_slots: complete domain of slots usable by the channel
|
||||
* @slots_allocated: records the actual size of the descriptor slot pool
|
||||
* @irq_tasklet: bottom half where iop_adma_slot_cleanup runs
|
||||
*/
|
||||
struct iop_adma_chan {
|
||||
int pending;
|
||||
spinlock_t lock; /* protects the descriptor slot pool */
|
||||
void __iomem *mmr_base;
|
||||
struct list_head chain;
|
||||
struct iop_adma_device *device;
|
||||
struct dma_chan common;
|
||||
struct iop_adma_desc_slot *last_used;
|
||||
struct list_head all_slots;
|
||||
int slots_allocated;
|
||||
struct tasklet_struct irq_tasklet;
|
||||
};
|
||||
|
||||
/**
|
||||
* struct iop_adma_desc_slot - IOP-ADMA software descriptor
|
||||
* @slot_node: node on the iop_adma_chan.all_slots list
|
||||
* @chain_node: node on the op_adma_chan.chain list
|
||||
* @hw_desc: virtual address of the hardware descriptor chain
|
||||
* @phys: hardware address of the hardware descriptor chain
|
||||
* @group_head: first operation in a transaction
|
||||
* @slot_cnt: total slots used in an transaction (group of operations)
|
||||
* @slots_per_op: number of slots per operation
|
||||
* @idx: pool index
|
||||
* @tx_list: list of descriptors that are associated with one operation
|
||||
* @async_tx: support for the async_tx api
|
||||
* @group_list: list of slots that make up a multi-descriptor transaction
|
||||
* for example transfer lengths larger than the supported hw max
|
||||
* @xor_check_result: result of zero sum
|
||||
* @crc32_result: result crc calculation
|
||||
*/
|
||||
struct iop_adma_desc_slot {
|
||||
struct list_head slot_node;
|
||||
struct list_head chain_node;
|
||||
void *hw_desc;
|
||||
struct iop_adma_desc_slot *group_head;
|
||||
u16 slot_cnt;
|
||||
u16 slots_per_op;
|
||||
u16 idx;
|
||||
struct list_head tx_list;
|
||||
struct dma_async_tx_descriptor async_tx;
|
||||
union {
|
||||
u32 *xor_check_result;
|
||||
u32 *crc32_result;
|
||||
u32 *pq_check_result;
|
||||
};
|
||||
};
|
||||
|
||||
struct iop_adma_platform_data {
|
||||
int hw_id;
|
||||
dma_cap_mask_t cap_mask;
|
||||
size_t pool_size;
|
||||
};
|
||||
|
||||
#define to_iop_sw_desc(addr_hw_desc) \
|
||||
container_of(addr_hw_desc, struct iop_adma_desc_slot, hw_desc)
|
||||
#define iop_hw_desc_slot_idx(hw_desc, idx) \
|
||||
( (void *) (((unsigned long) hw_desc) + ((idx) << 5)) )
|
||||
#endif
|
@@ -1,43 +0,0 @@
|
||||
/**
|
||||
* dwc3-omap.h - OMAP Specific Glue layer, header.
|
||||
*
|
||||
* Copyright (C) 2010-2011 Texas Instruments Incorporated - http://www.ti.com
|
||||
* All rights reserved.
|
||||
*
|
||||
* Author: Felipe Balbi <balbi@ti.com>
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
* 1. Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions, and the following disclaimer,
|
||||
* without modification.
|
||||
* 2. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the distribution.
|
||||
* 3. The names of the above-listed copyright holders may not be used
|
||||
* to endorse or promote products derived from this software without
|
||||
* specific prior written permission.
|
||||
*
|
||||
* ALTERNATIVELY, this software may be distributed under the terms of the
|
||||
* GNU General Public License ("GPL") version 2, as published by the Free
|
||||
* Software Foundation.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
|
||||
* IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
|
||||
* THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
||||
* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
|
||||
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
|
||||
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
|
||||
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
|
||||
* PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
|
||||
* LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
|
||||
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
enum dwc3_omap_utmi_mode {
|
||||
DWC3_OMAP_UTMI_MODE_UNKNOWN = 0,
|
||||
DWC3_OMAP_UTMI_MODE_HW,
|
||||
DWC3_OMAP_UTMI_MODE_SW,
|
||||
};
|
@@ -1,13 +0,0 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0-only */
|
||||
/*
|
||||
* Copyright (c) 2005 Sascha Hauer <s.hauer@pengutronix.de>, Pengutronix
|
||||
*/
|
||||
|
||||
#ifndef __ETH_NETX_H
|
||||
#define __ETH_NETX_H
|
||||
|
||||
struct netxeth_platform_data {
|
||||
unsigned int xcno; /* number of xmac/xpec engine this eth uses */
|
||||
};
|
||||
|
||||
#endif
|
@@ -50,7 +50,4 @@ struct htc_egpio_platform_data {
|
||||
int num_chips;
|
||||
};
|
||||
|
||||
/* Determine the wakeup irq, to be called during early resume */
|
||||
extern int htc_egpio_get_wakeup_irq(struct device *dev);
|
||||
|
||||
#endif
|
||||
|
@@ -13,4 +13,8 @@ struct iommu_platform_data {
|
||||
const char *reset_name;
|
||||
int (*assert_reset)(struct platform_device *pdev, const char *name);
|
||||
int (*deassert_reset)(struct platform_device *pdev, const char *name);
|
||||
int (*device_enable)(struct platform_device *pdev);
|
||||
int (*device_idle)(struct platform_device *pdev);
|
||||
int (*set_pwrdm_constraint)(struct platform_device *pdev, bool request,
|
||||
u8 *pwrst);
|
||||
};
|
||||
|
@@ -1,54 +0,0 @@
|
||||
/*
|
||||
* Platform data structure for netxbig LED driver
|
||||
*
|
||||
* This file is licensed under the terms of the GNU General Public
|
||||
* License version 2. This program is licensed "as is" without any
|
||||
* warranty of any kind, whether express or implied.
|
||||
*/
|
||||
|
||||
#ifndef __LEDS_KIRKWOOD_NETXBIG_H
|
||||
#define __LEDS_KIRKWOOD_NETXBIG_H
|
||||
|
||||
struct netxbig_gpio_ext {
|
||||
unsigned *addr;
|
||||
int num_addr;
|
||||
unsigned *data;
|
||||
int num_data;
|
||||
unsigned enable;
|
||||
};
|
||||
|
||||
enum netxbig_led_mode {
|
||||
NETXBIG_LED_OFF,
|
||||
NETXBIG_LED_ON,
|
||||
NETXBIG_LED_SATA,
|
||||
NETXBIG_LED_TIMER1,
|
||||
NETXBIG_LED_TIMER2,
|
||||
NETXBIG_LED_MODE_NUM,
|
||||
};
|
||||
|
||||
#define NETXBIG_LED_INVALID_MODE NETXBIG_LED_MODE_NUM
|
||||
|
||||
struct netxbig_led_timer {
|
||||
unsigned long delay_on;
|
||||
unsigned long delay_off;
|
||||
enum netxbig_led_mode mode;
|
||||
};
|
||||
|
||||
struct netxbig_led {
|
||||
const char *name;
|
||||
const char *default_trigger;
|
||||
int mode_addr;
|
||||
int *mode_val;
|
||||
int bright_addr;
|
||||
int bright_max;
|
||||
};
|
||||
|
||||
struct netxbig_led_platform_data {
|
||||
struct netxbig_gpio_ext *gpio_ext;
|
||||
struct netxbig_led_timer *timer;
|
||||
int num_timer;
|
||||
struct netxbig_led *leds;
|
||||
int num_leds;
|
||||
};
|
||||
|
||||
#endif /* __LEDS_KIRKWOOD_NETXBIG_H */
|
@@ -1,19 +0,0 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0-only */
|
||||
/*
|
||||
* Generic platform data for the NXP NCI NFC chips.
|
||||
*
|
||||
* Copyright (C) 2014 NXP Semiconductors All rights reserved.
|
||||
*
|
||||
* Authors: Clément Perrochaud <clement.perrochaud@nxp.com>
|
||||
*/
|
||||
|
||||
#ifndef _NXP_NCI_H_
|
||||
#define _NXP_NCI_H_
|
||||
|
||||
struct nxp_nci_nfc_platform_data {
|
||||
unsigned int gpio_en;
|
||||
unsigned int gpio_fw;
|
||||
unsigned int irq;
|
||||
};
|
||||
|
||||
#endif /* _NXP_NCI_H_ */
|
@@ -1,4 +1,8 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0 */
|
||||
|
||||
#ifndef _PINCTRL_SINGLE_H
|
||||
#define _PINCTRL_SINGLE_H
|
||||
|
||||
/**
|
||||
* irq: optional wake-up interrupt
|
||||
* rearm: optional soc specific rearm function
|
||||
@@ -11,3 +15,5 @@ struct pcs_pdata {
|
||||
int irq;
|
||||
void (*rearm)(void);
|
||||
};
|
||||
|
||||
#endif /* _PINCTRL_SINGLE_H */
|
||||
|
@@ -4,7 +4,7 @@
|
||||
*
|
||||
* Copyright (C) 2012 Guenter Roeck <linux@roeck-us.net>
|
||||
*
|
||||
* For further information, see the Documentation/spi/spi-sc18is602 file.
|
||||
* For further information, see the Documentation/spi/spi-sc18is602.rst file.
|
||||
*/
|
||||
|
||||
/**
|
||||
|
13
include/linux/platform_data/sgi-w1.h
Normal file
13
include/linux/platform_data/sgi-w1.h
Normal file
@@ -0,0 +1,13 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0 */
|
||||
/*
|
||||
* SGI One-Wire (W1) IP
|
||||
*/
|
||||
|
||||
#ifndef PLATFORM_DATA_SGI_W1_H
|
||||
#define PLATFORM_DATA_SGI_W1_H
|
||||
|
||||
struct sgi_w1_platform_data {
|
||||
char dev_id[64];
|
||||
};
|
||||
|
||||
#endif /* PLATFORM_DATA_SGI_W1_H */
|
@@ -1,29 +0,0 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0-only */
|
||||
/*
|
||||
* Copyright (c) 2009 Nuvoton technology corporation.
|
||||
*
|
||||
* Wan ZongShun <mcuos.com@gmail.com>
|
||||
*/
|
||||
|
||||
#ifndef __SPI_NUC900_H
|
||||
#define __SPI_NUC900_H
|
||||
|
||||
extern void mfp_set_groupg(struct device *dev, const char *subname);
|
||||
|
||||
struct nuc900_spi_info {
|
||||
unsigned int num_cs;
|
||||
unsigned int lsb;
|
||||
unsigned int txneg;
|
||||
unsigned int rxneg;
|
||||
unsigned int divider;
|
||||
unsigned int sleep;
|
||||
unsigned int txnum;
|
||||
unsigned int txbitlen;
|
||||
int bus_num;
|
||||
};
|
||||
|
||||
struct nuc900_spi_chip {
|
||||
unsigned char bits_per_word;
|
||||
};
|
||||
|
||||
#endif /* __SPI_NUC900_H */
|
@@ -1,3 +1,5 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0 */
|
||||
|
||||
#ifndef __TI_SYSC_DATA_H__
|
||||
#define __TI_SYSC_DATA_H__
|
||||
|
||||
@@ -47,6 +49,7 @@ struct sysc_regbits {
|
||||
s8 emufree_shift;
|
||||
};
|
||||
|
||||
#define SYSC_MODULE_QUIRK_SGX BIT(18)
|
||||
#define SYSC_MODULE_QUIRK_HDQ1W BIT(17)
|
||||
#define SYSC_MODULE_QUIRK_I2C BIT(16)
|
||||
#define SYSC_MODULE_QUIRK_WDT BIT(15)
|
||||
@@ -70,7 +73,7 @@ struct sysc_regbits {
|
||||
|
||||
/**
|
||||
* struct sysc_capabilities - capabilities for an interconnect target module
|
||||
*
|
||||
* @type: sysc type identifier for the module
|
||||
* @sysc_mask: bitmask of supported SYSCONFIG register bits
|
||||
* @regbits: bitmask of SYSCONFIG register bits
|
||||
* @mod_quirks: bitmask of module specific quirks
|
||||
@@ -85,8 +88,9 @@ struct sysc_capabilities {
|
||||
/**
|
||||
* struct sysc_config - configuration for an interconnect target module
|
||||
* @sysc_val: configured value for sysc register
|
||||
* @syss_mask: configured mask value for SYSSTATUS register
|
||||
* @midlemodes: bitmask of supported master idle modes
|
||||
* @sidlemodes: bitmask of supported master idle modes
|
||||
* @sidlemodes: bitmask of supported slave idle modes
|
||||
* @srst_udelay: optional delay needed after OCP soft reset
|
||||
* @quirks: bitmask of enabled quirks
|
||||
*/
|
||||
|
@@ -1,79 +0,0 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0-or-later */
|
||||
/* linux/include/asm/arch-nuc900/fb.h
|
||||
*
|
||||
* Copyright (c) 2008 Nuvoton technology corporation
|
||||
* All rights reserved.
|
||||
*
|
||||
* Changelog:
|
||||
*
|
||||
* 2008/08/26 vincen.zswan modify this file for LCD.
|
||||
*/
|
||||
|
||||
#ifndef __ASM_ARM_FB_H
|
||||
#define __ASM_ARM_FB_H
|
||||
|
||||
|
||||
|
||||
/* LCD Controller Hardware Desc */
|
||||
struct nuc900fb_hw {
|
||||
unsigned int lcd_dccs;
|
||||
unsigned int lcd_device_ctrl;
|
||||
unsigned int lcd_mpulcd_cmd;
|
||||
unsigned int lcd_int_cs;
|
||||
unsigned int lcd_crtc_size;
|
||||
unsigned int lcd_crtc_dend;
|
||||
unsigned int lcd_crtc_hr;
|
||||
unsigned int lcd_crtc_hsync;
|
||||
unsigned int lcd_crtc_vr;
|
||||
unsigned int lcd_va_baddr0;
|
||||
unsigned int lcd_va_baddr1;
|
||||
unsigned int lcd_va_fbctrl;
|
||||
unsigned int lcd_va_scale;
|
||||
unsigned int lcd_va_test;
|
||||
unsigned int lcd_va_win;
|
||||
unsigned int lcd_va_stuff;
|
||||
};
|
||||
|
||||
/* LCD Display Description */
|
||||
struct nuc900fb_display {
|
||||
/* LCD Image type */
|
||||
unsigned type;
|
||||
|
||||
/* LCD Screen Size */
|
||||
unsigned short width;
|
||||
unsigned short height;
|
||||
|
||||
/* LCD Screen Info */
|
||||
unsigned short xres;
|
||||
unsigned short yres;
|
||||
unsigned short bpp;
|
||||
|
||||
unsigned long pixclock;
|
||||
unsigned short left_margin;
|
||||
unsigned short right_margin;
|
||||
unsigned short hsync_len;
|
||||
unsigned short upper_margin;
|
||||
unsigned short lower_margin;
|
||||
unsigned short vsync_len;
|
||||
|
||||
/* hardware special register value */
|
||||
unsigned int dccs;
|
||||
unsigned int devctl;
|
||||
unsigned int fbctrl;
|
||||
unsigned int scale;
|
||||
};
|
||||
|
||||
struct nuc900fb_mach_info {
|
||||
struct nuc900fb_display *displays;
|
||||
unsigned num_displays;
|
||||
unsigned default_display;
|
||||
/* GPIO Setting Info */
|
||||
unsigned gpio_dir;
|
||||
unsigned gpio_dir_mask;
|
||||
unsigned gpio_data;
|
||||
unsigned gpio_data_mask;
|
||||
};
|
||||
|
||||
extern void __init nuc900_fb_set_platdata(struct nuc900fb_mach_info *);
|
||||
|
||||
#endif /* __ASM_ARM_FB_H */
|
@@ -12,7 +12,7 @@
|
||||
#define ASUS_WMI_METHODID_GPID 0x44495047 /* Get Panel ID?? (Resol) */
|
||||
#define ASUS_WMI_METHODID_QMOD 0x444F4D51 /* Quiet MODe */
|
||||
#define ASUS_WMI_METHODID_SPLV 0x4C425053 /* Set Panel Light Value */
|
||||
#define ASUS_WMI_METHODID_AGFN 0x4E464741 /* FaN? */
|
||||
#define ASUS_WMI_METHODID_AGFN 0x4E464741 /* Atk Generic FuNction */
|
||||
#define ASUS_WMI_METHODID_SFUN 0x4E554653 /* FUNCtionalities */
|
||||
#define ASUS_WMI_METHODID_SDSP 0x50534453 /* Set DiSPlay output */
|
||||
#define ASUS_WMI_METHODID_GDSP 0x50534447 /* Get DiSPlay output */
|
||||
@@ -72,7 +72,8 @@
|
||||
|
||||
/* Fan, Thermal */
|
||||
#define ASUS_WMI_DEVID_THERMAL_CTRL 0x00110011
|
||||
#define ASUS_WMI_DEVID_FAN_CTRL 0x00110012
|
||||
#define ASUS_WMI_DEVID_FAN_CTRL 0x00110012 /* deprecated */
|
||||
#define ASUS_WMI_DEVID_CPU_FAN_CTRL 0x00110013
|
||||
|
||||
/* Power */
|
||||
#define ASUS_WMI_DEVID_PROCESSOR_STATE 0x00120012
|
||||
@@ -80,6 +81,9 @@
|
||||
/* Deep S3 / Resume on LID open */
|
||||
#define ASUS_WMI_DEVID_LID_RESUME 0x00120031
|
||||
|
||||
/* Maximum charging percentage */
|
||||
#define ASUS_WMI_DEVID_RSOC 0x00120057
|
||||
|
||||
/* DSTS masks */
|
||||
#define ASUS_WMI_DSTS_STATUS_BIT 0x00000001
|
||||
#define ASUS_WMI_DSTS_UNKNOWN_BIT 0x00000002
|
||||
|
Reference in New Issue
Block a user