Hi Boris,
On 06/10/2014 12:04 AM, Boris BREZILLON wrote:
> The HLCDC (High LCD Controller) IP supports 4 different output mode
> (RGB444, RGB565, RGB666 and RGB888) and the pin muxing depends on the
> chosen RGB mode.
>
> Split the pin definition to be able to set the pin config according to the
> selected mode.
>
> Signed-off-by: Boris BREZILLON <boris.brezillon at free-electrons.com>
> ---
> arch/arm/boot/dts/sama5d3_lcd.dtsi | 127
> ++++++++++++++++++++++++++++---------
> 1 file changed, 96 insertions(+), 31 deletions(-)
On sama5d3xek board, it only works in 24bits output mode. And it depends
on the hardware design. So, I think only keep only one pinctrl
configuration.
Best Regards,
Bo Shen
> diff --git a/arch/arm/boot/dts/sama5d3_lcd.dtsi
> b/arch/arm/boot/dts/sama5d3_lcd.dtsi
> index 85d3027..2186b89 100644
> --- a/arch/arm/boot/dts/sama5d3_lcd.dtsi
> +++ b/arch/arm/boot/dts/sama5d3_lcd.dtsi
> @@ -15,38 +15,103 @@
> apb {
> pinctrl at fffff200 {
> lcd {
> - pinctrl_lcd: lcd-0 {
> + pinctrl_lcd_pwm: lcd-pwm-0 {
> + atmel,pins = <AT91_PIOA 24
> AT91_PERIPH_A AT91_PINCTRL_NONE>; /* LCDPWM */
> + };
> +
> + pinctrl_lcd_base: lcd-base-0 {
> + atmel,pins =
> + <AT91_PIOA 26
> AT91_PERIPH_A AT91_PINCTRL_NONE /* LCDVSYNC */
> + AT91_PIOA 27
> AT91_PERIPH_A AT91_PINCTRL_NONE /* LCDHSYNC */
> + AT91_PIOA 25
> AT91_PERIPH_A AT91_PINCTRL_NONE /* LCDDISP */
> + AT91_PIOA 29
> AT91_PERIPH_A AT91_PINCTRL_NONE /* LCDDEN */
> + AT91_PIOA 28
> AT91_PERIPH_A AT91_PINCTRL_NONE>; /* LCDPCK */
> + };
> +
> + pinctrl_lcd_rgb444: lcd-rgb-0 {
> + atmel,pins =
> + <AT91_PIOA 0
> AT91_PERIPH_A AT91_PINCTRL_NONE /* LCDD0 pin */
> + AT91_PIOA 1
> AT91_PERIPH_A AT91_PINCTRL_NONE /* LCDD1 pin */
> + AT91_PIOA 2
> AT91_PERIPH_A AT91_PINCTRL_NONE /* LCDD2 pin */
> + AT91_PIOA 3
> AT91_PERIPH_A AT91_PINCTRL_NONE /* LCDD3 pin */
> + AT91_PIOA 4
> AT91_PERIPH_A AT91_PINCTRL_NONE /* LCDD4 pin */
> + AT91_PIOA 5
> AT91_PERIPH_A AT91_PINCTRL_NONE /* LCDD5 pin */
> + AT91_PIOA 6
> AT91_PERIPH_A AT91_PINCTRL_NONE /* LCDD6 pin */
> + AT91_PIOA 7
> AT91_PERIPH_A AT91_PINCTRL_NONE /* LCDD7 pin */
> + AT91_PIOA 8
> AT91_PERIPH_A AT91_PINCTRL_NONE /* LCDD8 pin */
> + AT91_PIOA 9
> AT91_PERIPH_A AT91_PINCTRL_NONE /* LCDD9 pin */
> + AT91_PIOA 10
> AT91_PERIPH_A AT91_PINCTRL_NONE /* LCDD10 pin */
> + AT91_PIOA 11
> AT91_PERIPH_A AT91_PINCTRL_NONE>; /* LCDD11 pin */
> + };
> +
> + pinctrl_lcd_rgb565: lcd-rgb-1 {
> + atmel,pins =
> + <AT91_PIOA 0
> AT91_PERIPH_A AT91_PINCTRL_NONE /* LCDD0 pin */
> + AT91_PIOA 1
> AT91_PERIPH_A AT91_PINCTRL_NONE /* LCDD1 pin */
> + AT91_PIOA 2
> AT91_PERIPH_A AT91_PINCTRL_NONE /* LCDD2 pin */
> + AT91_PIOA 3
> AT91_PERIPH_A AT91_PINCTRL_NONE /* LCDD3 pin */
> + AT91_PIOA 4
> AT91_PERIPH_A AT91_PINCTRL_NONE /* LCDD4 pin */
> + AT91_PIOA 5
> AT91_PERIPH_A AT91_PINCTRL_NONE /* LCDD5 pin */
> + AT91_PIOA 6
> AT91_PERIPH_A AT91_PINCTRL_NONE /* LCDD6 pin */
> + AT91_PIOA 7
> AT91_PERIPH_A AT91_PINCTRL_NONE /* LCDD7 pin */
> + AT91_PIOA 8
> AT91_PERIPH_A AT91_PINCTRL_NONE /* LCDD8 pin */
> + AT91_PIOA 9
> AT91_PERIPH_A AT91_PINCTRL_NONE /* LCDD9 pin */
> + AT91_PIOA 10
> AT91_PERIPH_A AT91_PINCTRL_NONE /* LCDD10 pin */
> + AT91_PIOA 11
> AT91_PERIPH_A AT91_PINCTRL_NONE /* LCDD11 pin */
> + AT91_PIOA 12
> AT91_PERIPH_A AT91_PINCTRL_NONE /* LCDD12 pin */
> + AT91_PIOA 13
> AT91_PERIPH_A AT91_PINCTRL_NONE /* LCDD13 pin */
> + AT91_PIOA 14
> AT91_PERIPH_A AT91_PINCTRL_NONE /* LCDD14 pin */
> + AT91_PIOA 15
> AT91_PERIPH_A AT91_PINCTRL_NONE>; /* LCDD15 pin */
> + };
> +
> + pinctrl_lcd_rgb666: lcd-rgb-2 {
> + atmel,pins =
> + <AT91_PIOA 0
> AT91_PERIPH_A AT91_PINCTRL_NONE /* LCDD0 pin */
> + AT91_PIOA 1
> AT91_PERIPH_A AT91_PINCTRL_NONE /* LCDD1 pin */
> + AT91_PIOA 2
> AT91_PERIPH_A AT91_PINCTRL_NONE /* LCDD2 pin */
> + AT91_PIOA 3
> AT91_PERIPH_A AT91_PINCTRL_NONE /* LCDD3 pin */
> + AT91_PIOA 4
> AT91_PERIPH_A AT91_PINCTRL_NONE /* LCDD4 pin */
> + AT91_PIOA 5
> AT91_PERIPH_A AT91_PINCTRL_NONE /* LCDD5 pin */
> + AT91_PIOA 6
> AT91_PERIPH_A AT91_PINCTRL_NONE /* LCDD6 pin */
> + AT91_PIOA 7
> AT91_PERIPH_A AT91_PINCTRL_NONE /* LCDD7 pin */
> + AT91_PIOA 8
> AT91_PERIPH_A AT91_PINCTRL_NONE /* LCDD8 pin */
> + AT91_PIOA 9
> AT91_PERIPH_A AT91_PINCTRL_NONE /* LCDD9 pin */
> + AT91_PIOA 10
> AT91_PERIPH_A AT91_PINCTRL_NONE /* LCDD10 pin */
> + AT91_PIOA 11
> AT91_PERIPH_A AT91_PINCTRL_NONE /* LCDD11 pin */
> + AT91_PIOA 12
> AT91_PERIPH_A AT91_PINCTRL_NONE /* LCDD12 pin */
> + AT91_PIOA 13
> AT91_PERIPH_A AT91_PINCTRL_NONE /* LCDD13 pin */
> + AT91_PIOA 14
> AT91_PERIPH_A AT91_PINCTRL_NONE /* LCDD14 pin */
> + AT91_PIOA 15
> AT91_PERIPH_A AT91_PINCTRL_NONE /* LCDD15 pin */
> + AT91_PIOC 14
> AT91_PERIPH_C AT91_PINCTRL_NONE /* LCDD16 pin */
> + AT91_PIOC 13
> AT91_PERIPH_C AT91_PINCTRL_NONE>; /* LCDD17 pin */
> + };
> +
> + pinctrl_lcd_rgb888: lcd-rgb-3 {
> atmel,pins =
> - <AT91_PIOA 24
> AT91_PERIPH_A AT91_PINCTRL_NONE /* PA24 periph A LCDPWM */
> - AT91_PIOA 26
> AT91_PERIPH_A AT91_PINCTRL_NONE /* PA26 periph A LCDVSYNC */
> - AT91_PIOA 27
> AT91_PERIPH_A AT91_PINCTRL_NONE /* PA27 periph A LCDHSYNC */
> - AT91_PIOA 25
> AT91_PERIPH_A AT91_PINCTRL_NONE /* PA25 periph A LCDDISP */
> - AT91_PIOA 29
> AT91_PERIPH_A AT91_PINCTRL_NONE /* PA29 periph A LCDDEN */
> - AT91_PIOA 28
> AT91_PERIPH_A AT91_PINCTRL_NONE /* PA28 periph A LCDPCK */
> - AT91_PIOA 0
> AT91_PERIPH_A AT91_PINCTRL_NONE /* PA0 periph A LCDD0 pin */
> - AT91_PIOA 1
> AT91_PERIPH_A AT91_PINCTRL_NONE /* PA1 periph A LCDD1 pin */
> - AT91_PIOA 2
> AT91_PERIPH_A AT91_PINCTRL_NONE /* PA2 periph A LCDD2 pin */
> - AT91_PIOA 3
> AT91_PERIPH_A AT91_PINCTRL_NONE /* PA3 periph A LCDD3 pin */
> - AT91_PIOA 4
> AT91_PERIPH_A AT91_PINCTRL_NONE /* PA4 periph A LCDD4 pin */
> - AT91_PIOA 5
> AT91_PERIPH_A AT91_PINCTRL_NONE /* PA5 periph A LCDD5 pin */
> - AT91_PIOA 6
> AT91_PERIPH_A AT91_PINCTRL_NONE /* PA6 periph A LCDD6 pin */
> - AT91_PIOA 7
> AT91_PERIPH_A AT91_PINCTRL_NONE /* PA7 periph A LCDD7 pin */
> - AT91_PIOA 8
> AT91_PERIPH_A AT91_PINCTRL_NONE /* PA8 periph A LCDD8 pin */
> - AT91_PIOA 9
> AT91_PERIPH_A AT91_PINCTRL_NONE /* PA9 periph A LCDD9 pin */
> - AT91_PIOA 10
> AT91_PERIPH_A AT91_PINCTRL_NONE /* PA10 periph A LCDD10 pin */
> - AT91_PIOA 11
> AT91_PERIPH_A AT91_PINCTRL_NONE /* PA11 periph A LCDD11 pin */
> - AT91_PIOA 12
> AT91_PERIPH_A AT91_PINCTRL_NONE /* PA12 periph A LCDD12 pin */
> - AT91_PIOA 13
> AT91_PERIPH_A AT91_PINCTRL_NONE /* PA13 periph A LCDD13 pin */
> - AT91_PIOA 14
> AT91_PERIPH_A AT91_PINCTRL_NONE /* PA14 periph A LCDD14 pin */
> - AT91_PIOA 15
> AT91_PERIPH_A AT91_PINCTRL_NONE /* PA15 periph A LCDD15 pin */
> - AT91_PIOC 14
> AT91_PERIPH_C AT91_PINCTRL_NONE /* PC14 periph C LCDD16 pin */
> - AT91_PIOC 13
> AT91_PERIPH_C AT91_PINCTRL_NONE /* PC13 periph C LCDD17 pin */
> - AT91_PIOC 12
> AT91_PERIPH_C AT91_PINCTRL_NONE /* PC12 periph C LCDD18 pin */
> - AT91_PIOC 11
> AT91_PERIPH_C AT91_PINCTRL_NONE /* PC11 periph C LCDD19 pin */
> - AT91_PIOC 10
> AT91_PERIPH_C AT91_PINCTRL_NONE /* PC10 periph C LCDD20 pin */
> - AT91_PIOC 15
> AT91_PERIPH_C AT91_PINCTRL_NONE /* PC15 periph C LCDD21 pin */
> - AT91_PIOE 27
> AT91_PERIPH_C AT91_PINCTRL_NONE /* PE27 periph C LCDD22 pin */
> - AT91_PIOE 28
> AT91_PERIPH_C AT91_PINCTRL_NONE>; /* PE28 periph C LCDD23 pin */
> + <AT91_PIOA 0
> AT91_PERIPH_A AT91_PINCTRL_NONE /* LCDD0 pin */
> + AT91_PIOA 1
> AT91_PERIPH_A AT91_PINCTRL_NONE /* LCDD1 pin */
> + AT91_PIOA 2
> AT91_PERIPH_A AT91_PINCTRL_NONE /* LCDD2 pin */
> + AT91_PIOA 3
> AT91_PERIPH_A AT91_PINCTRL_NONE /* LCDD3 pin */
> + AT91_PIOA 4
> AT91_PERIPH_A AT91_PINCTRL_NONE /* LCDD4 pin */
> + AT91_PIOA 5
> AT91_PERIPH_A AT91_PINCTRL_NONE /* LCDD5 pin */
> + AT91_PIOA 6
> AT91_PERIPH_A AT91_PINCTRL_NONE /* LCDD6 pin */
> + AT91_PIOA 7
> AT91_PERIPH_A AT91_PINCTRL_NONE /* LCDD7 pin */
> + AT91_PIOA 8
> AT91_PERIPH_A AT91_PINCTRL_NONE /* LCDD8 pin */
> + AT91_PIOA 9
> AT91_PERIPH_A AT91_PINCTRL_NONE /* LCDD9 pin */
> + AT91_PIOA 10
> AT91_PERIPH_A AT91_PINCTRL_NONE /* LCDD10 pin */
> + AT91_PIOA 11
> AT91_PERIPH_A AT91_PINCTRL_NONE /* LCDD11 pin */
> + AT91_PIOA 12
> AT91_PERIPH_A AT91_PINCTRL_NONE /* LCDD12 pin */
> + AT91_PIOA 13
> AT91_PERIPH_A AT91_PINCTRL_NONE /* LCDD13 pin */
> + AT91_PIOA 14
> AT91_PERIPH_A AT91_PINCTRL_NONE /* LCDD14 pin */
> + AT91_PIOA 15
> AT91_PERIPH_A AT91_PINCTRL_NONE /* LCDD15 pin */
> + AT91_PIOC 14
> AT91_PERIPH_C AT91_PINCTRL_NONE /* LCDD16 pin */
> + AT91_PIOC 13
> AT91_PERIPH_C AT91_PINCTRL_NONE /* LCDD17 pin */
> + AT91_PIOC 12
> AT91_PERIPH_C AT91_PINCTRL_NONE /* LCDD18 pin */
> + AT91_PIOC 11
> AT91_PERIPH_C AT91_PINCTRL_NONE /* LCDD19 pin */
> + AT91_PIOC 10
> AT91_PERIPH_C AT91_PINCTRL_NONE /* LCDD20 pin */
> + AT91_PIOC 15
> AT91_PERIPH_C AT91_PINCTRL_NONE /* LCDD21 pin */
> + AT91_PIOE 27
> AT91_PERIPH_C AT91_PINCTRL_NONE /* LCDD22 pin */
> + AT91_PIOE 28
> AT91_PERIPH_C AT91_PINCTRL_NONE>; /* LCDD23 pin */
> };
> };
> };
>