[PATCH v2 2/3] ARM: dts: sun6i: Add sun6i-reference-design-tablet.dtsi
Hans de Goede
hdegoede at redhat.com
Mon Aug 22 05:28:29 PDT 2016
HI,
On 22-08-16 14:07, Icenowy Zheng wrote:
>
>
> 22.08.2016, 17:01, "Hans de Goede" <hdegoede at redhat.com>:
>> Hi,
>>
>> On 22-08-16 10:50, Chen-Yu Tsai wrote:
>>> Hi,
>>>
>>> On Fri, Aug 19, 2016 at 2:02 AM, Hans de Goede <hdegoede at redhat.com> wrote:
>>>> Just like with a13/a23/a33 most a31 tablets are derived from the same
>>>> reference design. Add a .dtsi file with all the common bits to avoid
>>>> endless copy and pasting of these.
>>>>
>>>> The sun6i-reference-design-tablet.dtsi this commit adds is a copy
>>>> of sun6i-a31s-colorfly-e708-q1.dts with a few tablet specific bits
>>>> removed / left in sun6i-a31s-colorfly-e708-q1.dts.
>>>>
>>>> Signed-off-by: Hans de Goede <hdegoede at redhat.com>
>>>> ---
>>>> arch/arm/boot/dts/sun6i-a31s-colorfly-e708-q1.dts | 147 +--------------------
>>>> ...8-q1.dts => sun6i-reference-design-tablet.dtsi} | 26 +---
>>>> 2 files changed, 2 insertions(+), 171 deletions(-)
>>>> copy arch/arm/boot/dts/{sun6i-a31s-colorfly-e708-q1.dts => sun6i-reference-design-tablet.dtsi} (90%)
>>>>
>>>> diff --git a/arch/arm/boot/dts/sun6i-a31s-colorfly-e708-q1.dts b/arch/arm/boot/dts/sun6i-a31s-colorfly-e708-q1.dts
>>>> index 34d8710..882a4d8 100644
>>>> --- a/arch/arm/boot/dts/sun6i-a31s-colorfly-e708-q1.dts
>>>> +++ b/arch/arm/boot/dts/sun6i-a31s-colorfly-e708-q1.dts
>>>> @@ -42,32 +42,11 @@
>>>>
>>>> /dts-v1/;
>>>> #include "sun6i-a31s.dtsi"
>>>> -#include "sunxi-common-regulators.dtsi"
>>>> -
>>>> -#include <dt-bindings/gpio/gpio.h>
>>>> -#include <dt-bindings/input/input.h>
>>>> -#include <dt-bindings/pinctrl/sun4i-a10.h>
>>>> +#include "sun6i-reference-design-tablet.dtsi"
>>>>
>>>> / {
>>>> model = "Colorfly E708 Q1 tablet";
>>>> compatible = "colorfly,e708-q1", "allwinner,sun6i-a31s";
>>>> -
>>>> - aliases {
>>>> - serial0 = &uart0;
>>>> - };
>>>> -
>>>> - chosen {
>>>> - stdout-path = "serial0:115200n8";
>>>> - };
>>>> -};
>>>> -
>>>> -&cpu0 {
>>>> - cpu-supply = <®_dcdc3>;
>>>> -};
>>>> -
>>>> -&ehci0 {
>>>> - /* rtl8188etv wifi is connected here */
>>>> - status = "okay";
>>>> };
>>>>
>>>> &lradc {
>>>> @@ -82,136 +61,12 @@
>>>> };
>>>> };
>>>>
>>>> -&mmc0 {
>>>> - pinctrl-names = "default";
>>>> - pinctrl-0 = <&mmc0_pins_a>, <&mmc0_cd_pin_e708_q1>;
>>>> - vmmc-supply = <®_dcdc1>;
>>>> - bus-width = <4>;
>>>> - cd-gpios = <&pio 0 8 GPIO_ACTIVE_HIGH>; /* PA8 */
>>>> - cd-inverted;
>>>> - status = "okay";
>>>> -};
>>>> -
>>>> -&pio {
>>>> - mmc0_cd_pin_e708_q1: mmc0_cd_pin at 0 {
>>>> - allwinner,pins = "PA8";
>>>> - allwinner,function = "gpio_in";
>>>> - allwinner,drive = <SUN4I_PINCTRL_10_MA>;
>>>> - allwinner,pull = <SUN4I_PINCTRL_PULL_UP>;
>>>> - };
>>>> -
>>>> - usb0_id_detect_pin: usb0_id_detect_pin at 0 {
>>>> - allwinner,pins = "PA15";
>>>> - allwinner,function = "gpio_in";
>>>> - allwinner,drive = <SUN4I_PINCTRL_10_MA>;
>>>> - allwinner,pull = <SUN4I_PINCTRL_PULL_UP>;
>>>> - };
>>>> -};
>>>> -
>>>> -&p2wi {
>>>> - status = "okay";
>>>> -
>>>> - axp22x: pmic at 68 {
>>>> - compatible = "x-powers,axp221";
>>>> - reg = <0x68>;
>>>> - interrupt-parent = <&nmi_intc>;
>>>> - interrupts = <0 IRQ_TYPE_LEVEL_LOW>;
>>>> - drivevbus-supply = <®_vcc5v0>;
>>>> - x-powers,drive-vbus-en;
>>>> - };
>>>> -};
>>>> -
>>>> -#include "axp22x.dtsi"
>>>> -
>>>> -®_aldo3 {
>>>> - regulator-always-on;
>>>> - regulator-min-microvolt = <2700000>;
>>>> - regulator-max-microvolt = <3300000>;
>>>> - regulator-name = "avcc";
>>>> -};
>>>> -
>>>> -®_dc1sw {
>>>> - regulator-name = "vcc-lcd";
>>>> -};
>>>> -
>>>> -®_dc5ldo {
>>>> - regulator-always-on;
>>>> - regulator-min-microvolt = <700000>;
>>>> - regulator-max-microvolt = <1320000>;
>>>> - regulator-name = "vdd-cpus"; /* This is an educated guess */
>>>> -};
>>>> -
>>>> -®_dcdc1 {
>>>> - regulator-always-on;
>>>> - regulator-min-microvolt = <3000000>;
>>>> - regulator-max-microvolt = <3000000>;
>>>> - regulator-name = "vcc-3v0";
>>>> -};
>>>> -
>>>> -®_dcdc2 {
>>>> - regulator-min-microvolt = <700000>;
>>>> - regulator-max-microvolt = <1320000>;
>>>> - regulator-name = "vdd-gpu";
>>>> -};
>>>> -
>>>> -®_dcdc3 {
>>>> - regulator-always-on;
>>>> - regulator-min-microvolt = <700000>;
>>>> - regulator-max-microvolt = <1320000>;
>>>> - regulator-name = "vdd-cpu";
>>>> -};
>>>> -
>>>> -®_dcdc4 {
>>>> - regulator-always-on;
>>>> - regulator-min-microvolt = <700000>;
>>>> - regulator-max-microvolt = <1320000>;
>>>> - regulator-name = "vdd-sys-dll";
>>>> -};
>>>> -
>>>> -®_dcdc5 {
>>>> - regulator-always-on;
>>>> - regulator-min-microvolt = <1500000>;
>>>> - regulator-max-microvolt = <1500000>;
>>>> - regulator-name = "vcc-dram";
>>>> -};
>>>> -
>>>> -®_dldo1 {
>>>> - regulator-min-microvolt = <3300000>;
>>>> - regulator-max-microvolt = <3300000>;
>>>> - regulator-name = "vcc-wifi";
>>>> -};
>>>> -
>>>> ®_dldo2 {
>>>> regulator-min-microvolt = <1800000>;
>>>> regulator-max-microvolt = <1800000>;
>>>> regulator-name = "vcc-pg";
>>>> };
>>>>
>>>> -®_drivevbus {
>>>> - regulator-name = "usb0-vbus";
>>>> - status = "okay";
>>>> -};
>>>> -
>>>> &simplefb_lcd {
>>>> - vcc-lcd-supply = <®_dc1sw>;
>>>> vcc-pg-supply = <®_dldo2>;
>>>> };
>>>> -
>>>> -&usb_otg {
>>>> - dr_mode = "otg";
>>>> - status = "okay";
>>>> -};
>>>> -
>>>> -&usb_power_supply {
>>>> - status = "okay";
>>>> -};
>>>> -
>>>> -&usbphy {
>>>> - pinctrl-names = "default";
>>>> - pinctrl-0 = <&usb0_id_detect_pin>;
>>>> - usb0_id_det-gpio = <&pio 0 15 GPIO_ACTIVE_HIGH>; /* PA15 */
>>>> - usb0_vbus_power-supply = <&usb_power_supply>;
>>>> - usb0_vbus-supply = <®_drivevbus>;
>>>> - usb1_vbus-supply = <®_dldo1>;
>>>> - status = "okay";
>>>> -};
>>>> diff --git a/arch/arm/boot/dts/sun6i-a31s-colorfly-e708-q1.dts b/arch/arm/boot/dts/sun6i-reference-design-tablet.dtsi
>>>> similarity index 90%
>>>> copy from arch/arm/boot/dts/sun6i-a31s-colorfly-e708-q1.dts
>>>> copy to arch/arm/boot/dts/sun6i-reference-design-tablet.dtsi
>>>> index 34d8710..0c43430 100644
>>>> --- a/arch/arm/boot/dts/sun6i-a31s-colorfly-e708-q1.dts
>>>> +++ b/arch/arm/boot/dts/sun6i-reference-design-tablet.dtsi
>>>> @@ -40,8 +40,6 @@
>>>> * OTHER DEALINGS IN THE SOFTWARE.
>>>> */
>>>>
>>>> -/dts-v1/;
>>>> -#include "sun6i-a31s.dtsi"
>>>> #include "sunxi-common-regulators.dtsi"
>>>>
>>>> #include <dt-bindings/gpio/gpio.h>
>>>> @@ -49,9 +47,6 @@
>>>> #include <dt-bindings/pinctrl/sun4i-a10.h>
>>>>
>>>> / {
>>>> - model = "Colorfly E708 Q1 tablet";
>>>> - compatible = "colorfly,e708-q1", "allwinner,sun6i-a31s";
>>>> -
>>>> aliases {
>>>> serial0 = &uart0;
>>>> };
>>>> @@ -66,20 +61,8 @@
>>>> };
>>>>
>>>> &ehci0 {
>>>> - /* rtl8188etv wifi is connected here */
>>>> - status = "okay";
>>>> -};
>>>> -
>>>> -&lradc {
>>>
>>> Shouldn't LRADC be standard for tablets?
>>> Or are we looking at tablets with "soft" buttons?
>>
>> All A31 tablets I have do use the LRADC, but they do
>> not use standard button <-> voltage mappings as
>> A13 / A23 / A33 tablets do. Which buttons they
>> have varies quie a bit, and they tend to not use
>> the same voltages for e.g. volume-up / volume-down
>> across tablets AFAICT.
>
> Yes... I also found it...
> And how to check the right values?
> I cannot find them for my friend's Viewsonic ViewPad 133Q.
I usually build the driver with a debug printk added like
this:
--- a/drivers/input/keyboard/sun4i-lradc-keys.c
+++ b/drivers/input/keyboard/sun4i-lradc-keys.c
@@ -99,6 +99,7 @@ static irqreturn_t sun4i_lradc_irq(int irq, void *dev_id)
if ((ints & CHAN0_KEYDOWN_IRQ) && lradc->chan0_keycode == 0) {
val = readl(lradc->base + LRADC_DATA0) & 0x3f;
voltage = val * lradc->vref / 63;
+ pr_err("sun4i-lradc voltage %d\n", voltage);
for (i = 0; i < lradc->chan0_map_count; i++) {
diff = abs(lradc->chan0_map[i].voltage - voltage);
When I need to figure out the values.
I hope that helps.
Regards,
Hans
>
>>
>> Regards,
>>
>> Hans
>>
>>> Otherwise,
>>>
>>> Acked-by: Chen-Yu Tsai <wens at csie.org>
>>>
>>>> - vref-supply = <®_aldo3>;
>>>> + /* Wifi is connected here */
>>>> status = "okay";
>>>> -
>>>> - button at 1000 {
>>>> - label = "Home";
>>>> - linux,code = <KEY_HOMEPAGE>;
>>>> - channel = <0>;
>>>> - voltage = <1000000>;
>>>> - };
>>>> };
>>>>
>>>> &mmc0 {
>>>> @@ -181,12 +164,6 @@
>>>> regulator-name = "vcc-wifi";
>>>> };
>>>>
>>>> -®_dldo2 {
>>>> - regulator-min-microvolt = <1800000>;
>>>> - regulator-max-microvolt = <1800000>;
>>>> - regulator-name = "vcc-pg";
>>>> -};
>>>> -
>>>> ®_drivevbus {
>>>> regulator-name = "usb0-vbus";
>>>> status = "okay";
>>>> @@ -194,7 +171,6 @@
>>>>
>>>> &simplefb_lcd {
>>>> vcc-lcd-supply = <®_dc1sw>;
>>>> - vcc-pg-supply = <®_dldo2>;
>>>> };
>>>>
>>>> &usb_otg {
>>>> --
>>>> 2.7.4
>>
>> _______________________________________________
>> linux-arm-kernel mailing list
>> linux-arm-kernel at lists.infradead.org
>> http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
More information about the linux-arm-kernel
mailing list