Source-Changes-HG archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
[src/trunk]: src/sys/dev/ic define SSD1322 command set
details: https://anonhg.NetBSD.org/src/rev/db591e4b98b9
branches: trunk
changeset: 464781:db591e4b98b9
user: tnn <tnn%NetBSD.org@localhost>
date: Tue Oct 22 21:40:10 2019 +0000
description:
define SSD1322 command set
diffstat:
sys/dev/ic/ssdfbvar.h | 83 +++++++++++++++++++++++++++++++++++++++++++++-----
1 files changed, 74 insertions(+), 9 deletions(-)
diffs (116 lines):
diff -r c7fd5695c6ae -r db591e4b98b9 sys/dev/ic/ssdfbvar.h
--- a/sys/dev/ic/ssdfbvar.h Tue Oct 22 18:43:14 2019 +0000
+++ b/sys/dev/ic/ssdfbvar.h Tue Oct 22 21:40:10 2019 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: ssdfbvar.h,v 1.2 2019/03/17 04:03:17 tnn Exp $ */
+/* $NetBSD: ssdfbvar.h,v 1.3 2019/10/22 21:40:10 tnn Exp $ */
/*
* Copyright (c) 2019 The NetBSD Foundation, Inc.
@@ -101,15 +101,11 @@
* SH1106 Rev 0.1 p.24,25,26
*/
#define SSDFB_CMD_SET_DISPLAY_CLOCK_RATIO 0xd5
- #define SSDFB_DISPLAY_CLOCK_DIVIDER_MASK 0x0f
- #define SSDFB_DISPLAY_CLOCK_DIVIDER_SHIFT 0
- #define SSDFB_DISPLAY_CLOCK_OSCILLATOR_MASK 0xf0
- #define SSDFB_DISPLAY_CLOCK_OSCILLATOR_SHIFT 4
+ #define SSDFB_DISPLAY_CLOCK_DIVIDER_MASK __BITS(3, 0)
+ #define SSDFB_DISPLAY_CLOCK_OSCILLATOR_MASK __BITS(7, 4)
#define SSDFB_CMD_SET_PRECHARGE_PERIOD 0xd9
- #define SSDFB_PRECHARGE_MASK 0x0f
- #define SSDFB_PRECHARGE_SHIFT 0
- #define SSDFB_DISCHARGE_MASK 0xf0
- #define SSDFB_DISCHARGE_SHIFT 4
+ #define SSDFB_PRECHARGE_MASK __BITS(3, 0)
+ #define SSDFB_DISCHARGE_MASK __BITS(7, 4)
#define SSDFB_CMD_SET_VCOMH_DESELECT_LEVEL 0xdb
#define SSD1306_VCOMH_DESELECT_LEVEL_0_65_VCC 0x00
#define SSD1306_VCOMH_DESELECT_LEVEL_0_77_VCC 0x20
@@ -146,10 +142,78 @@
#define SH1106_DC_DC_OFF 0x8a
#define SH1106_DC_DC_ON 0x8b
+/*
+ * SSD1322 command set
+ */
+#define SSD1322_CMD_ENABLE_GRAY_SCALE_TABLE 0x00
+#define SSD1322_CMD_SET_COLUMN_ADDRESS 0x15
+#define SSD1322_CMD_WRITE_RAM 0x5c
+#define SSD1322_CMD_READ_RAM 0x5d
+#define SSD1322_CMD_SET_ROW_ADDRESS 0x75
+#define SSD1322_CMD_SET_REMAP_AND_DUAL_COM_LINE_MODE 0xa0
+#define SSD1322_CMD_SET_DISPLAY_START_LINE 0xa1
+#define SSD1322_CMD_SET_DISPLAY_OFFSET 0xa2
+
+/* These are the same as SSDFB generic commands */
+#define SSD1322_CMD_ENTIRE_DISPLAY_OFF 0xa4
+#define SSD1322_CMD_ENTIRE_DISPLAY_ON 0xa5
+#define SSD1322_CMD_NORMAL_DISPLAY 0xa6
+#define SSD1322_CMD_INVERSE_DISPLAY 0xa7
+
+#define SSD1322_CMD_ENABLE_PARTIAL_DISPLAY 0xa8
+#define SSD1322_CMD_EXIT_PARTIAL_DISPLAY 0xa9
+#define SSD1322_CMD_FUNCTION_SELECTION 0xab
+ #define SSD1322_FUNCTION_SELECTION_EXTERNAL_VDD 0
+ #define SSD1322_FUNCTION_SELECTION_INTERNAL_VDD __BIT(0)
+#define SSD1322_CMD_SET_SLEEP_MODE_ON 0xae
+#define SSD1322_CMD_SET_SLEEP_MODE_OFF 0xaf
+#define SSD1322_CMD_SET_PHASE_LENGTH 0xb1
+ #define SSD1322_PHASE_LENGTH_PHASE_2_MASK __BITS(7, 4)
+ #define SSD1322_DEFAULT_PHASE_2 7
+ #define SSD1322_PHASE_LENGTH_PHASE_1_MASK __BITS(3, 0)
+ #define SSD1322_DEFAULT_PHASE_1 4
+#define SSD1322_CMD_SET_FRONT_CLOCK_DIVIDER 0xb3
+ #define SSD1322_FREQUENCY_MASK __BITS(7, 4)
+ #define SSD1322_DEFAULT_FREQUENCY 5
+ #define SSD1322_DIVIDER_MASK __BITS(3, 0)
+ #define SSD1322_DEFAULT_DIVIDER 0
+#define SSD1322_CMD_DISPLAY_ENHANCEMENT_A 0xb4
+ #define SSD1322_DISPLAY_ENHANCEMENT_A_MAGIC1 0xa2
+ #define SSD1322_DISPLAY_ENHANCEMENT_A_MAGIC2 0xb5
+#define SSD1322_CMD_SET_GPIO 0xb5
+ #define SSD1322_GPIO0_DISABLED 0
+ #define SSD1322_GPIO0_TRISTATE __BIT(0)
+ #define SSD1322_GPIO0_LOW __BIT(1)
+ #define SSD1322_GPIO0_HIGH __BITS(1, 0)
+ #define SSD1322_GPIO1_DISABLED 0
+ #define SSD1322_GPIO1_TRISTATE __BIT(2)
+ #define SSD1322_GPIO1_LOW __BIT(3)
+ #define SSD1322_GPIO1_HIGH __BITS(3, 2)
+#define SSD1322_CMD_SET_SECOND_PRECHARGE_PERIOD 0xb6
+ #define SSD1322_DEFAULT_SECOND_PRECHARGE 8
+#define SSD1322_CMD_SET_GRAY_SCALE_TABLE 0xb8
+#define SSD1322_CMD_SET_DEFAULT_GRAY_SCALE_TABLE 0xb9
+#define SSD1322_CMD_SET_PRE_CHARGE_VOLTAGE_LEVEL 0xbb
+ #define SSD1322_DEFAULT_PRE_CHARGE_VOLTAGE_LEVEL 0x17
+#define SSD1322_CMD_SET_VCOMH 0xbe
+ #define SSD1322_DEFAULT_VCOMH 0x04
+#define SSD1322_CMD_SET_CONTRAST_CURRENT 0xc1
+ #define SSD1322_DEFAULT_CONTRAST_CURRENT 0x7f
+#define SSD1322_CMD_MASTER_CONTRAST_CURRENT_CONTROL 0xc7
+ #define SSD1322_DEFAULT_MASTER_CONTRAST_CURRENT_CONTROL 0xf
+#define SSD1322_CMD_SET_MUX_RATIO 0xca
+#define SSD1322_CMD_DISPLAY_ENHANCEMENT_B 0xd1
+ #define SSD1322_DISPLAY_ENHANCEMENT_B_MAGIC1 0xa2
+ #define SSD1322_DISPLAY_ENHANCEMENT_B_MAGIC2 0x20
+#define SSD1322_CMD_SET_COMMAND_LOCK 0xfd
+ #define SSD1322_COMMAND_UNLOCK_MAGIC 0x12
+ #define SSD1322_COMMAND_LOCK_MAGIC 0x16
+
typedef enum {
SSDFB_CONTROLLER_UNKNOWN=0,
SSDFB_CONTROLLER_SSD1306=1,
SSDFB_CONTROLLER_SH1106=2,
+ SSDFB_CONTROLLER_SSD1322=3,
} ssdfb_controller_id_t;
typedef enum {
@@ -158,6 +222,7 @@
SSDFB_PRODUCT_SH1106_GENERIC=2,
SSDFB_PRODUCT_ADAFRUIT_931=3,
SSDFB_PRODUCT_ADAFRUIT_938=4,
+ SSDFB_PRODUCT_SSD1322_GENERIC=5,
} ssdfb_product_id_t;
#define SSDFB_I2C_DEFAULT_ADDR 0x3c
Home |
Main Index |
Thread Index |
Old Index