Philipp Zabel <philipp.zabel@xxxxxxxxx> writes: > Hi Robert, > > On Sat, Oct 3, 2015 at 6:11 PM, Robert Jarzmik <robert.jarzmik@xxxxxxx> 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@xxxxxxx> > > 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@xxxxxxx> * * 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@3456k(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@0xa2000000 { compatible = "linux,contiguous-memory-region"; reg = <0xa2000000 1048576>; }; }; }; cpus { cpu { cpu-supply = <&vcc_core>; }; }; pxabus { gpio: gpio@40e00000 { status = "okay"; }; ffuart: uart@40100000 { status = "okay"; }; btuart: uart@40200000 { status = "okay"; }; stuart: uart@40700000 { status = "okay"; }; usb2phy: gpio-vbus@13 { compatible = "usb-nop-xceiv"; vbus-detect-gpio = <&gpio 13 GPIO_ACTIVE_LOW>; wakeup; }; pxa27x_udc: udc@40600000 { status = "okay"; gpios = <&gpio 22 0>; phys = <&usb2phy>; phys-names = "usb2phy"; }; pwri2c: i2c@40f000180 { 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@40301680 { 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@41500000 { 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@41100000 { vmmc-supply = <®_vmmc>; status = "okay"; }; pxa_camera: imaging@50000000 { 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@40500000 { 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-fbdev" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html