firmware/br-ext-chip-ingenic/board/t40/kernel/patches/00000-include_dt-bindings_p...

79 lines
3.1 KiB
Diff

diff -drupN a/include/dt-bindings/pinctrl/ingenic-pinctrl.h b/include/dt-bindings/pinctrl/ingenic-pinctrl.h
--- a/include/dt-bindings/pinctrl/ingenic-pinctrl.h 1970-01-01 03:00:00.000000000 +0300
+++ b/include/dt-bindings/pinctrl/ingenic-pinctrl.h 2022-06-09 05:02:35.000000000 +0300
@@ -0,0 +1,74 @@
+#ifndef _DT_INGENIC_PINCTL_H__
+#define _DT_INGENIC_PINCTL_H__
+#include <dt-bindings/gpio/gpio.h>
+
+#define PINCTL_FUNCTION0 0
+#define PINCTL_FUNCTION1 1
+#define PINCTL_FUNCTION2 2
+#define PINCTL_FUNCTION3 3
+#define PINCTL_FUNCHILVL 4
+#define PINCTL_FUNCLOLVL 5
+#define PINCTL_FUNCINPUT 6
+#define PINCTL_FUNCTIONS 7
+
+
+#define PINCTL_CFG_TYPES 1
+
+/* Used in device tree for gpio function settings. ingenic,pincfg*/
+#define PINCTL_CFG_BIAS_DISABLE 1
+#define PINCTL_CFG_BIAS_HIGH_IMPEDANCE 2
+#define PINCTL_CFG_BIAS_PULL_DOWN 3
+#define PINCTL_CFG_BIAS_PULL_PIN_DEFAULT 4
+#define PINCTL_CFG_BIAS_PULL_UP 5
+#define PINCTL_CFG_DRIVE_STRENGTH 9
+#define PINCTL_CFG_FILTER 10
+#define PINCTL_CFG_INPUT_SCHMITT_ENABLE 11
+#define PINCTL_CFG_SLEW_RATE 17
+
+#define PINCTL_CFG_TYPE_MSK 0xFFFF
+#define PINCTL_CFGVAL_SFT 16
+#define PINCTL_CFGVAL_MSK (0xFFFF << PINCTL_CFGVAL_SFT)
+
+#define PINCFG_PACK(type, value) (((value) << PINCTL_CFGVAL_SFT) | type)
+#define PINCFG_UNPACK_TYPE(cfg) ((cfg) & PINCTL_CFG_TYPE_MSK)
+#define PINCFG_UNPACK_VALUE(cfg) (((cfg) & PINCTL_CFGVAL_MSK) >> \
+ PINCTL_CFGVAL_SFT)
+
+#define PINCTL_NOBIAS ((0 << PINCTL_CFGVAL_SFT) | PINCTL_CFG_PULL)
+#define PINCTL_PULLEN ((1 << PINCTL_CFGVAL_SFT) | PINCTL_CFG_PULL)
+
+
+/* Used in device tree for gpio settings. eg, <&gpb 0, GPIO_ACTIVE_LOW INGENIC_GPIO_PULL_UP | INGENIC_GPIO_DS_0> */
+#define INGENIC_GPIO_BIAS_MASK 0x7
+#define INGENIC_GPIO_BIAS_SFT 0
+#define INGENIC_GPIO_NOBIAS (0 << INGENIC_GPIO_BIAS_SFT)
+#define INGENIC_GPIO_PULLEN (1 << INGENIC_GPIO_BIAS_SFT)
+#define INGENIC_GPIO_PULLUP (2 << INGENIC_GPIO_BIAS_SFT)
+#define INGENIC_GPIO_PULLDOWN (3 << INGENIC_GPIO_BIAS_SFT)
+#define INGENIC_GPIO_HIZ (4 << INGENIC_GPIO_BIAS_SFT)
+
+#define INGENIC_GPIO_DS_SFT 3
+#define INGENIC_GPIO_DS_MSK 0x7
+#define INGENIC_GPIO_DS_0 (0 << INGENIC_GPIO_DS_SFT)
+#define INGENIC_GPIO_DS_1 (1 << INGENIC_GPIO_DS_SFT)
+#define INGENIC_GPIO_DS_2 (2 << INGENIC_GPIO_DS_SFT)
+#define INGENIC_GPIO_DS_3 (3 << INGENIC_GPIO_DS_SFT)
+#define INGENIC_GPIO_DS_4 (4 << INGENIC_GPIO_DS_SFT)
+#define INGENIC_GPIO_DS_5 (5 << INGENIC_GPIO_DS_SFT)
+#define INGENIC_GPIO_DS_6 (6 << INGENIC_GPIO_DS_SFT)
+#define INGENIC_GPIO_DS_7 (7 << INGENIC_GPIO_DS_SFT)
+
+#define INGENIC_GPIO_SLEW_RATE_SFT 6
+#define INGENIC_GPIO_SLEW_RATE (1 << INGENIC_GPIO_SLEW_RATE_SFT)
+
+#define INGENIC_GPIO_SCHMITT_SFT 7
+#define INGENIC_GPIO_SCHMITT (1 << INGENIC_GPIO_SCHMITT_SFT)
+
+/* Use in pinctrl drivers.*/
+#define INGENIC_GPIO_PULL(x) (((x) >> INGENIC_GPIO_BIAS_SFT) & INGENIC_GPIO_BIAS_MASK)
+#define INGENIC_GPIO_DRIVE_STRENGTH(x) (((x) >> INGENIC_GPIO_DS_SFT) & INGENIC_GPIO_DS_MSK)
+#define INGENIC_GPIO_SCHMITT_ENABLE(x) ((x) >> INGENIC_GPIO_SCHMITT_SFT)
+#define INGENIC_GPIO_SLEW_RATE_ENABLE(x) ((x) >> INGENIC_GPIO_SLEW_RATE_SFT)
+
+
+#endif /*_DT_INGENIC_PINCTL_H__*/