[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <87k2r3dgmj.fsf@belgarion.home>
Date: Sat, 03 Oct 2015 19:08:36 +0200
From: Robert Jarzmik <robert.jarzmik@...e.fr>
To: Philipp Zabel <philipp.zabel@...il.com>
Cc: Jean-Christophe Plagniol-Villard <plagnioj@...osoft.com>,
Tomi Valkeinen <tomi.valkeinen@...com>,
linux-fbdev@...r.kernel.org, LKML <linux-kernel@...r.kernel.org>
Subject: Re: [PATCH 2/2] video: fbdev: pxafb: initial devicetree conversion
Philipp Zabel <philipp.zabel@...il.com> writes:
> Hi Robert,
>
> On Sat, Oct 3, 2015 at 6:11 PM, Robert Jarzmik <robert.jarzmik@...e.fr> wrote:
>> This patch brings a first support of pxa framebuffer devices to a
>> devicetree pxa platform, as was before platform data.
>>
>> There are restrictions with this port, the biggest one being the lack of
>> support of smart panels. Moreover the conversion doesn't provide a way
>> to declare multiple framebuffer configurations with different bits per
>> pixel, only the LCD hardware bus width is used.
>>
>> The patch was tested on both pxa25x, pxa27x and pxa3xx platform (namely
>> lubbock, mainstone and zylonite).
>>
>> Signed-off-by: Robert Jarzmik <robert.jarzmik@...e.fr>
>
> Thanks a lot for working on this! Out of interest, do you plan to
> convert MIOA701 to DT?
Actually, I already had. If you take all the pending patches scattered across
all the subsystems (around 40 by my last count), then mioa701 is converted, see
in [1]. If we take -next tree, I think the count will be closer to 20 or so.
>> @@ -2313,11 +2461,19 @@ static int pxafb_remove(struct platform_device *dev)
>> return 0;
>> }
>>
>> +static const struct of_device_id pxafb_of_dev_id[] = {
>> + {
>> + .compatible = "marvell,pxa2xx-fb",
>
> At least in the old Intel manuals, this was called the LCD Controller,
> all register names are LCsomething.
> Please let's not just put the Linux driver name in the device tree and
> call this pxa2xx-lcd-controller or a shortened version thereof.
Ok, I'm very open for a name change, devicetree is not my speciality, so
basically I'll take any advice :)
Cheers.
--
Robert
[1] mioa701 dt
/*
* Copyright (C) Robert Jarzmik <robert.jarzmik@...e.fr>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 as
* publishhed by the Free Software Foundation.
*/
/dts-v1/;
#include "pxa27x.dtsi"
#include "include/dt-bindings/gpio/gpio.h"
#include "include/dt-bindings/clock/pxa-clock.h"
/ {
model = "Mitac Mio A701 Board";
/* compatible = "mitac,mioa701"; */
compatible = "marvell,pxa270";
chosen {
bootargs = "mtdparts=docg3.0:256k@...6k(barebox)ro,256k(barebox-logo),128k(barebox-env),4M(kernel),-(root) ubi.mtd=4 rootfstype=ubifs root=ubi0:linux_root ro";
};
memory {
reg = <0xa0000000 0x04000000>;
reserved-memory {
#address-cells = <1>;
#size-cells = <1>;
pstore_region:region@...2000000 {
compatible = "linux,contiguous-memory-region";
reg = <0xa2000000 1048576>;
};
};
};
cpus {
cpu {
cpu-supply = <&vcc_core>;
};
};
pxabus {
gpio: gpio@...00000 {
status = "okay";
};
ffuart: uart@...00000 {
status = "okay";
};
btuart: uart@...00000 {
status = "okay";
};
stuart: uart@...00000 {
status = "okay";
};
usb2phy: gpio-vbus@13 {
compatible = "usb-nop-xceiv";
vbus-detect-gpio = <&gpio 13 GPIO_ACTIVE_LOW>;
wakeup;
};
pxa27x_udc: udc@...00000 {
status = "okay";
gpios = <&gpio 22 0>;
phys = <&usb2phy>;
phys-names = "usb2phy";
};
pwri2c: i2c@...000180 {
status = "okay";
max1586@14 {
compatible = "maxim,max1586";
reg = <0x14>;
v3-gain = <1000000>;
regulators {
vcc_core: v3 {
regulator-name = "vcc_core";
regulator-compatible = "Output_V3";
regulator-min-microvolt = <1000000>;
regulator-max-microvolt = <1705000>;
regulator-always-on;
};
};
};
};
pxai2c1: i2c@...01680 {
mrvl,i2c-fast-mode;
status = "okay";
mt9m111: camera@5d {
compatible = "micron,mt9m111";
reg = <0x5d>;
gpios = <&gpio 56 GPIO_ACTIVE_HIGH>;
remote = <&pxa_camera>;
port {
mt9m111_1: endpoint {
bus-width = <8>;
remote-endpoint = <&pxa_camera>;
};
};
};
};
keypad: keypad@...00000 {
status = "okay";
keypad,num-rows = <3>;
keypad,num-columns = <3>;
linux,keymap = <
0x00000067 /* KEY_UP */
0x0001006a /* KEY_RIGHT */
0x000200e2 /* KEY_MEDIA */
0x0100006c /* KEY_DOWN */
0x0101001c /* KEY_ENTER */
0x010200da /* KEY_CONNECT */
0x02000069 /* KEY_LEFT */
0x020100a9 /* KEY_PHONE */
0x020200d4>; /* KEY_CAMERA */
marvell,debounce-interval = <0>;
};
gpio-keys {
compatible = "gpio-keys";
#address-cells = <1>;
#size-cells = <0>;
autorepeat;
status = "okay";
button@0 {
label = "GPIO Key Power";
linux,code = <174>;
gpios = <&gpio 0 0>;
gpio-key,wakeup;
};
button@12 {
label = "HP jack detect";
linux,code = <211>;
gpios = <&gpio 12 0>;
};
button@93 {
label = "Volume Up Key";
linux,code = <115>;
gpios = <&gpio 93 0>;
};
button@94 {
label = "Volume Down Key";
linux,code = <114>;
gpios = <&gpio 94 0>;
};
};
mmc0: mmc@...00000 {
vmmc-supply = <®_vmmc>;
status = "okay";
};
pxa_camera: imaging@...00000 {
status = "okay";
port {
#address-cells = <1>;
#size-cells = <0>;
/* Parallel bus endpoint */
qci: endpoint@0 {
reg = <0>; /* Local endpoint # */
remote-endpoint = <&mt9m111_1>; /* Remote phandle */
bus-width = <8>; /* Used data lines */
hsync-active = <0>; /* Active low */
vsync-active = <0>; /* Active low */
pclk-sample = <1>; /* Rising */
};
};
};
pxafb: video@...00000 {
status = "okay";
display = <&display0>;
enable-transparency-bit = <0>;
enable-greyscale-cmap = <0>;
};
};
regulators {
compatible = "simple-bus";
#address-cells = <1>;
#size-cells = <0>;
reg_vmmc: regulator@0 {
compatible = "regulator-fixed";
regulator-name = "vmmc";
regulator-min-microvolt = <3300000>;
regulator-max-microvolt = <3300000>;
regulator-always-on;
};
};
backlight {
compatible = "pwm-backlight";
pwms = <&pwm0 0 40960000>;
pwm-names = "backlight";
brightness-levels = <0 4 8 16 32 64 128 255>;
default-brightness-level = <2>;
};
docg3: flash@0 {
compatible = "m-systems,diskonchip-g3";
reg = <0x0 0x2000>;
};
display0: display@0 {
lcd-type = "color-tft";
bits-per-pixel = <16>;
display-timings {
native-mode = <&timing0>;
timing0: 240p {
/* 240x320p24 */
clock-frequency = <4545000>;
hactive = <240>;
vactive = <320>;
hfront-porch = <4>;
hback-porch = <6>;
hsync-len = <4>;
vback-porch = <5>;
vfront-porch = <3>;
vsync-len = <2>;
};
};
};
};
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists