diff --git a/configs/Kconfig b/configs/Kconfig index 4fe6e0928b2..fab01136d24 100644 --- a/configs/Kconfig +++ b/configs/Kconfig @@ -1596,6 +1596,10 @@ config BOARDCTL_ADCTEST bool "Enable ADC test interfaces" default n +config BOARDCTL_GRAPHICS + bool "Enable custom graphics initialization interfaces" + default n + config BOARDCTL_IOCTL bool "Board-specific boardctl() commands" default n diff --git a/configs/boardctl.c b/configs/boardctl.c index 953b3e2d0e5..e8903f085fe 100755 --- a/configs/boardctl.c +++ b/configs/boardctl.c @@ -141,6 +141,26 @@ int boardctl(unsigned int cmd, uintptr_t arg) break; #endif +#ifdef CONFIG_BOARDCTL_GRAPHICS + /* CMD: BOARDIOC_GRAPHICS_SETUP + * DESCRIPTION: Configure graphics that require special initialization + * procedures + * ARG: A pointer to an instance of struct boardioc_graphics_s + * CONFIGURATION: CONFIG_LIB_BOARDCTL && CONFIG_BOARDCTL_GRAPHICS + * DEPENDENCIES: Board logic must provide board_adc_setup() + */ + + case BOARDIOC_GRAPHICS_SETUP: + { + FAR struct boardioc_graphics_s *setup = + ( FAR struct boardioc_graphics_s *)arg; + + setup->dev = board_graphics_setup(setup->devno); + ret = setup->dev ? OK : -ENODEV; + } + break; +#endif + default: { #ifdef CONFIG_BOARDCTL_IOCTL diff --git a/configs/lm3s6965-ek/src/lm_oled.c b/configs/lm3s6965-ek/src/lm_oled.c index b2582ce8225..7aa01e931ba 100644 --- a/configs/lm3s6965-ek/src/lm_oled.c +++ b/configs/lm3s6965-ek/src/lm_oled.c @@ -1,7 +1,7 @@ /**************************************************************************** * config/lm3s6965-ek/src/lm_oled.c * - * Copyright (C) 2010-2011 Gregory Nutt. All rights reserved. + * Copyright (C) 2010-2011, 2015 Gregory Nutt. All rights reserved. * Author: Gregory Nutt * * Redistribution and use in source and binary forms, with or without @@ -43,6 +43,7 @@ #include #include +#include #include #include #include @@ -84,27 +85,27 @@ ****************************************************************************/ /**************************************************************************** - * Name: up_nxdrvinit + * Name: board_graphics_setup * * Description: * Called by NX initialization logic to configure the OLED. * ****************************************************************************/ -FAR struct lcd_dev_s *up_nxdrvinit(unsigned int devno) +FAR struct lcd_dev_s *board_graphics_setup(unsigned int devno) { FAR struct spi_dev_s *spi; FAR struct lcd_dev_s *dev; /* Configure the OLED GPIOs */ - oledcs_dumpgpio("up_nxdrvinit: After OLEDCS setup"); - oleddc_dumpgpio("up_nxdrvinit: On entry"); + oledcs_dumpgpio("board_graphics_setup: After OLEDCS setup"); + oleddc_dumpgpio("board_graphics_setup: On entry"); tiva_configgpio(OLEDDC_GPIO); /* PC7: OLED display data/control select (D/Cn) */ tiva_configgpio(OLEDEN_GPIO); /* PC6: Enable +15V needed by OLED (EN+15V) */ - oleddc_dumpgpio("up_nxdrvinit: After OLEDDC/EN setup"); + oleddc_dumpgpio("board_graphics_setup: After OLEDDC/EN setup"); /* Get the SSI port (configure as a Freescale SPI port) */ @@ -132,6 +133,7 @@ FAR struct lcd_dev_s *up_nxdrvinit(unsigned int devno) return dev; } } + return NULL; } diff --git a/configs/lm3s8962-ek/src/lm_oled.c b/configs/lm3s8962-ek/src/lm_oled.c index cc641adcb34..b171881cb88 100644 --- a/configs/lm3s8962-ek/src/lm_oled.c +++ b/configs/lm3s8962-ek/src/lm_oled.c @@ -1,7 +1,7 @@ /**************************************************************************** * config/lm3s8962-ek/src/lm_oled.c * - * Copyright (C) 2010 Gregory Nutt. All rights reserved. + * Copyright (C) 2010, 2015 Gregory Nutt. All rights reserved. * Author: Gregory Nutt * * Redistribution and use in source and binary forms, with or without @@ -43,6 +43,7 @@ #include #include +#include #include #include #include @@ -84,27 +85,27 @@ ****************************************************************************/ /**************************************************************************** - * Name: up_nxdrvinit + * Name: board_graphics_setup * * Description: * Called NX initialization logic to configure the OLED. * ****************************************************************************/ -FAR struct lcd_dev_s *up_nxdrvinit(unsigned int devno) +FAR struct lcd_dev_s *board_graphics_setup(unsigned int devno) { FAR struct spi_dev_s *spi; FAR struct lcd_dev_s *dev; /* Configure the OLED GPIOs */ - oledcs_dumpgpio("up_nxdrvinit: After OLEDCS setup"); - oleddc_dumpgpio("up_nxdrvinit: On entry"); + oledcs_dumpgpio("board_graphics_setup: After OLEDCS setup"); + oleddc_dumpgpio("board_graphics_setup: On entry"); tiva_configgpio(OLEDDC_GPIO); /* PC7: OLED display data/control select (D/Cn) */ tiva_configgpio(OLEDEN_GPIO); /* PC6: Enable +15V needed by OLED (EN+15V) */ - oleddc_dumpgpio("up_nxdrvinit: After OLEDDC/EN setup"); + oleddc_dumpgpio("board_graphics_setup: After OLEDDC/EN setup"); /* Get the SSI port (configure as a Freescale SPI port) */ diff --git a/configs/lpcxpresso-lpc1768/src/lpc17_oled.c b/configs/lpcxpresso-lpc1768/src/lpc17_oled.c index 01692b65bf6..b14186f26db 100644 --- a/configs/lpcxpresso-lpc1768/src/lpc17_oled.c +++ b/configs/lpcxpresso-lpc1768/src/lpc17_oled.c @@ -1,7 +1,7 @@ /**************************************************************************** * config/lpcxpresso-lpc1768/src/lpc17_oled.c * - * Copyright (C) 2011, 2013 Gregory Nutt. All rights reserved. + * Copyright (C) 2011, 2013, 2015 Gregory Nutt. All rights reserved. * Author: Gregory Nutt * * Redistribution and use in source and binary forms, with or without @@ -43,6 +43,7 @@ #include #include +#include #include #include #include @@ -98,14 +99,14 @@ ****************************************************************************/ /**************************************************************************** - * Name: up_nxdrvinit + * Name: board_graphics_setup * * Description: * Called by NX initialization logic to configure the OLED. * ****************************************************************************/ -FAR struct lcd_dev_s *up_nxdrvinit(unsigned int devno) +FAR struct lcd_dev_s *board_graphics_setup(unsigned int devno) { FAR struct spi_dev_s *spi; FAR struct lcd_dev_s *dev; @@ -114,13 +115,13 @@ FAR struct lcd_dev_s *up_nxdrvinit(unsigned int devno) * J43, J45 pin1-2 and J46 pin 1-2. */ - oledcs_dumpgpio("up_nxdrvinit: After OLED CS setup"); - oleddc_dumpgpio("up_nxdrvinit: On entry"); + oledcs_dumpgpio("board_graphics_setup: After OLED CS setup"); + oleddc_dumpgpio("board_graphics_setup: On entry"); (void)lpc17_configgpio(LPCXPRESSO_OLED_POWER); /* OLED 11V power */ (void)lpc17_configgpio(LPCXPRESSO_OLED_DC); /* OLED Command/Data */ - oleddc_dumpgpio("up_nxdrvinit: After OLED Power/DC setup"); + oleddc_dumpgpio("board_graphics_setup: After OLED Power/DC setup"); /* Get the SPI1 port (configure as a Freescale SPI port) */ diff --git a/configs/olimex-lpc1766stk/src/lpc17_lcd.c b/configs/olimex-lpc1766stk/src/lpc17_lcd.c index 4fa4d400d3e..180743ce37a 100644 --- a/configs/olimex-lpc1766stk/src/lpc17_lcd.c +++ b/configs/olimex-lpc1766stk/src/lpc17_lcd.c @@ -44,6 +44,7 @@ #include #include +#include #include #include #include @@ -176,24 +177,24 @@ void nokia_blinitialize(void) ****************************************************************************/ /**************************************************************************** - * Name: up_nxdrvinit + * Name: board_graphics_setup * * Description: * Called NX initialization logic to configure the LCD. * ****************************************************************************/ -FAR struct lcd_dev_s *up_nxdrvinit(unsigned int devno) +FAR struct lcd_dev_s *board_graphics_setup(unsigned int devno) { FAR struct spi_dev_s *spi; FAR struct lcd_dev_s *dev; /* Configure the LCD GPIOs */ - lcd_dumpgpio("up_nxdrvinit: On entry"); + lcd_dumpgpio("board_graphics_setup: On entry"); lpc17_configgpio(LPC1766STK_LCD_RST); lpc17_configgpio(LPC1766STK_LCD_BL); - lcd_dumpgpio("up_nxdrvinit: After GPIO setup"); + lcd_dumpgpio("board_graphics_setup: After GPIO setup"); /* Reset the LCD */ diff --git a/configs/sam4l-xplained/src/sam_ug2832hsweg04.c b/configs/sam4l-xplained/src/sam_ug2832hsweg04.c index 10000eb5efb..9d5685550c3 100644 --- a/configs/sam4l-xplained/src/sam_ug2832hsweg04.c +++ b/configs/sam4l-xplained/src/sam_ug2832hsweg04.c @@ -1,7 +1,7 @@ /**************************************************************************** * config/sam4l-xplained/src/sam_ug2832hsweg04.c * - * Copyright (C) 2013 Gregory Nutt. All rights reserved. + * Copyright (C) 2013, 2015 Gregory Nutt. All rights reserved. * Author: Gregory Nutt * * Redistribution and use in source and binary forms, with or without @@ -80,6 +80,7 @@ #include +#include #include #include #include @@ -126,14 +127,14 @@ ****************************************************************************/ /**************************************************************************** - * Name: up_nxdrvinit + * Name: board_graphics_setup * * Description: * Called by NX initialization logic to configure the OLED. * ****************************************************************************/ -FAR struct lcd_dev_s *up_nxdrvinit(unsigned int devno) +FAR struct lcd_dev_s *board_graphics_setup(unsigned int devno) { FAR struct spi_dev_s *spi; FAR struct lcd_dev_s *dev; diff --git a/configs/samd20-xplained/src/sam_ug2832hsweg04.c b/configs/samd20-xplained/src/sam_ug2832hsweg04.c index bc6fde097ff..52ac0197153 100644 --- a/configs/samd20-xplained/src/sam_ug2832hsweg04.c +++ b/configs/samd20-xplained/src/sam_ug2832hsweg04.c @@ -110,6 +110,7 @@ #include +#include #include #include #include @@ -156,14 +157,14 @@ ****************************************************************************/ /**************************************************************************** - * Name: up_nxdrvinit + * Name: board_graphics_setup * * Description: * Called by NX initialization logic to configure the OLED. * ****************************************************************************/ -FAR struct lcd_dev_s *up_nxdrvinit(unsigned int devno) +FAR struct lcd_dev_s *board_graphics_setup(unsigned int devno) { FAR struct spi_dev_s *spi; FAR struct lcd_dev_s *dev; diff --git a/configs/stm32f4discovery/src/stm32_ug2864ambag01.c b/configs/stm32f4discovery/src/stm32_ug2864ambag01.c index fdc6b88f38b..ce735389a19 100644 --- a/configs/stm32f4discovery/src/stm32_ug2864ambag01.c +++ b/configs/stm32f4discovery/src/stm32_ug2864ambag01.c @@ -41,6 +41,7 @@ #include +#include #include #include #include @@ -105,14 +106,14 @@ ****************************************************************************/ /**************************************************************************** - * Name: up_nxdrvinit + * Name: board_graphics_setup * * Description: * Called by NX initialization logic to configure the OLED. * ****************************************************************************/ -FAR struct lcd_dev_s *up_nxdrvinit(unsigned int devno) +FAR struct lcd_dev_s *board_graphics_setup(unsigned int devno) { FAR struct spi_dev_s *spi; FAR struct lcd_dev_s *dev; diff --git a/configs/stm32f4discovery/src/stm32_ug2864hsweg01.c b/configs/stm32f4discovery/src/stm32_ug2864hsweg01.c index 3366b093d79..27db6391a29 100644 --- a/configs/stm32f4discovery/src/stm32_ug2864hsweg01.c +++ b/configs/stm32f4discovery/src/stm32_ug2864hsweg01.c @@ -41,6 +41,7 @@ #include +#include #include #include #include @@ -105,14 +106,14 @@ ****************************************************************************/ /**************************************************************************** - * Name: up_nxdrvinit + * Name: board_graphics_setup * * Description: * Called by NX initialization logic to configure the OLED. * ****************************************************************************/ -FAR struct lcd_dev_s *up_nxdrvinit(unsigned int devno) +FAR struct lcd_dev_s *board_graphics_setup(unsigned int devno) { FAR struct spi_dev_s *spi; FAR struct lcd_dev_s *dev; diff --git a/configs/zp214xpa/src/lpc2148_ug2864ambag01.c b/configs/zp214xpa/src/lpc2148_ug2864ambag01.c index 398fc2c510b..d74a035c0ce 100644 --- a/configs/zp214xpa/src/lpc2148_ug2864ambag01.c +++ b/configs/zp214xpa/src/lpc2148_ug2864ambag01.c @@ -41,6 +41,7 @@ #include +#include #include #include #include @@ -110,14 +111,14 @@ ****************************************************************************/ /**************************************************************************** - * Name: up_nxdrvinit + * Name: board_graphics_setup * * Description: * Called by NX initialization logic to configure the OLED. * ****************************************************************************/ -FAR struct lcd_dev_s *up_nxdrvinit(unsigned int devno) +FAR struct lcd_dev_s *board_graphics_setup(unsigned int devno) { FAR struct spi_dev_s *spi; FAR struct lcd_dev_s *dev;