board/spresense: Add pin selection of ILI934x

Add Kconfig choice for selecting RST and DC pins on ILI934x LCD.
This commit is contained in:
SPRESENSE
2022-04-11 20:10:54 +09:00
committed by Masayuki Ishikawa
parent 22d2ef0bf4
commit 771bd8ca17
3 changed files with 334 additions and 6 deletions
+183
View File
@@ -514,6 +514,189 @@ config LCD_ON_MAIN_BOARD
Display connected to main board.
endchoice
if LCD_ON_MAIN_BOARD
choice
prompt "LCD ILI934x RST Pin selection"
default LCD_RSTPIN_I2S0_BCK
config LCD_RSTPIN_UART2_TX
bool "UART2_TX (D01) PIN"
config LCD_RSTPIN_UART2_RX
bool "UART2_RX (D00) PIN"
config LCD_RSTPIN_UART2_RTS
bool "UART2_RTS (D28) PIN"
config LCD_RSTPIN_UART2_CTS
bool "UART2_CTS (D27) PIN"
config LCD_RSTPIN_I2S0_BCK
bool "I2S0_BCK (D26) PIN"
config LCD_RSTPIN_I2S0_LRCK
bool "I2S0_LRCK (D25) PIN"
config LCD_RSTPIN_SEN_IRQ_IN
bool "SEN_IRQ_IN (D22) PIN"
config LCD_RSTPIN_EMMC_DATA3
bool "EMMC_DATA3 (D21) PIN"
config LCD_RSTPIN_EMMC_DATA2
bool "EMMC_DATA2 (D20) PIN"
config LCD_RSTPIN_I2S0_DATA_IN
bool "I2S0_DATA_IN (D19) PIN"
config LCD_RSTPIN_I2S0_DATA_OUT
bool "I2S0_DATA_OUT (D18) PIN"
config LCD_RSTPIN_I2C0_SCL
bool "I2C0_SCL (D15) PIN"
config LCD_RSTPIN_I2C0_SDA
bool "I2C0_SDA (D14) PIN"
endchoice
choice
prompt "LCD ILI934x DC Pin selection"
default LCD_DCPIN_I2S0_LRCK
config LCD_DCPIN_UART2_TX
bool "UART2_TX (D01) PIN"
config LCD_DCPIN_UART2_RX
bool "UART2_RX (D00) PIN"
config LCD_DCPIN_UART2_RTS
bool "UART2_RTS (D28) PIN"
config LCD_DCPIN_UART2_CTS
bool "UART2_CTS (D27) PIN"
config LCD_DCPIN_I2S0_BCK
bool "I2S0_BCK (D26) PIN"
config LCD_DCPIN_I2S0_LRCK
bool "I2S0_LRCK (D25) PIN"
config LCD_DCPIN_SEN_IRQ_IN
bool "SEN_IRQ_IN (D22) PIN"
config LCD_DCPIN_EMMC_DATA3
bool "EMMC_DATA3 (D21) PIN"
config LCD_DCPIN_EMMC_DATA2
bool "EMMC_DATA2 (D20) PIN"
config LCD_DCPIN_I2S0_DATA_IN
bool "I2S0_DATA_IN (D19) PIN"
config LCD_DCPIN_I2S0_DATA_OUT
bool "I2S0_DATA_OUT (D18) PIN"
config LCD_DCPIN_I2C0_SCL
bool "I2C0_SCL (D15) PIN"
config LCD_DCPIN_I2C0_SDA
bool "I2C0_SDA (D14) PIN"
endchoice
endif
if LCD_ON_EXTENSION_BOARD
choice
prompt "LCD ILI934x RST Pin selection"
default LCD_RSTPIN_SPI2_MISO
config LCD_RSTPIN_I2C0_SCL_E
bool "I2C0_SCL (D15) PIN"
config LCD_RSTPIN_I2C0_SDA_E
bool "I2C0_SDA (D14) PIN"
config LCD_RSTPIN_PWM2
bool "PWM2 (D09) PIN"
config LCD_RSTPIN_SPI2_MISO
bool "SPI2_MISO (D08) PIN"
config LCD_RSTPIN_SPI3_CS1_X
bool "SPI3_CS1_X (D07) PIN"
config LCD_RSTPIN_PWM0
bool "PWM0 (D06) PIN"
config LCD_RSTPIN_PWM1
bool "PWM1 (D05) PIN"
config LCD_RSTPIN_SPI2_MOSI
bool "SPI2_MOSI (D04) PIN"
config LCD_RSTPIN_PWM3
bool "PWM3 (D03) PIN"
config LCD_RSTPIN_HIF_IRQ_OUT
bool "HIF_IRQ_OUT (D02) PIN"
config LCD_RSTPIN_UART2_TX_E
bool "UART2_TX (D01) PIN"
config LCD_RSTPIN_UART2_RX_E
bool "UART2_RX (D00) PIN"
endchoice
choice
prompt "LCD ILI934x DC Pin selection"
default LCD_DCPIN_PWM2
config LCD_DCPIN_I2C0_SCL_E
bool "I2C0_SCL (D15) PIN"
config LCD_DCPIN_I2C0_SDA_E
bool "I2C0_SDA (D14) PIN"
config LCD_DCPIN_PWM2
bool "PWM2 (D09) PIN"
config LCD_DCPIN_SPI2_MISO
bool "SPI2_MISO (D08) PIN"
config LCD_DCPIN_SPI3_CS1_X
bool "SPI3_CS1_X (D07) PIN"
config LCD_DCPIN_PWM0
bool "PWM0 (D06) PIN"
config LCD_DCPIN_PWM1
bool "PWM1 (D05) PIN"
config LCD_DCPIN_SPI2_MOSI
bool "SPI2_MOSI (D04) PIN"
config LCD_DCPIN_PWM3
bool "PWM3 (D03) PIN"
config LCD_DCPIN_HIF_IRQ_OUT
bool "HIF_IRQ_OUT (D02) PIN"
config LCD_DCPIN_UART2_TX_E
bool "UART2_TX (D01) PIN"
config LCD_DCPIN_UART2_RX_E
bool "UART2_RX (D00) PIN"
endchoice
endif
endif
choice
+5 -6
View File
@@ -30,6 +30,8 @@
#include <sys/boardctl.h>
#include <stdbool.h>
#include "board_lcdpins.h"
#include "cxd56_clock.h"
#include "cxd56_power.h"
#include "cxd56_flash.h"
@@ -212,9 +214,6 @@ enum board_power_device
#if defined(CONFIG_LCD_ON_MAIN_BOARD) /* Display connected to main board. */
#define DISPLAY_RST PIN_I2S0_BCK
#define DISPLAY_DC PIN_I2S0_LRCK
#define DISPLAY_SPI 5
#define DISPLAY_DMA_TXCH (4)
@@ -226,9 +225,6 @@ enum board_power_device
#else /* Display is connected through extension board. */
#define DISPLAY_RST PIN_SPI2_MISO
#define DISPLAY_DC PIN_PWM2
#define DISPLAY_SPI 4
#define DISPLAY_DMA_TXCH (2)
@@ -240,6 +236,9 @@ enum board_power_device
#endif
#define DISPLAY_RST ILI934X_RST_PIN
#define DISPLAY_DC ILI934X_DC_PIN
/* Sensor device bus definitions ********************************************/
#define SENSOR_I2C 0
@@ -0,0 +1,146 @@
/****************************************************************************
* boards/arm/cxd56xx/spresense/include/board_lcdpins.h
*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership. The
* ASF licenses this file to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance with the
* License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
* License for the specific language governing permissions and limitations
* under the License.
*
****************************************************************************/
#ifndef __BOARDS_ARM_CXD56XX_SPRESENSE_INCLUDE_BOARD_LCDPINS_H
#define __BOARDS_ARM_CXD56XX_SPRESENSE_INCLUDE_BOARD_LCDPINS_H
/****************************************************************************
* Included Files
****************************************************************************/
#include <nuttx/config.h>
/****************************************************************************
* Pre-processor Definitions
****************************************************************************/
/* ILI934X RST pin definition */
#if defined(CONFIG_LCD_RSTPIN_UART2_TX) \
|| defined(CONFIG_LCD_RSTPIN_UART2_TX_E)
# define ILI934X_RST_PIN PIN_UART2_TXD
#elif defined(CONFIG_LCD_RSTPIN_UART2_RX) \
|| defined(CONFIG_LCD_RSTPIN_UART2_RX_E)
# define ILI934X_RST_PIN PIN_UART2_RXD
#elif defined(CONFIG_LCD_RSTPIN_UART2_RTS)
# define ILI934X_RST_PIN PIN_UART2_RTS
#elif defined(CONFIG_LCD_RSTPIN_UART2_CTS)
# define ILI934X_RST_PIN PIN_UART2_CTS
#elif defined(CONFIG_LCD_RSTPIN_I2S0_BCK)
# define ILI934X_RST_PIN PIN_I2S0_BCK
#elif defined(CONFIG_LCD_RSTPIN_I2S0_LRCK)
# define ILI934X_RST_PIN PIN_I2S0_LRCK
#elif defined(CONFIG_LCD_RSTPIN_SEN_IRQ_IN)
# define ILI934X_RST_PIN PIN_SEN_IRQ_IN
#elif defined(CONFIG_LCD_RSTPIN_EMMC_DATA3)
# define ILI934X_RST_PIN PIN_EMMC_DATA3
#elif defined(CONFIG_LCD_RSTPIN_EMMC_DATA2)
# define ILI934X_RST_PIN PIN_EMMC_DATA2
#elif defined(CONFIG_LCD_RSTPIN_I2S0_DATA_IN)
# define ILI934X_RST_PIN PIN_I2S0_DATA_IN
#elif defined(CONFIG_LCD_RSTPIN_I2S0_DATA_OUT)
# define ILI934X_RST_PIN PIN_I2S0_DATA_OUT
#elif defined(CONFIG_LCD_RSTPIN_I2C0_SCL) \
|| defined(CONFIG_LCD_RSTPIN_I2C0_SCL_E)
# define ILI934X_RST_PIN PIN_I2C0_BCK
#elif defined(CONFIG_LCD_RSTPIN_I2C0_SDA) \
|| defined(CONFIG_LCD_RSTPIN_I2C0_SDA_E)
# define ILI934X_RST_PIN PIN_I2C0_BDT
#elif defined(CONFIG_LCD_RSTPIN_PWM2)
# define ILI934X_RST_PIN PIN_PWM2
#elif defined(CONFIG_LCD_RSTPIN_SPI2_MISO)
# define ILI934X_RST_PIN PIN_SPI2_MISO
#elif defined(CONFIG_LCD_RSTPIN_SPI3_CS1_X)
# define ILI934X_RST_PIN PIN_SPI3_CS1_X
#elif defined(CONFIG_LCD_RSTPIN_PWM0)
# define ILI934X_RST_PIN PIN_PWM0
#elif defined(CONFIG_LCD_RSTPIN_PWM1)
# define ILI934X_RST_PIN PIN_PWM1
#elif defined(CONFIG_LCD_RSTPIN_SPI2_MOSI)
# define ILI934X_RST_PIN PIN_SPI2_MOSI
#elif defined(CONFIG_LCD_RSTPIN_PWM3)
# define ILI934X_RST_PIN PIN_PWM3
#elif defined(CONFIG_LCD_RSTPIN_HIF_IRQ_OUT)
# define ILI934X_RST_PIN PIN_HIF_IRQ_OUT
#endif
/* ILI934X DC pin definition */
#if defined(CONFIG_LCD_DCPIN_UART2_TX) \
|| defined(CONFIG_LCD_DCPIN_UART2_TX_E)
# define ILI934X_DC_PIN PIN_UART2_TXD
#elif defined(CONFIG_LCD_DCPIN_UART2_RX) \
|| defined(CONFIG_LCD_DCPIN_UART2_RX_E)
# define ILI934X_DC_PIN PIN_UART2_RXD
#elif defined(CONFIG_LCD_DCPIN_UART2_RTS)
# define ILI934X_DC_PIN PIN_UART2_RTS
#elif defined(CONFIG_LCD_DCPIN_UART2_CTS)
# define ILI934X_DC_PIN PIN_UART2_CTS
#elif defined(CONFIG_LCD_DCPIN_I2S0_BCK)
# define ILI934X_DC_PIN PIN_I2S0_BCK
#elif defined(CONFIG_LCD_DCPIN_I2S0_LRCK)
# define ILI934X_DC_PIN PIN_I2S0_LRCK
#elif defined(CONFIG_LCD_DCPIN_SEN_IRQ_IN)
# define ILI934X_DC_PIN PIN_SEN_IRQ_IN
#elif defined(CONFIG_LCD_DCPIN_EMMC_DATA3)
# define ILI934X_DC_PIN PIN_EMMC_DATA3
#elif defined(CONFIG_LCD_DCPIN_EMMC_DATA2)
# define ILI934X_DC_PIN PIN_EMMC_DATA2
#elif defined(CONFIG_LCD_DCPIN_I2S0_DATA_IN)
# define ILI934X_DC_PIN PIN_I2S0_DATA_IN
#elif defined(CONFIG_LCD_DCPIN_I2S0_DATA_OUT)
# define ILI934X_DC_PIN PIN_I2S0_DATA_OUT
#elif defined(CONFIG_LCD_DCPIN_I2C0_SCL) \
|| defined(CONFIG_LCD_DCPIN_I2C0_SCL_E)
# define ILI934X_DC_PIN PIN_I2C0_BCK
#elif defined(CONFIG_LCD_DCPIN_I2C0_SDA) \
|| defined(CONFIG_LCD_DCPIN_I2C0_SDA_E)
# define ILI934X_DC_PIN PIN_I2C0_BDT
#elif defined(CONFIG_LCD_DCPIN_PWM2)
# define ILI934X_DC_PIN PIN_PWM2
#elif defined(CONFIG_LCD_DCPIN_SPI2_MISO)
# define ILI934X_DC_PIN PIN_SPI2_MISO
#elif defined(CONFIG_LCD_DCPIN_SPI3_CS1_X)
# define ILI934X_DC_PIN PIN_SPI3_CS1_X
#elif defined(CONFIG_LCD_DCPIN_PWM0)
# define ILI934X_DC_PIN PIN_PWM0
#elif defined(CONFIG_LCD_DCPIN_PWM1)
# define ILI934X_DC_PIN PIN_PWM1
#elif defined(CONFIG_LCD_DCPIN_SPI2_MOSI)
# define ILI934X_DC_PIN PIN_SPI2_MOSI
#elif defined(CONFIG_LCD_DCPIN_PWM3)
# define ILI934X_DC_PIN PIN_PWM3
#elif defined(CONFIG_LCD_DCPIN_HIF_IRQ_OUT)
# define ILI934X_DC_PIN PIN_HIF_IRQ_OUT
#endif
#if !defined(CONFIG_LCD)
# if !defined(ILI934X_RST_PIN)
# define ILI934X_RST_PIN 0
# endif
# if !defined(ILI934X_DC_PIN)
# define ILI934X_DC_PIN 0
# endif
#endif
#endif /* __BOARDS_ARM_CXD56XX_SPRESENSE_INCLUDE_BOARD_LCDPINS_H */