diff options
Diffstat (limited to 'drivers/video/atmel_lcdfb_core.c')
-rw-r--r-- | drivers/video/atmel_lcdfb_core.c | 49 |
1 files changed, 19 insertions, 30 deletions
diff --git a/drivers/video/atmel_lcdfb_core.c b/drivers/video/atmel_lcdfb_core.c index c6ece5b785..9d3e6682b6 100644 --- a/drivers/video/atmel_lcdfb_core.c +++ b/drivers/video/atmel_lcdfb_core.c @@ -1,21 +1,8 @@ +// SPDX-License-Identifier: GPL-2.0-or-later /* * Driver for AT91/AT32 LCD Controller * * Copyright (C) 2007 Atmel Corporation - * - * See file CREDITS for list of people who contributed to this - * project. - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License as - * published by the Free Software Foundation; either version 2 of - * the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * */ #include <common.h> @@ -27,7 +14,7 @@ #include <linux/clk.h> #include <malloc.h> -#include <mach/cpu.h> +#include <mach/at91/cpu.h> #include "atmel_lcdfb.h" @@ -75,7 +62,7 @@ static void atmel_lcdc_disable_controller(struct fb_info *fb_info) static int atmel_lcdfb_check_var(struct fb_info *info) { - struct device_d *dev = &info->dev; + struct device *dev = &info->dev; struct atmel_lcdfb_info *sinfo = info->priv; struct fb_videomode *mode = info->mode; unsigned long clk_value_khz; @@ -132,7 +119,7 @@ static int atmel_lcdfb_check_var(struct fb_info *info) = info->bits_per_pixel; break; case 16: - /* Older SOCs use BGR:555 rather than BGR:565. */ + /* Older SOCs use BRG:555 rather than BRG:565. */ if (sinfo->have_intensity_bit) info->green.length = 5; else @@ -142,7 +129,7 @@ static int atmel_lcdfb_check_var(struct fb_info *info) info->red.offset = info->green.length + 5; info->blue.offset = 0; } else { - /* BGR:5X5 mode */ + /* BRG:5X5 mode */ info->red.offset = 0; info->blue.offset = info->green.length + 5; } @@ -159,7 +146,7 @@ static int atmel_lcdfb_check_var(struct fb_info *info) info->red.offset = 16; info->blue.offset = 0; } else { - /* BGR:888 mode */ + /* BRG:888 mode */ info->red.offset = 0; info->blue.offset = 16; } @@ -250,7 +237,7 @@ static struct fb_ops atmel_lcdc_ops = { .fb_disable = atmel_lcdc_disable_controller, }; -static int power_control_init(struct device_d *dev, +static int power_control_init(struct device *dev, struct atmel_lcdfb_info *sinfo, int gpio, bool active_low) @@ -282,7 +269,7 @@ static int power_control_init(struct device_d *dev, } /* - * Syntax: atmel,lcd-wiring-mode: lcd wiring mode "RGB", "BGR" + * Syntax: atmel,lcd-wiring-mode: lcd wiring mode "RGB", "BRG" */ static int of_get_wiring_mode(struct device_node *np, struct atmel_lcdfb_info *sinfo) @@ -293,12 +280,12 @@ static int of_get_wiring_mode(struct device_node *np, ret = of_property_read_string(np, "atmel,lcd-wiring-mode", &mode); if (ret < 0) { /* Not present, use defaults */ - sinfo->lcd_wiring_mode = ATMEL_LCDC_WIRING_BGR; + sinfo->lcd_wiring_mode = ATMEL_LCDC_WIRING_BRG; return 0; } - if (!strcasecmp(mode, "BGR")) { - sinfo->lcd_wiring_mode = ATMEL_LCDC_WIRING_BGR; + if (!strcasecmp(mode, "BRG")) { + sinfo->lcd_wiring_mode = ATMEL_LCDC_WIRING_BRG; } else if (!strcasecmp(mode, "RGB")) { sinfo->lcd_wiring_mode = ATMEL_LCDC_WIRING_RGB; } else { @@ -307,7 +294,7 @@ static int of_get_wiring_mode(struct device_node *np, return 0; } -static int of_get_power_control(struct device_d *dev, +static int of_get_power_control(struct device *dev, struct device_node *np, struct atmel_lcdfb_info *sinfo) { @@ -324,7 +311,7 @@ static int of_get_power_control(struct device_d *dev, return power_control_init(dev, sinfo, gpio, active_low); } -static int lcdfb_of_init(struct device_d *dev, struct atmel_lcdfb_info *sinfo) +static int lcdfb_of_init(struct device *dev, struct atmel_lcdfb_info *sinfo) { struct fb_info *info = &sinfo->info; struct display_timings *modes; @@ -341,7 +328,7 @@ static int lcdfb_of_init(struct device_d *dev, struct atmel_lcdfb_info *sinfo) } /* Required properties */ - display = of_parse_phandle(dev->device_node, "display", 0); + display = of_parse_phandle(dev->of_node, "display", 0); if (!display) { dev_err(dev, "no display phandle\n"); return -ENOENT; @@ -391,7 +378,8 @@ err: return ret; } -static int lcdfb_pdata_init(struct device_d *dev, struct atmel_lcdfb_info *sinfo) +static int lcdfb_pdata_init(struct device *dev, + struct atmel_lcdfb_info *sinfo) { struct atmel_lcdfb_platform_data *pdata; struct fb_info *info; @@ -435,7 +423,7 @@ err: return ret; } -int atmel_lcdc_register(struct device_d *dev, struct atmel_lcdfb_devdata *data) +int atmel_lcdc_register(struct device *dev, struct atmel_lcdfb_devdata *data) { struct atmel_lcdfb_info *sinfo; const char *bus_clk_name; @@ -463,7 +451,7 @@ int atmel_lcdc_register(struct device_d *dev, struct atmel_lcdfb_devdata *data) } bus_clk_name = "hck1"; } else { - if (!IS_ENABLED(CONFIG_OFDEVICE) || !dev->device_node) + if (!IS_ENABLED(CONFIG_OFDEVICE) || !dev->of_node) return -EINVAL; ret = lcdfb_of_init(dev, sinfo); @@ -492,6 +480,7 @@ int atmel_lcdc_register(struct device_d *dev, struct atmel_lcdfb_devdata *data) sinfo->dma_desc = dma_alloc_coherent(data->dma_desc_size, DMA_ADDRESS_BROKEN); + info->dev.parent = dev; ret = register_framebuffer(info); if (ret != 0) { dev_err(dev, "Failed to register framebuffer\n"); |