diff options
| author | tnn <tnn@NetBSD.org> | 2021-08-02 14:00:48 +0000 |
|---|---|---|
| committer | tnn <tnn@NetBSD.org> | 2021-08-02 14:00:48 +0000 |
| commit | fd450c25559be2f674f8b5acc60a38e1fa24230d (patch) | |
| tree | de25046b4edd4909821005bf58fd226df2b21e9d /sys/dev | |
| parent | 932411bd7ab1030c2452126f1f6c6ed762adcc62 (diff) | |
ssdfb: define SSD1353 command set
also adjust some SSD1322 command names
Diffstat (limited to 'sys/dev')
| -rw-r--r-- | sys/dev/ic/ssdfb.c | 10 | ||||
| -rw-r--r-- | sys/dev/ic/ssdfbvar.h | 79 |
2 files changed, 74 insertions, 15 deletions
diff --git a/sys/dev/ic/ssdfb.c b/sys/dev/ic/ssdfb.c index 1cc1fbc77d3..c79021b80aa 100644 --- a/sys/dev/ic/ssdfb.c +++ b/sys/dev/ic/ssdfb.c @@ -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 flags) 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 *sc) 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) diff --git a/sys/dev/ic/ssdfbvar.h b/sys/dev/ic/ssdfbvar.h index 85569a52348..768269b0202 100644 --- a/sys/dev/ic/ssdfbvar.h +++ b/sys/dev/ic/ssdfbvar.h @@ -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; |
