| /* SPDX-License-Identifier: GPL-2.0+ */ |
| /* |
| * (C) Copyright 2018 |
| * Mario Six, Guntermann & Drunck GmbH, mario.six@gdsys.cc |
| */ |
| |
| /** |
| * struct ihs_fpga_regs - IHS FPGA register map structure |
| * @reflection_low: Lower reflection register |
| * @versions: PCB versions register |
| * @fpga_version: FPGA versions register |
| * @features: FPGA features register |
| * @extended_features: FPGA extended features register |
| * @top_interrupt: Top interrupt register |
| * @top_interrupt_enable: Top interrupt enable register |
| * @status: FPGA status register |
| * @control: FPGA control register |
| * @extended_control: FPGA extended control register |
| */ |
| struct ihs_fpga_regs { |
| u16 reflection_low; |
| u16 versions; |
| u16 fpga_version; |
| u16 features; |
| u16 extended_features; |
| u16 top_interrupt; |
| u16 top_interrupt_enable; |
| u16 status; |
| u16 control; |
| u16 extended_control; |
| }; |
| |
| /** |
| * ihs_fpga_set() - Convenience macro to set values in FPGA register map |
| * @map: Register map to set a value in |
| * @member: Name of member (described by ihs_fpga_regs) to set |
| * @val: Value to set the member to |
| */ |
| #define ihs_fpga_set(map, member, val) \ |
| regmap_set(map, struct ihs_fpga_regs, member, val) |
| |
| /** |
| * ihs_fpga_get() - Convenience macro to get values from FPGA register map |
| * @map: Register map to read value from |
| * @member: Name of member (described by ihs_fpga_regs) to get |
| * @valp: Pointe to variable to receive the value read |
| */ |
| #define ihs_fpga_get(map, member, valp) \ |
| regmap_get(map, struct ihs_fpga_regs, member, valp) |