diff --git a/drivers/misc/grove_lcd_rgb/grove_lcd_rgb.c b/drivers/misc/grove_lcd_rgb/grove_lcd_rgb.c index fade8ce0e76..4c23e4bfb4e 100644 --- a/drivers/misc/grove_lcd_rgb/grove_lcd_rgb.c +++ b/drivers/misc/grove_lcd_rgb/grove_lcd_rgb.c @@ -1,9 +1,12 @@ /* * Copyright (c) 2015 Intel Corporation + * Copyright (c) 2022 Nordic Semiconductor ASA * * SPDX-License-Identifier: Apache-2.0 */ +#define DT_DRV_COMPAT seeed_grove_lcd_rgb + #include #include #include @@ -335,14 +338,6 @@ static struct glcd_data grove_lcd_driver = { .function = 0, }; - /* Since device_get_binding() will not return any - * reference to a driver instance if driver_api - * is NULL and grove_lcd does not have any API struct, - * just populate it with some magic number - * so grove_lcd can be referenced. - * since grove_lcd_driver struct is available, populating with it - */ -DEVICE_DEFINE(grove_lcd, GROVE_LCD_NAME, glcd_initialize, - NULL, &grove_lcd_driver, &grove_lcd_config, - POST_KERNEL, CONFIG_KERNEL_INIT_PRIORITY_DEVICE, - (void *)&grove_lcd_driver); +DEVICE_DT_INST_DEFINE(0, glcd_initialize, NULL, &grove_lcd_driver, + &grove_lcd_config, POST_KERNEL, + CONFIG_KERNEL_INIT_PRIORITY_DEVICE, NULL); diff --git a/dts/bindings/misc/seeed,grove-lcd-rgb.yaml b/dts/bindings/misc/seeed,grove-lcd-rgb.yaml new file mode 100644 index 00000000000..faaf8047d1e --- /dev/null +++ b/dts/bindings/misc/seeed,grove-lcd-rgb.yaml @@ -0,0 +1,8 @@ +# Copyright (c) 2022 Nordic Semiconductor ASA +# SPDX-License-Identifier: Apache-2.0 + +description: Seeed Grove LCD RGB + +compatible: "seeed,grove-lcd-rgb" + +include: i2c-device.yaml diff --git a/samples/drivers/misc/grove_display/boards/serpente.overlay b/samples/drivers/misc/grove_display/boards/serpente.overlay index 96d5728a312..cc94e62f2e9 100644 --- a/samples/drivers/misc/grove_display/boards/serpente.overlay +++ b/samples/drivers/misc/grove_display/boards/serpente.overlay @@ -28,4 +28,10 @@ /delete-property/ current-speed; /delete-property/ rxpo; /delete-property/ txpo; + + glcd: glcd@3e { + compatible = "seeed,grove-lcd-rgb"; + label = "GLCD"; + reg = <0x3e>; + }; };