/* 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)