diff options
author | Sascha Hauer <s.hauer@pengutronix.de> | 2021-06-16 10:54:37 +0200 |
---|---|---|
committer | Sascha Hauer <s.hauer@pengutronix.de> | 2021-06-16 10:54:37 +0200 |
commit | bdc5a5d220edf8c8a2685f9f3f066798f521f9e8 (patch) | |
tree | 325523510c33b49db7980a33ac917b48f1eb856e /include | |
parent | a1ac6b5f64cda522ecdcb308a414b4aa21cc99be (diff) | |
parent | f8a6bc23fdfb5a6f17032fc73b3b7f3ca33c5d2a (diff) | |
download | barebox-bdc5a5d220edf8c8a2685f9f3f066798f521f9e8.tar.gz barebox-bdc5a5d220edf8c8a2685f9f3f066798f521f9e8.tar.xz |
Merge branch 'for-next/misc'
Diffstat (limited to 'include')
-rw-r--r-- | include/linux/regulator/machine.h | 207 | ||||
-rw-r--r-- | include/linux/regulator/of_regulator.h | 13 | ||||
-rw-r--r-- | include/of.h | 11 | ||||
-rw-r--r-- | include/usb/gadget.h | 10 |
4 files changed, 6 insertions, 235 deletions
diff --git a/include/linux/regulator/machine.h b/include/linux/regulator/machine.h deleted file mode 100644 index bb8bc7c4e0..0000000000 --- a/include/linux/regulator/machine.h +++ /dev/null @@ -1,207 +0,0 @@ -/* SPDX-License-Identifier: GPL-2.0-only */ -/* - * machine.h -- SoC Regulator support, machine/board driver API. - * - * Copyright (C) 2007, 2008 Wolfson Microelectronics PLC. - * - * Author: Liam Girdwood <lrg@slimlogic.co.uk> - * - * Regulator Machine/Board Interface. - */ - -#ifndef __LINUX_REGULATOR_MACHINE_H_ -#define __LINUX_REGULATOR_MACHINE_H_ - -#include <regulator.h> - -struct regulator; - -/* - * Regulator operation constraint flags. These flags are used to enable - * certain regulator operations and can be OR'ed together. - * - * VOLTAGE: Regulator output voltage can be changed by software on this - * board/machine. - * CURRENT: Regulator output current can be changed by software on this - * board/machine. - * MODE: Regulator operating mode can be changed by software on this - * board/machine. - * STATUS: Regulator can be enabled and disabled. - * DRMS: Dynamic Regulator Mode Switching is enabled for this regulator. - * BYPASS: Regulator can be put into bypass mode - */ - -#define REGULATOR_CHANGE_VOLTAGE 0x1 -#define REGULATOR_CHANGE_CURRENT 0x2 -#define REGULATOR_CHANGE_MODE 0x4 -#define REGULATOR_CHANGE_STATUS 0x8 -#define REGULATOR_CHANGE_DRMS 0x10 -#define REGULATOR_CHANGE_BYPASS 0x20 - -/* Regulator active discharge flags */ -enum regulator_active_discharge { - REGULATOR_ACTIVE_DISCHARGE_DEFAULT, - REGULATOR_ACTIVE_DISCHARGE_DISABLE, - REGULATOR_ACTIVE_DISCHARGE_ENABLE, -}; - -/** - * struct regulation_constraints - regulator operating constraints. - * - * This struct describes regulator and board/machine specific constraints. - * - * @name: Descriptive name for the constraints, used for display purposes. - * - * @min_uV: Smallest voltage consumers may set. - * @max_uV: Largest voltage consumers may set. - * @uV_offset: Offset applied to voltages from consumer to compensate for - * voltage drops. - * - * @min_uA: Smallest current consumers may set. - * @max_uA: Largest current consumers may set. - * @ilim_uA: Maximum input current. - * @system_load: Load that isn't captured by any consumer requests. - * - * @max_spread: Max possible spread between coupled regulators - * @valid_modes_mask: Mask of modes which may be configured by consumers. - * @valid_ops_mask: Operations which may be performed by consumers. - * - * @always_on: Set if the regulator should never be disabled. - * @boot_on: Set if the regulator is enabled when the system is initially - * started. If the regulator is not enabled by the hardware or - * bootloader then it will be enabled when the constraints are - * applied. - * @apply_uV: Apply the voltage constraint when initialising. - * @ramp_disable: Disable ramp delay when initialising or when setting voltage. - * @soft_start: Enable soft start so that voltage ramps slowly. - * @pull_down: Enable pull down when regulator is disabled. - * @over_current_protection: Auto disable on over current event. - * - * @input_uV: Input voltage for regulator when supplied by another regulator. - * - * @initial_mode: Mode to set at startup. - * @ramp_delay: Time to settle down after voltage change (unit: uV/us) - * @settling_time: Time to settle down after voltage change when voltage - * change is non-linear (unit: microseconds). - * @settling_time_up: Time to settle down after voltage increase when voltage - * change is non-linear (unit: microseconds). - * @settling_time_down : Time to settle down after voltage decrease when - * voltage change is non-linear (unit: microseconds). - * @active_discharge: Enable/disable active discharge. The enum - * regulator_active_discharge values are used for - * initialisation. - * @enable_time: Turn-on time of the rails (unit: microseconds) - */ -struct regulation_constraints { - - const char *name; - - /* voltage output range (inclusive) - for voltage control */ - int min_uV; - int max_uV; - - int uV_offset; - - /* current output range (inclusive) - for current control */ - int min_uA; - int max_uA; - int ilim_uA; - - int system_load; - - /* used for coupled regulators */ - u32 *max_spread; - - /* used for changing voltage in steps */ - int max_uV_step; - - /* valid regulator operating modes for this machine */ - unsigned int valid_modes_mask; - - /* valid operations for regulator on this machine */ - unsigned int valid_ops_mask; - - /* regulator input voltage - only if supply is another regulator */ - int input_uV; - - /* mode to set on startup */ - unsigned int initial_mode; - - unsigned int ramp_delay; - unsigned int settling_time; - unsigned int settling_time_up; - unsigned int settling_time_down; - unsigned int enable_time; - - unsigned int active_discharge; - - /* constraint flags */ - unsigned always_on:1; /* regulator never off when system is on */ - unsigned boot_on:1; /* bootloader/firmware enabled regulator */ - unsigned apply_uV:1; /* apply uV constraint if min == max */ - unsigned ramp_disable:1; /* disable ramp delay */ - unsigned soft_start:1; /* ramp voltage slowly */ - unsigned pull_down:1; /* pull down resistor when regulator off */ - unsigned over_current_protection:1; /* auto disable on over current */ -}; - -/** - * struct regulator_consumer_supply - supply -> device mapping - * - * This maps a supply name to a device. Use of dev_name allows support for - * buses which make struct device available late such as I2C. - * - * @dev_name: Result of dev_name() for the consumer. - * @supply: Name for the supply. - */ -struct regulator_consumer_supply { - const char *dev_name; /* dev_name() for consumer */ - const char *supply; /* consumer supply - e.g. "vcc" */ -}; - -/* Initialize struct regulator_consumer_supply */ -#define REGULATOR_SUPPLY(_name, _dev_name) \ -{ \ - .supply = _name, \ - .dev_name = _dev_name, \ -} - -/** - * struct regulator_init_data - regulator platform initialisation data. - * - * Initialisation constraints, our supply and consumers supplies. - * - * @supply_regulator: Parent regulator. Specified using the regulator name - * as it appears in the name field in sysfs, which can - * be explicitly set using the constraints field 'name'. - * - * @constraints: Constraints. These must be specified for the regulator to - * be usable. - * @num_consumer_supplies: Number of consumer device supplies. - * @consumer_supplies: Consumer device supply configuration. - * - * @regulator_init: Callback invoked when the regulator has been registered. - * @driver_data: Data passed to regulator_init. - */ -struct regulator_init_data { - const char *supply_regulator; /* or NULL for system supply */ - - struct regulation_constraints constraints; - - int num_consumer_supplies; - struct regulator_consumer_supply *consumer_supplies; - - /* optional regulator machine specific init */ - int (*regulator_init)(void *driver_data); - void *driver_data; /* core does not touch this */ -}; - -#ifdef CONFIG_REGULATOR -void regulator_has_full_constraints(void); -#else -static inline void regulator_has_full_constraints(void) -{ -} -#endif - -#endif diff --git a/include/linux/regulator/of_regulator.h b/include/linux/regulator/of_regulator.h index 265b98d1ee..de6d053e26 100644 --- a/include/linux/regulator/of_regulator.h +++ b/include/linux/regulator/of_regulator.h @@ -14,28 +14,15 @@ struct regulator_desc; struct of_regulator_match { const char *name; void *driver_data; - struct regulator_init_data *init_data; struct device_node *of_node; const struct regulator_desc *desc; }; #if defined(CONFIG_OFDEVICE) -extern struct regulator_init_data - *of_get_regulator_init_data(struct device_d *dev, - struct device_node *node, - const struct regulator_desc *desc); extern int of_regulator_match(struct device_d *dev, struct device_node *node, struct of_regulator_match *matches, unsigned int num_matches); #else -static inline struct regulator_init_data - *of_get_regulator_init_data(struct device_d *dev, - struct device_node *node, - const struct regulator_desc *desc) -{ - return NULL; -} - static inline int of_regulator_match(struct device_d *dev, struct device_node *node, struct of_regulator_match *matches, diff --git a/include/of.h b/include/of.h index 645f429bde..ef2640e9eb 100644 --- a/include/of.h +++ b/include/of.h @@ -95,7 +95,7 @@ static inline void of_write_number(void *__cell, u64 val, int size) } } -static inline const void *of_property_get_value(struct property *pp) +static inline const void *of_property_get_value(const struct property *pp) { return pp->value ? pp->value : pp->value_const; } @@ -105,6 +105,7 @@ void of_print_property(const void *data, int len); void of_print_cmdline(struct device_node *root); void of_print_nodes(struct device_node *node, int indent); +void of_print_properties(struct device_node *node); void of_diff(struct device_node *a, struct device_node *b, int indent); int of_probe(void); int of_parse_dtb(struct fdt_header *fdt); @@ -216,9 +217,9 @@ extern int of_property_read_string_helper(const struct device_node *np, const char *propname, const char **out_strs, size_t sz, int index); -extern const __be32 *of_prop_next_u32(struct property *prop, +extern const __be32 *of_prop_next_u32(const struct property *prop, const __be32 *cur, u32 *pu); -extern const char *of_prop_next_string(struct property *prop, const char *cur); +extern const char *of_prop_next_string(const struct property *prop, const char *cur); extern int of_property_write_bool(struct device_node *np, const char *propname, const bool value); @@ -520,13 +521,13 @@ static inline int of_property_read_string_helper(const struct device_node *np, return -ENOSYS; } -static inline const __be32 *of_prop_next_u32(struct property *prop, +static inline const __be32 *of_prop_next_u32(const struct property *prop, const __be32 *cur, u32 *pu) { return 0; } -static inline const char *of_prop_next_string(struct property *prop, +static inline const char *of_prop_next_string(const struct property *prop, const char *cur) { return NULL; diff --git a/include/usb/gadget.h b/include/usb/gadget.h index 3e1d7153dc..431f316c46 100644 --- a/include/usb/gadget.h +++ b/include/usb/gadget.h @@ -1002,16 +1002,6 @@ void usb_free_all_descriptors(struct usb_function *f); /*-------------------------------------------------------------------------*/ -/* utility to simplify map/unmap of usb_requests to/from DMA */ - -extern int usb_gadget_map_request(struct usb_gadget *gadget, - struct usb_request *req, int is_in); - -extern void usb_gadget_unmap_request(struct usb_gadget *gadget, - struct usb_request *req, int is_in); - -/*-------------------------------------------------------------------------*/ - /* utility to set gadget state properly */ extern void usb_gadget_set_state(struct usb_gadget *gadget, |