Re: [PATCH 08/46] ARM: pxa: move regs-lcd.h into driver
From: Bartlomiej Zolnierkiewicz
Date: Fri Nov 08 2019 - 09:40:18 EST
On 10/18/19 5:41 PM, Arnd Bergmann wrote:
> Only the pxafb driver uses this header, so move it into the
> same directory. The SMART_* macros are required by some
> platform data definitions and can go into the
> linux/platform_data/video-pxafb.h header.
>
> Cc: Bartlomiej Zolnierkiewicz <b.zolnierkie@xxxxxxxxxxx>
> Cc: dri-devel@xxxxxxxxxxxxxxxxxxxxx
> Cc: linux-fbdev@xxxxxxxxxxxxxxx
> Signed-off-by: Arnd Bergmann <arnd@xxxxxxxx>
Acked-by: Bartlomiej Zolnierkiewicz <b.zolnierkie@xxxxxxxxxxx>
Best regards,
--
Bartlomiej Zolnierkiewicz
Samsung R&D Institute Poland
Samsung Electronics
> ---
> .../video/fbdev/pxa3xx-regs.h | 19 ----------------
> drivers/video/fbdev/pxafb.c | 1 +
> include/linux/platform_data/video-pxafb.h | 22 ++++++++++++++++++-
> 3 files changed, 22 insertions(+), 20 deletions(-)
> rename arch/arm/mach-pxa/include/mach/regs-lcd.h => drivers/video/fbdev/pxa3xx-regs.h (90%)
>
> diff --git a/arch/arm/mach-pxa/include/mach/regs-lcd.h b/drivers/video/fbdev/pxa3xx-regs.h
> similarity index 90%
> rename from arch/arm/mach-pxa/include/mach/regs-lcd.h
> rename to drivers/video/fbdev/pxa3xx-regs.h
> index 6a434675f84a..6a96610ef9b5 100644
> --- a/arch/arm/mach-pxa/include/mach/regs-lcd.h
> +++ b/drivers/video/fbdev/pxa3xx-regs.h
> @@ -177,23 +177,4 @@
> #define PRSR_ST_OK (1 << 9) /* Status OK */
> #define PRSR_CON_NT (1 << 10) /* Continue to Next Command */
>
> -#define SMART_CMD_A0 (0x1 << 8)
> -#define SMART_CMD_READ_STATUS_REG (0x0 << 9)
> -#define SMART_CMD_READ_FRAME_BUFFER ((0x0 << 9) | SMART_CMD_A0)
> -#define SMART_CMD_WRITE_COMMAND (0x1 << 9)
> -#define SMART_CMD_WRITE_DATA ((0x1 << 9) | SMART_CMD_A0)
> -#define SMART_CMD_WRITE_FRAME ((0x2 << 9) | SMART_CMD_A0)
> -#define SMART_CMD_WAIT_FOR_VSYNC (0x3 << 9)
> -#define SMART_CMD_NOOP (0x4 << 9)
> -#define SMART_CMD_INTERRUPT (0x5 << 9)
> -
> -#define SMART_CMD(x) (SMART_CMD_WRITE_COMMAND | ((x) & 0xff))
> -#define SMART_DAT(x) (SMART_CMD_WRITE_DATA | ((x) & 0xff))
> -
> -/* SMART_DELAY() is introduced for software controlled delay primitive which
> - * can be inserted between command sequences, unused command 0x6 is used here
> - * and delay ranges from 0ms ~ 255ms
> - */
> -#define SMART_CMD_DELAY (0x6 << 9)
> -#define SMART_DELAY(ms) (SMART_CMD_DELAY | ((ms) & 0xff))
> #endif /* __ASM_ARCH_REGS_LCD_H */
> diff --git a/drivers/video/fbdev/pxafb.c b/drivers/video/fbdev/pxafb.c
> index e68b8a69db92..a65453c6c390 100644
> --- a/drivers/video/fbdev/pxafb.c
> +++ b/drivers/video/fbdev/pxafb.c
> @@ -72,6 +72,7 @@
> #define DEBUG_VAR 1
>
> #include "pxafb.h"
> +#include "pxa3xx-regs.h"
>
> /* Bits which should not be set in machine configuration structures */
> #define LCCR0_INVALID_CONFIG_MASK (LCCR0_OUM | LCCR0_BM | LCCR0_QDM |\
> diff --git a/include/linux/platform_data/video-pxafb.h b/include/linux/platform_data/video-pxafb.h
> index b3d574778326..6333bac166a5 100644
> --- a/include/linux/platform_data/video-pxafb.h
> +++ b/include/linux/platform_data/video-pxafb.h
> @@ -8,7 +8,6 @@
> */
>
> #include <linux/fb.h>
> -#include <mach/regs-lcd.h>
>
> /*
> * Supported LCD connections
> @@ -153,6 +152,27 @@ struct pxafb_mach_info {
> void pxa_set_fb_info(struct device *, struct pxafb_mach_info *);
> unsigned long pxafb_get_hsync_time(struct device *dev);
>
> +/* smartpanel related */
> +#define SMART_CMD_A0 (0x1 << 8)
> +#define SMART_CMD_READ_STATUS_REG (0x0 << 9)
> +#define SMART_CMD_READ_FRAME_BUFFER ((0x0 << 9) | SMART_CMD_A0)
> +#define SMART_CMD_WRITE_COMMAND (0x1 << 9)
> +#define SMART_CMD_WRITE_DATA ((0x1 << 9) | SMART_CMD_A0)
> +#define SMART_CMD_WRITE_FRAME ((0x2 << 9) | SMART_CMD_A0)
> +#define SMART_CMD_WAIT_FOR_VSYNC (0x3 << 9)
> +#define SMART_CMD_NOOP (0x4 << 9)
> +#define SMART_CMD_INTERRUPT (0x5 << 9)
> +
> +#define SMART_CMD(x) (SMART_CMD_WRITE_COMMAND | ((x) & 0xff))
> +#define SMART_DAT(x) (SMART_CMD_WRITE_DATA | ((x) & 0xff))
> +
> +/* SMART_DELAY() is introduced for software controlled delay primitive which
> + * can be inserted between command sequences, unused command 0x6 is used here
> + * and delay ranges from 0ms ~ 255ms
> + */
> +#define SMART_CMD_DELAY (0x6 << 9)
> +#define SMART_DELAY(ms) (SMART_CMD_DELAY | ((ms) & 0xff))
> +
> #ifdef CONFIG_FB_PXA_SMARTPANEL
> extern int pxafb_smart_queue(struct fb_info *info, uint16_t *cmds, int);
> extern int pxafb_smart_flush(struct fb_info *info);
>