Module Name:    src
Committed By:   tnn
Date:           Mon Aug  2 14:00:48 UTC 2021

Modified Files:
        src/sys/dev/ic: ssdfb.c ssdfbvar.h

Log Message:
ssdfb: define SSD1353 command set

also adjust some SSD1322 command names


To generate a diff of this commit:
cvs rdiff -u -r1.14 -r1.15 src/sys/dev/ic/ssdfb.c
cvs rdiff -u -r1.6 -r1.7 src/sys/dev/ic/ssdfbvar.h

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/dev/ic/ssdfb.c
diff -u src/sys/dev/ic/ssdfb.c:1.14 src/sys/dev/ic/ssdfb.c:1.15
--- src/sys/dev/ic/ssdfb.c:1.14	Fri Jul 30 13:44:09 2021
+++ src/sys/dev/ic/ssdfb.c	Mon Aug  2 14:00:48 2021
@@ -1,4 +1,4 @@
-/* $NetBSD: ssdfb.c,v 1.14 2021/07/30 13:44:09 tnn Exp $ */
+/* $NetBSD: ssdfb.c,v 1.15 2021/08/02 14:00:48 tnn Exp $ */
 
 /*
  * Copyright (c) 2019 The NetBSD Foundation, Inc.
@@ -30,7 +30,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: ssdfb.c,v 1.14 2021/07/30 13:44:09 tnn Exp $");
+__KERNEL_RCSID(0, "$NetBSD: ssdfb.c,v 1.15 2021/08/02 14:00:48 tnn Exp $");
 
 #include "opt_ddb.h"
 
@@ -271,7 +271,7 @@ ssdfb_attach(struct ssdfb_softc *sc, int
 	ri->ri_depth =	sc->sc_p->p_bits_per_pixel;
 #else
 	ri->ri_depth =	8;
-#endif	
+#endif
 	ri->ri_font =	sc->sc_font;
 	ri->ri_width =	sc->sc_p->p_width;
 	ri->ri_height =	sc->sc_p->p_height;
@@ -774,14 +774,14 @@ ssdfb_init_ssd1322(struct ssdfb_softc *s
 	if (error)
 		return error;
 	SSDFB_CMD2(SSD1322_CMD_SET_SECOND_PRECHARGE_PERIOD,
-	    SSD1322_DEFAULT_SECOND_PRECHARGE);
+	    SSD1322_DEFAULT_SECOND_PRECHARGE_PERIOD);
 	if (error)
 		return error;
 
 	/*
 	 * Configure physical display panel layout.
 	 */
-	SSDFB_CMD2(SSD1322_CMD_SET_MUX_RATIO, sc->sc_p->p_multiplex_ratio);
+	SSDFB_CMD2(SSD1322_CMD_SET_MULTIPLEX_RATIO, sc->sc_p->p_multiplex_ratio);
 	if (error)
 		return error;
 	if (sc->sc_upsidedown)

Index: src/sys/dev/ic/ssdfbvar.h
diff -u src/sys/dev/ic/ssdfbvar.h:1.6 src/sys/dev/ic/ssdfbvar.h:1.7
--- src/sys/dev/ic/ssdfbvar.h:1.6	Fri Jul 30 13:44:09 2021
+++ src/sys/dev/ic/ssdfbvar.h	Mon Aug  2 14:00:48 2021
@@ -1,4 +1,4 @@
-/* $NetBSD: ssdfbvar.h,v 1.6 2021/07/30 13:44:09 tnn Exp $ */
+/* $NetBSD: ssdfbvar.h,v 1.7 2021/08/02 14:00:48 tnn Exp $ */
 
 /*
  * Copyright (c) 2019 The NetBSD Foundation, Inc.
@@ -154,13 +154,12 @@
 #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_SET_SLEEP_MODE_ON			0xae
-#define SSD1322_CMD_SET_SLEEP_MODE_OFF			0xaf
+#define SSD1322_CMD_ENTIRE_DISPLAY_OFF			SSDFB_CMD_ENTIRE_DISPLAY_OFF
+#define SSD1322_CMD_ENTIRE_DISPLAY_ON			SSDFB_CMD_ENTIRE_DISPLAY_ON
+#define SSD1322_CMD_NORMAL_DISPLAY			SSDFB_CMD_SET_NORMAL_DISPLAY
+#define SSD1322_CMD_INVERSE_DISPLAY			SSDFB_CMD_SET_INVERSE_DISPLAY
+#define SSD1322_CMD_SET_SLEEP_MODE_ON			SSDFB_CMD_SET_DISPLAY_OFF
+#define SSD1322_CMD_SET_SLEEP_MODE_OFF			SSDFB_CMD_SET_DISPLAY_ON
 
 #define SSD1322_CMD_ENABLE_PARTIAL_DISPLAY		0xa8
 #define SSD1322_CMD_EXIT_PARTIAL_DISPLAY		0xa9
@@ -190,7 +189,7 @@
 	#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_DEFAULT_SECOND_PRECHARGE_PERIOD	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
@@ -201,13 +200,73 @@
 	#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_SET_MULTIPLEX_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
+/* undocumented on this chip, but works in practice */
+#define SSD1322_CMD_NOP					SSDFB_CMD_NOP
+
+/*
+ * SSD1353 command set
+ */
+#define SSD1353_CMD_SET_COLUMN_ADDRESS			SSD1322_CMD_SET_COLUMN_ADDRESS
+#define SSD1353_CMD_DRAW_LINE				0x21
+#define SSD1353_CMD_DRAW_RECTANGLE			0x22
+#define SSD1353_CMD_COPY				0x23
+#define SSD1353_CMD_DIM					0x24
+#define SSD1353_CMD_CLEAR_WINDOW			0x25
+#define SSD1353_CMD_FILL_ENABLE				0x26
+#define SSD1353_CMD_SCROLLING_SETUP			0x27
+#define SSD1353_CMD_DEACTIVATE_SCROLL			SSDFB_CMD_DEACTIVATE_SCROLL
+#define SSD1353_CMD_ACTIVATE_SCROLL			SSDFB_CMD_ACTIVATE_SCROLL
+#define SSD1353_CMD_WRITE_RAM				SSD1322_CMD_WRITE_RAM
+#define SD1353_CMD_READ_RAM				SSD1322_CMD_READ_RAM
+#define SSD1353_CMD_SET_ROW_ADDRESS			SSD1322_CMD_SET_ROW_ADDRESS
+#define SSD1353_CMD_SET_CONTRAST_CONTROL_A		0x81
+#define SSD1353_CMD_SET_CONTRAST_CONTROL_B		0x82
+#define SSD1353_CMD_SET_CONTRAST_CONTROL_C		0x83
+	#define SSD1353_DEFAULT_CONTRAST_CONTROL	128
+#define SSD1353_CMD_MASTER_CURRENT_CONTROL		0x87
+	#define SSD1353_DEFAULT_MASTER_CURRENT_ATTENUATION	15
+#define SSD1353_CMD_SET_SECOND_PRECHARGE_SPEED		0x8a
+	#define SSD1353_DEFAULT_SECOND_PRECHARGE_SPEED	2
+#define SSD1353_CMD_REMAP_COLOR_DEPTH			0xa0
+#define SSD1353_CMD_SET_DISPLAY_START_LINE		SSD1322_CMD_SET_DISPLAY_START_LINE
+#define SSD1353_CMD_SET_DISPLAY_OFFSET			SSD1322_CMD_SET_DISPLAY_OFFSET
+#define SSD1353_CMD_SET_VERTICAL_SCROLL_AREA		SSDFB_CMD_SET_VERTICAL_SCROLL_AREA
+#define SSD1353_CMD_NORMAL_DISPLAY			0xa4
+#define SSD1353_CMD_ENTIRE_DISPLAY_ON			0xa5
+#define SSD1353_CMD_ENTIRE_DISPLAY_OFF			0xa6
+#define SSD1353_CMD_INVERSE_DISPLAY			SSDFB_CMD_SET_INVERSE_DISPLAY
+#define SSD1353_CMD_SET_MULTIPLEX_RATIO			SSDFB_CMD_SET_MULTIPLEX_RATIO
+#define SSD1353_CMD_DIM_MODE_SETTING			0xab
+#define SSD1353_CMD_SET_DISPLAY_ON_DIM			0xac
+#define SSD1353_CMD_SET_DISPLAY_OFF			SSDFB_CMD_SET_DISPLAY_OFF
+#define SSD1353_CMD_SET_DISPLAY_ON			SSDFB_CMD_SET_DISPLAY_ON
+#define SSD1353_CMD_SET_PHASE_LENGTH			SSD1322_CMD_SET_PHASE_LENGTH
+	#define SSD1353_DEFAULT_PHASE_2			7
+	#define SSD1353_DEFAULT_PHASE_1			4
+#define SSD1353_CMD_SET_FRONT_CLOCK_DIVIDER		SSD1322_CMD_SET_FRONT_CLOCK_DIVIDER
+	#define SSD1353_DEFAULT_DIVIDER			0
+	#define SSD1353_DEFAULT_FREQUENCY		12
+#define SSD1353_CMD_SET_SECOND_PRECHARGE_PERIOD		0xb4
+	#define SSD1353_DEFAULT_SECOND_PRECHARGE_PERIOD	7
+#define SSD1353_CMD_SET_GRAY_SCALE_TABLE		SSD1322_CMD_SET_GRAY_SCALE_TABLE
+#define SSD1353_CMD_SET_DEFAULT_GRAY_SCALE_TABLE	SSD1322_CMD_SET_DEFAULT_GRAY_SCALE_TABLE
+#define SSD1353_CMD_SET_PRE_CHARGE_VOLTAGE_LEVEL	SSD1322_CMD_SET_PRE_CHARGE_VOLTAGE_LEVEL
+	#define SSD1353_DEFAULT_PRE_CHARGE_VOLTAGE_LEVEL	0x3e
+#define SSD1353_CMD_SET_VCOMH				SSD1322_CMD_SET_VCOMH
+	#define SSD1353_DEFAULT_VCOMH			0x3c
+#define SSD1353_CMD_OTP_WRITE				0xc0
+#define SSD1353_CMD_RESET				0xe2
+#define SSD1353_CMD_NOP					SSDFB_CMD_NOP
+#define SSD1353_CMD_SET_COMMAND_LOCK			SSD1322_CMD_SET_COMMAND_LOCK
+	#define SSD1353_COMMAND_UNLOCK_MAGIC		SSD1322_COMMAND_UNLOCK_MAGIC
+	#define SSD1353_COMMAND_LOCK_MAGIC		SSD1353_COMMAND_LOCK_MAGIC
 
 struct ssdfb_softc;
 

Reply via email to