diff options
author | Sascha Hauer <s.hauer@pengutronix.de> | 2022-01-19 09:26:42 +0100 |
---|---|---|
committer | Sascha Hauer <s.hauer@pengutronix.de> | 2022-01-19 09:26:42 +0100 |
commit | be1539b920302cfcde300f8e8607d548e1f75b8a (patch) | |
tree | b2b3315db903fb9e2ab46da5b6bf9ea7ab0c67b3 /include | |
parent | 6d6b90e1a6e2ea8ff8976eb1f1246e8fcc0babcf (diff) | |
parent | a3787cd1bb0b290de44c8e947db742057c71011b (diff) | |
download | barebox-be1539b920302cfcde300f8e8607d548e1f75b8a.tar.gz barebox-be1539b920302cfcde300f8e8607d548e1f75b8a.tar.xz |
Merge branch 'for-next/misc'
Diffstat (limited to 'include')
-rw-r--r-- | include/acpi.h | 72 | ||||
-rw-r--r-- | include/asm-generic/barebox.lds.h | 3 | ||||
-rw-r--r-- | include/complete.h | 1 | ||||
-rw-r--r-- | include/driver.h | 4 | ||||
-rw-r--r-- | include/linux/clk.h | 8 | ||||
-rw-r--r-- | include/linux/compiler.h | 10 | ||||
-rw-r--r-- | include/linux/overflow.h | 1 | ||||
-rw-r--r-- | include/linux/spinlock.h | 2 | ||||
-rw-r--r-- | include/parseopt.h | 1 | ||||
-rw-r--r-- | include/printk.h | 2 | ||||
-rw-r--r-- | include/regmap.h | 12 | ||||
-rw-r--r-- | include/soc/stm32/gpio.h | 4 | ||||
-rw-r--r-- | include/tlsf.h | 3 | ||||
-rw-r--r-- | include/uapi/linux/virtio_ids.h | 26 | ||||
-rw-r--r-- | include/unistd.h | 2 |
15 files changed, 134 insertions, 17 deletions
diff --git a/include/acpi.h b/include/acpi.h index b8e73b35df..04f722da23 100644 --- a/include/acpi.h +++ b/include/acpi.h @@ -10,6 +10,78 @@ #include <linux/types.h> #include <driver.h> +/* Names within the namespace are 4 bytes long */ + +#define ACPI_NAMESEG_SIZE 4 /* Fixed by ACPI spec */ +#define ACPI_PATH_SEGMENT_LENGTH 5 /* 4 chars for name + 1 char for separator */ +#define ACPI_PATH_SEPARATOR '.' + +/* Sizes for ACPI table headers */ + +#define ACPI_OEM_ID_SIZE 6 +#define ACPI_OEM_TABLE_ID_SIZE 8 + +/* + * Algorithm to obtain access bit or byte width. + * Can be used with access_width of struct acpi_generic_address and access_size of + * struct acpi_resource_generic_register. + */ +#define ACPI_ACCESS_BIT_WIDTH(size) (1 << ((size) + 2)) +#define ACPI_ACCESS_BYTE_WIDTH(size) (1 << ((size) - 1)) + +/* Address Space (Operation Region) Types */ + +typedef u8 acpi_adr_space_type; +#define ACPI_ADR_SPACE_SYSTEM_MEMORY (acpi_adr_space_type) 0 +#define ACPI_ADR_SPACE_SYSTEM_IO (acpi_adr_space_type) 1 +#define ACPI_ADR_SPACE_PCI_CONFIG (acpi_adr_space_type) 2 +#define ACPI_ADR_SPACE_EC (acpi_adr_space_type) 3 +#define ACPI_ADR_SPACE_SMBUS (acpi_adr_space_type) 4 +#define ACPI_ADR_SPACE_CMOS (acpi_adr_space_type) 5 +#define ACPI_ADR_SPACE_PCI_BAR_TARGET (acpi_adr_space_type) 6 +#define ACPI_ADR_SPACE_IPMI (acpi_adr_space_type) 7 +#define ACPI_ADR_SPACE_GPIO (acpi_adr_space_type) 8 +#define ACPI_ADR_SPACE_GSBUS (acpi_adr_space_type) 9 +#define ACPI_ADR_SPACE_PLATFORM_COMM (acpi_adr_space_type) 10 +#define ACPI_ADR_SPACE_PLATFORM_RT (acpi_adr_space_type) 11 + +/******************************************************************************* + * + * Master ACPI Table Header. This common header is used by all ACPI tables + * except the RSDP and FACS. + * + ******************************************************************************/ + +struct __packed acpi_table_header { + char signature[ACPI_NAMESEG_SIZE]; /* ASCII table signature */ + u32 length; /* Length of table in bytes, including this header */ + u8 revision; /* ACPI Specification minor version number */ + u8 checksum; /* To make sum of entire table == 0 */ + char oem_id[ACPI_OEM_ID_SIZE]; /* ASCII OEM identification */ + char oem_table_id[ACPI_OEM_TABLE_ID_SIZE]; /* ASCII OEM table identification */ + u32 oem_revision; /* OEM revision number */ + char asl_compiler_id[ACPI_NAMESEG_SIZE]; /* ASCII ASL compiler vendor ID */ + u32 asl_compiler_revision; /* ASL compiler version */ +}; + +/******************************************************************************* + * + * GAS - Generic Address Structure (ACPI 2.0+) + * + * Note: Since this structure is used in the ACPI tables, it is byte aligned. + * If misaligned access is not supported by the hardware, accesses to the + * 64-bit Address field must be performed with care. + * + ******************************************************************************/ + +struct __packed acpi_generic_address { + u8 space_id; /* Address space where struct or register exists */ + u8 bit_width; /* Size in bits of given register */ + u8 bit_offset; /* Bit offset within the register */ + u8 access_width; /* Minimum Access size (ACPI 3.0) */ + u64 address; /* 64-bit address of struct or register */ +}; + typedef char acpi_sig_t[4]; struct __packed acpi_rsdp { /* root system description pointer */ diff --git a/include/asm-generic/barebox.lds.h b/include/asm-generic/barebox.lds.h index c5f9d97547..a03655d41c 100644 --- a/include/asm-generic/barebox.lds.h +++ b/include/asm-generic/barebox.lds.h @@ -6,8 +6,7 @@ #define STRUCT_ALIGNMENT 32 #define STRUCT_ALIGN() . = ALIGN(STRUCT_ALIGNMENT) -#if defined CONFIG_X86 || \ - defined CONFIG_ARCH_EP93XX +#if defined CONFIG_ARCH_EP93XX #include <mach/barebox.lds.h> #endif diff --git a/include/complete.h b/include/complete.h index 75a92fc86a..b0e675b559 100644 --- a/include/complete.h +++ b/include/complete.h @@ -23,5 +23,6 @@ int devicetree_nodepath_complete(struct string_list *sl, char *instr); int devicetree_complete(struct string_list *sl, char *instr); int devicetree_file_complete(struct string_list *sl, char *instr); int env_param_noeval_complete(struct string_list *sl, char *instr); +int tutorial_complete(struct string_list *sl, char *instr); #endif /* __COMPLETE_ */ diff --git a/include/driver.h b/include/driver.h index 4f6d40e17c..1215a2d57a 100644 --- a/include/driver.h +++ b/include/driver.h @@ -328,6 +328,10 @@ extern struct list_head device_list; */ extern struct list_head driver_list; +/* linear list over all active devices + */ +extern struct list_head active_device_list; + /* Iterate over all devices */ #define for_each_device(dev) list_for_each_entry(dev, &device_list, list) diff --git a/include/linux/clk.h b/include/linux/clk.h index 6565429a9b..ffc1ac8489 100644 --- a/include/linux/clk.h +++ b/include/linux/clk.h @@ -432,12 +432,12 @@ struct clk_hw { static inline struct clk *clk_hw_to_clk(struct clk_hw *hw) { - return &hw->clk; + return IS_ERR(hw) ? ERR_CAST(hw) : &hw->clk; } static inline struct clk_hw *clk_to_clk_hw(struct clk *clk) { - return container_of(clk, struct clk_hw, clk); + return IS_ERR(clk) ? ERR_CAST(clk) : container_of(clk, struct clk_hw, clk); } struct clk_div_table { @@ -721,9 +721,9 @@ int of_clk_add_provider(struct device_node *np, void *data), void *data); -static inline unsigned int clk_get_num_parents(const struct clk *hw) +static inline unsigned int clk_hw_get_num_parents(const struct clk_hw *hw) { - return hw->num_parents; + return hw->clk.num_parents; } #else diff --git a/include/linux/compiler.h b/include/linux/compiler.h index f61a458414..6654c164f5 100644 --- a/include/linux/compiler.h +++ b/include/linux/compiler.h @@ -276,16 +276,6 @@ unsigned long read_word_at_a_time(const void *addr) #endif /* __KERNEL__ */ -/* - * Force the compiler to emit 'sym' as a symbol, so that we can reference - * it from inline assembler. Necessary in case 'sym' could be inlined - * otherwise, or eliminated entirely due to lack of references that are - * visible to the compiler. - */ -#define __ADDRESSABLE(sym) \ - static void * __attribute__((section(".discard.addressable"), used)) \ - __PASTE(__addressable_##sym, __LINE__) = (void *)&sym; - /** * offset_to_ptr - convert a relative memory offset to an absolute pointer * @off: the address of the 32-bit offset value diff --git a/include/linux/overflow.h b/include/linux/overflow.h index 6590450464..50c93ca0c3 100644 --- a/include/linux/overflow.h +++ b/include/linux/overflow.h @@ -3,6 +3,7 @@ #define __LINUX_OVERFLOW_H #include <linux/compiler.h> +#include <linux/limits.h> /* * In the fallback code below, we need to compute the minimum and diff --git a/include/linux/spinlock.h b/include/linux/spinlock.h index b32114f4f0..7d011785ed 100644 --- a/include/linux/spinlock.h +++ b/include/linux/spinlock.h @@ -8,4 +8,6 @@ typedef int spinlock_t; #define spin_lock_irqsave(lock, flags) do { flags = 0; } while (0) #define spin_unlock_irqrestore(lock, flags) do { flags = flags; } while (0) +#define DEFINE_SPINLOCK(lock) spinlock_t lock + #endif /* __LINUX_SPINLOCK_H */ diff --git a/include/parseopt.h b/include/parseopt.h index 5a40bdc219..a944c3655f 100644 --- a/include/parseopt.h +++ b/include/parseopt.h @@ -6,7 +6,6 @@ void parseopt_llu_suffix(const char *options, const char *opt, void parseopt_b(const char *options, const char *opt, bool *val); void parseopt_hu(const char *options, const char *opt, unsigned short *val); -void parseopt_u16(const char *options, const char *opt, uint16_t *val); void parseopt_str(const char *options, const char *opt, char **val); #endif /* __PARSEOPT_H__ */ diff --git a/include/printk.h b/include/printk.h index baf2cca202..046b456a9d 100644 --- a/include/printk.h +++ b/include/printk.h @@ -2,6 +2,8 @@ #ifndef __PRINTK_H #define __PRINTK_H +#include <linux/types.h> + #define KERN_EMERG "" /* system is unusable */ #define KERN_ALERT "" /* action must be taken immediately */ #define KERN_CRIT "" /* critical conditions */ diff --git a/include/regmap.h b/include/regmap.h index db84c7a534..4b30c21776 100644 --- a/include/regmap.h +++ b/include/regmap.h @@ -130,6 +130,18 @@ int regmap_write_bits(struct regmap *map, unsigned int reg, int regmap_update_bits(struct regmap *map, unsigned int reg, unsigned int mask, unsigned int val); +static inline int regmap_set_bits(struct regmap *map, + unsigned int reg, unsigned int bits) +{ + return regmap_update_bits(map, reg, bits, bits); +} + +static inline int regmap_clear_bits(struct regmap *map, + unsigned int reg, unsigned int bits) +{ + return regmap_update_bits(map, reg, bits, 0); +} + /** * regmap_read_poll_timeout - Poll until a condition is met or a timeout occurs * diff --git a/include/soc/stm32/gpio.h b/include/soc/stm32/gpio.h index 13b492a693..448fb19e2e 100644 --- a/include/soc/stm32/gpio.h +++ b/include/soc/stm32/gpio.h @@ -25,6 +25,10 @@ #define STM32_PIN_AF(x) ((x) + 1) #define STM32_PIN_ANALOG (STM32_PIN_AF(15) + 1) +#define STM32_PINMODE_GPIO 0 +#define STM32_PINMODE_AF 2 +#define STM32_PINMODE_ANALOG 3 + #define STM32_GPIO_PINS_PER_BANK 16 enum stm32_pin_bias { STM32_PIN_NO_BIAS, STM32_PIN_PULL_UP, STM32_PIN_PULL_DOWN }; diff --git a/include/tlsf.h b/include/tlsf.h index 7015de0eb5..161176d5ac 100644 --- a/include/tlsf.h +++ b/include/tlsf.h @@ -42,9 +42,12 @@ extern "C" { #endif +#include <printk.h> + #define tlsf_assert(expr) do { \ if (unlikely(!(expr))) { \ printf(#expr "%s %d\n", __FILE__, __LINE__); \ + dump_stack(); \ } \ } while (0) diff --git a/include/uapi/linux/virtio_ids.h b/include/uapi/linux/virtio_ids.h index bc1c0621f5..80d76b75bc 100644 --- a/include/uapi/linux/virtio_ids.h +++ b/include/uapi/linux/virtio_ids.h @@ -51,8 +51,34 @@ #define VIRTIO_ID_PSTORE 22 /* virtio pstore device */ #define VIRTIO_ID_IOMMU 23 /* virtio IOMMU */ #define VIRTIO_ID_MEM 24 /* virtio mem */ +#define VIRTIO_ID_SOUND 25 /* virtio sound */ #define VIRTIO_ID_FS 26 /* virtio filesystem */ #define VIRTIO_ID_PMEM 27 /* virtio pmem */ +#define VIRTIO_ID_RPMB 28 /* virtio rpmb */ #define VIRTIO_ID_MAC80211_HWSIM 29 /* virtio mac80211-hwsim */ +#define VIRTIO_ID_VIDEO_ENCODER 30 /* virtio video encoder */ +#define VIRTIO_ID_VIDEO_DECODER 31 /* virtio video decoder */ +#define VIRTIO_ID_SCMI 32 /* virtio SCMI */ +#define VIRTIO_ID_NITRO_SEC_MOD 33 /* virtio nitro secure module*/ +#define VIRTIO_ID_I2C_ADAPTER 34 /* virtio i2c adapter */ +#define VIRTIO_ID_WATCHDOG 35 /* virtio watchdog */ +#define VIRTIO_ID_CAN 36 /* virtio can */ +#define VIRTIO_ID_DMABUF 37 /* virtio dmabuf */ +#define VIRTIO_ID_PARAM_SERV 38 /* virtio parameter server */ +#define VIRTIO_ID_AUDIO_POLICY 39 /* virtio audio policy */ +#define VIRTIO_ID_BT 40 /* virtio bluetooth */ +#define VIRTIO_ID_GPIO 41 /* virtio gpio */ + +/* + * Virtio Transitional IDs + */ + +#define VIRTIO_TRANS_ID_NET 1000 /* transitional virtio net */ +#define VIRTIO_TRANS_ID_BLOCK 1001 /* transitional virtio block */ +#define VIRTIO_TRANS_ID_BALLOON 1002 /* transitional virtio balloon */ +#define VIRTIO_TRANS_ID_CONSOLE 1003 /* transitional virtio console */ +#define VIRTIO_TRANS_ID_SCSI 1004 /* transitional virtio SCSI */ +#define VIRTIO_TRANS_ID_RNG 1005 /* transitional virtio rng */ +#define VIRTIO_TRANS_ID_9P 1009 /* transitional virtio 9p console */ #endif /* _LINUX_VIRTIO_IDS_H */ diff --git a/include/unistd.h b/include/unistd.h index 06ce355809..f7fe737d00 100644 --- a/include/unistd.h +++ b/include/unistd.h @@ -20,6 +20,8 @@ int rmdir (const char *pathname); int symlink(const char *pathname, const char *newpath); int readlink(const char *path, char *buf, size_t bufsiz); int chdir(const char *pathname); +char *pushd(const char *dir); +int popd(char *dir); const char *getcwd(void); int ftruncate(int fd, loff_t length); |