167e38f57SArnd Bergmann /* SPDX-License-Identifier: GPL-2.0 */ 267e38f57SArnd Bergmann #ifndef _SOC_EP93XX_H 367e38f57SArnd Bergmann #define _SOC_EP93XX_H 467e38f57SArnd Bergmann 5*ede5bbe4SNikita Shubin struct regmap; 6*ede5bbe4SNikita Shubin struct spinlock_t; 7*ede5bbe4SNikita Shubin 8*ede5bbe4SNikita Shubin enum ep93xx_soc_model { 9*ede5bbe4SNikita Shubin EP93XX_9301_SOC, 10*ede5bbe4SNikita Shubin EP93XX_9307_SOC, 11*ede5bbe4SNikita Shubin EP93XX_9312_SOC, 12*ede5bbe4SNikita Shubin }; 13*ede5bbe4SNikita Shubin 14*ede5bbe4SNikita Shubin #include <linux/auxiliary_bus.h> 15*ede5bbe4SNikita Shubin #include <linux/compiler_types.h> 16*ede5bbe4SNikita Shubin #include <linux/container_of.h> 1767e38f57SArnd Bergmann 1867e38f57SArnd Bergmann #define EP93XX_CHIP_REV_D0 3 1967e38f57SArnd Bergmann #define EP93XX_CHIP_REV_D1 4 2067e38f57SArnd Bergmann #define EP93XX_CHIP_REV_E0 5 2167e38f57SArnd Bergmann #define EP93XX_CHIP_REV_E1 6 2267e38f57SArnd Bergmann #define EP93XX_CHIP_REV_E2 7 2367e38f57SArnd Bergmann 24*ede5bbe4SNikita Shubin struct ep93xx_regmap_adev { 25*ede5bbe4SNikita Shubin struct auxiliary_device adev; 26*ede5bbe4SNikita Shubin struct regmap *map; 27*ede5bbe4SNikita Shubin void __iomem *base; 28*ede5bbe4SNikita Shubin spinlock_t *lock; 29*ede5bbe4SNikita Shubin void (*write)(struct regmap *map, spinlock_t *lock, unsigned int reg, 30*ede5bbe4SNikita Shubin unsigned int val); 31*ede5bbe4SNikita Shubin void (*update_bits)(struct regmap *map, spinlock_t *lock, 32*ede5bbe4SNikita Shubin unsigned int reg, unsigned int mask, unsigned int val); 33*ede5bbe4SNikita Shubin }; 34*ede5bbe4SNikita Shubin 35*ede5bbe4SNikita Shubin #define to_ep93xx_regmap_adev(_adev) \ 36*ede5bbe4SNikita Shubin container_of((_adev), struct ep93xx_regmap_adev, adev) 37*ede5bbe4SNikita Shubin 3867e38f57SArnd Bergmann #endif 39