From 102a0743326a03cd1a1202ceda21e175b7d3575c Mon Sep 17 00:00:00 2001 From: hc <hc@nodka.com> Date: Tue, 20 Feb 2024 01:20:52 +0000 Subject: [PATCH] add new system file --- kernel/include/linux/mfd/rk630.h | 80 +++++++++------------------------------- 1 files changed, 18 insertions(+), 62 deletions(-) diff --git a/kernel/include/linux/mfd/rk630.h b/kernel/include/linux/mfd/rk630.h index 7c685f2..53c67e8 100644 --- a/kernel/include/linux/mfd/rk630.h +++ b/kernel/include/linux/mfd/rk630.h @@ -13,11 +13,9 @@ #include <linux/regmap.h> #include <linux/mfd/core.h> -#ifndef HIWORD_UPDATE #define UPDATE(x, h, l) (((x) << (l)) & GENMASK((h), (l))) #define HIWORD_MASK(h, l) ((GENMASK((h), (l)) << 16) | GENMASK((h), (l))) #define HIWORD_UPDATE(v, h, l) ((((v) << (l)) & GENMASK((h), (l))) | (GENMASK((h), (l)) << 16)) -#endif #define RTC_REG(x) ((x) + 0x60000) #define RTC_SET_SECONDS RTC_REG(0x0) @@ -63,27 +61,29 @@ #define GRF_REG(x) ((x) + 0x20000) #define PLUMAGE_GRF_GPIO0A_IOMUX GRF_REG(0x0000) +#define GPIO0A0_SEL_MASK HIWORD_MASK(1, 0) +#define GPIO0A0_SEL(x) HIWORD_UPDATE(x, 1, 0) +#define GPIO0A1_SEL_MASK HIWORD_MASK(3, 2) +#define GPIO0A1_SEL(x) HIWORD_UPDATE(x, 3, 2) +#define GPIO0A2_SEL_MASK HIWORD_MASK(5, 4) +#define GPIO0A2_SEL(x) HIWORD_UPDATE(x, 5, 4) +#define GPIO0A3_SEL_MASK HIWORD_MASK(7, 6) +#define GPIO0A3_SEL(x) HIWORD_UPDATE(x, 7, 6) +#define GPIO0A4_SEL_MASK HIWORD_MASK(9, 8) +#define GPIO0A4_SEL(x) HIWORD_UPDATE(x, 9, 8) +#define GPIO0A5_SEL_MASK HIWORD_MASK(11, 10) +#define GPIO0A5_SEL(x) HIWORD_UPDATE(x, 11, 10) +#define GPIO0A6_SEL_MASK HIWORD_MASK(13, 12) +#define GPIO0A6_SEL(x) HIWORD_UPDATE(x, 13, 12) +#define GPIO0A7_SEL_MASK HIWORD_MASK(15, 14) +#define GPIO0A7_SEL(x) HIWORD_UPDATE(x, 15, 14) #define PLUMAGE_GRF_GPIO0B_IOMUX GRF_REG(0x0008) +#define GPIO0B0_SEL_MASK HIWORD_MASK(1, 0) +#define GPIO0B0_SEL(x) HIWORD_UPDATE(x, 1, 0) #define PLUMAGE_GRF_GPIO0C_IOMUX GRF_REG(0x0010) #define PLUMAGE_GRF_GPIO0D_IOMUX GRF_REG(0x0018) #define PLUMAGE_GRF_GPIO1A_IOMUX GRF_REG(0x0020) #define PLUMAGE_GRF_GPIO1B_IOMUX GRF_REG(0x0028) -#define PIN0_SEL_MASK HIWORD_MASK(1, 0) -#define PIN0_SEL(x) HIWORD_UPDATE(x, 1, 0) -#define PIN1_SEL_MASK HIWORD_MASK(3, 2) -#define PIN1_SEL(x) HIWORD_UPDATE(x, 3, 2) -#define PIN2_SEL_MASK HIWORD_MASK(5, 4) -#define PIN2_SEL(x) HIWORD_UPDATE(x, 5, 4) -#define PIN3_SEL_MASK HIWORD_MASK(7, 6) -#define PIN3_SEL(x) HIWORD_UPDATE(x, 7, 6) -#define PIN4_SEL_MASK HIWORD_MASK(9, 8) -#define PIN4_SEL(x) HIWORD_UPDATE(x, 9, 8) -#define PIN5_SEL_MASK HIWORD_MASK(11, 10) -#define PIN5_SEL(x) HIWORD_UPDATE(x, 11, 10) -#define PIN6_SEL_MASK HIWORD_MASK(13, 12) -#define PIN6_SEL(x) HIWORD_UPDATE(x, 13, 12) -#define PIN7_SEL_MASK HIWORD_MASK(15, 14) -#define PIN7_SEL(x) HIWORD_UPDATE(x, 15, 14) #define PLUMAGE_GRF_GPIO0A_P GRF_REG(0x0080) #define PLUMAGE_GRF_GPIO0B_P GRF_REG(0x0084) #define PLUMAGE_GRF_GPIO0C_P GRF_REG(0x0088) @@ -110,8 +110,6 @@ #define PLUMAGE_GRF_SOC_CON1 GRF_REG(0x0404) #define PLUMAGE_GRF_SOC_CON2 GRF_REG(0x0408) #define PLUMAGE_GRF_SOC_CON3 GRF_REG(0x040C) -#define DCLK_UPSAMPLE_2X4X_MASK HIWORD_MASK(15, 15) -#define DCLK_UPSAMPLE_2X4X(x) HIWORD_UPDATE(x, 15, 15) #define VDAC_ENVBG_MASK HIWORD_MASK(12, 12) #define VDAC_ENVBG(x) HIWORD_UPDATE(x, 12, 12) #define VDAC_ENSC0_MASK HIWORD_MASK(11, 11) @@ -164,12 +162,6 @@ #define CRU_CLKSEL_CON2 CRU_REG(0x0038) #define CRU_CLKSEL_CON3 CRU_REG(0x003c) #define CRU_GATE_CON0 CRU_REG(0x0040) -#define PCLK_EFUSE_EN_MASK BIT(14 + 16) -#define PCLK_EFUSE_DISABLE BIT(14) -#define DCLK_CVBS_1X_PLL_CLK_GATE_MASK HIWORD_MASK(12, 12) -#define DCLK_CVBS_1X_PLL_CLK_GATE(x) HIWORD_UPDATE(x, 12, 12) -#define DCLK_CVBS_4X_PLL_CLK_GATE_MASK HIWORD_MASK(11, 11) -#define DCLK_CVBS_4X_PLL_CLK_GATE(x) HIWORD_UPDATE(x, 11, 11) #define CRU_SOFTRST_CON0 CRU_REG(0x0050) #define DRESETN_CVBS_1X_MASK HIWORD_MASK(10, 10) #define DRESETN_CVBS_1X(x) HIWORD_UPDATE(x, 10, 10) @@ -180,35 +172,6 @@ #define PRESETN_GRF_MASK HIWORD_MASK(3, 3) #define PRESETN_GRF(x) HIWORD_UPDATE(x, 3, 3) #define CRU_MAX_REGISTER CRU_SOFTRST_CON0 - -#define GPIO0_BASE 0x30000 -#define GPIO1_BASE 0x40000 -#define GPIO_SWPORT_DR_L 0x00 -#define GPIO_SWPORT_DR_H 0x04 -#define GPIO_SWPORT_DDR_L 0x08 -#define GPIO_SWPORT_DDR_H 0x0c -#define GPIO_INT_EN_L 0x10 -#define GPIO_INT_EN_H 0x14 -#define GPIO_INT_MASK_L 0x18 -#define GPIO_INT_MASK_H 0x1c -#define GPIO_INT_TYPE_L 0x20 -#define GPIO_INT_TYPE_H 0x24 -#define GPIO_INT_POLARITY_L 0x28 -#define GPIO_INT_POLARITY_H 0x2c -#define GPIO_INT_BOTHEDGE_L 0x30 -#define GPIO_INT_BOTHEDGE_H 0x34 -#define GPIO_DEBOUNCE_L 0x38 -#define GPIO_DEBOUNCE_H 0x3c -#define GPIO_DBCLK_DIV_EN_L 0x40 -#define GPIO_DBCLK_DIV_EN_H 0x44 -#define GPIO_DBCLK_DIV_CON 0x48 -#define GPIO_INT_STATUS 0x50 -#define GPIO_INT_RAWSTATUS 0x58 -#define GPIO_PORT_EOI_L 0x60 -#define GPIO_PORT_EOI_H 0x64 -#define GPIO_EXT_PORT 0x70 -#define GPIO_VER_ID 0x78 -#define GPIO_MAX_REGISTER (GPIO1_BASE + GPIO_VER_ID) #define TVE_REG(x) ((x) + 0x10000) #define BT656_DECODER_CTRL TVE_REG(0x3D00) @@ -258,27 +221,20 @@ struct rk630 { struct device *dev; struct i2c_client *client; - struct clk *ref_clk; struct regmap *grf; - struct regmap *pinctrl; struct regmap *cru; struct regmap *tve; struct regmap *rtc; - struct regmap *efuse; - struct regmap *codec; struct gpio_desc *reset_gpio; int irq; struct regmap_irq_chip_data *irq_data; const struct regmap_irq_chip *regmap_irq_chip; }; -extern const struct regmap_config rk630_efuse_regmap_config; extern const struct regmap_config rk630_rtc_regmap_config; extern const struct regmap_config rk630_grf_regmap_config; -extern const struct regmap_config rk630_pinctrl_regmap_config; extern const struct regmap_config rk630_cru_regmap_config; extern const struct regmap_config rk630_tve_regmap_config; -extern const struct regmap_config rk630_codec_regmap_config; int rk630_core_probe(struct rk630 *rk630); int rk630_core_remove(struct rk630 *rk630); -- Gitblit v1.6.2