1
0
Fork 0

[kernel] merge commit 'ef0821de81..066ef3933a'

Signed-off-by: hmz007 <hmz007@gmail.com>
Change-Id: I0252bb117d95eb8d27d9b2f8e4658b3c5c58dd49
master
hmz007 2 years ago
parent 35a88d3e77
commit 00d5d96c8b

@ -290,3 +290,26 @@
};
};
};
/* GPIO Connector */
&spi1 {
num-cs = <1>;
pinctrl-0 = <&spi1m1_cs0 &spi1m1_pins>;
pinctrl-1 = <&spi1m1_cs0 &spi1m1_pins_hs>;
status = "disabled";
};
&uart5 {
pinctrl-0 = <&uart5m1_xfer>;
status = "disabled";
};
&uart7 {
pinctrl-0 = <&uart7m1_xfer>;
status = "disabled";
};
&uart9 {
pinctrl-0 = <&uart9m1_xfer>;
status = "okay";
};

@ -450,7 +450,6 @@
ir_key1 {
rockchip,usercode = <0xc43b>;
/* /system/usr/keylayout/Generic.kl */
rockchip,key_table =
<0xff KEY_POWER>,
<0xef KEY_LEFT>,
@ -464,9 +463,10 @@
<0xae KEY_MENU>,
<0xeb 172>,
<0xaf KEY_BACK>,
<0xf7 204>,
<0xf7 KEY_MODE>,
<0xe5 KEY_SYSRQ>,
<0xf5 580>;
<0xf5 580>,
<0xf6 204>;
};
};

@ -679,6 +679,36 @@
gpio = <&gpio4 RK_PA5 GPIO_ACTIVE_LOW>;
};
/* GPIO Connector */
&pwm5 {
pinctrl-0 = <&pwm5m1_pins>;
status = "okay";
};
&pwm9 {
pinctrl-0 = <&pwm9m0_pins>;
status = "okay";
};
&spi0 {
num-cs = <1>;
pinctrl-0 = <&spi0m2_cs0 &spi0m2_pins>;
status = "disabled";
spidev0: spidev@0 {
compatible = "rockchip,spidev";
reg = <0>;
spi-max-frequency = <5000000>;
status = "disabled";
};
};
&spi4 {
num-cs = <1>;
pinctrl-0 = <&spi4m1_cs0 &spi4m1_pins>;
status = "disabled";
};
&uart0 {
pinctrl-0 = <&uart0m0_xfer>;
status = "disabled";
@ -696,7 +726,7 @@
&uart6 {
pinctrl-0 = <&uart6m1_xfer>;
status = "disabled";
status = "okay";
};
&uart7 {

@ -180,3 +180,26 @@
phy-supply = <&vcc5v0_host_20>;
status = "okay";
};
/* GPIO Connector */
&spi0 {
pinctrl-0 = <&spi0m2_cs0 &spi0m2_pins>;
status = "disabled";
spidev0: spidev@0 {
compatible = "rockchip,spidev";
reg = <0>;
spi-max-frequency = <10000000>;
status = "disabled";
};
};
&uart4 {
pinctrl-0 = <&uart4m2_xfer>;
status = "disabled";
};
&uart5 {
pinctrl-0 = <&uart5m1_xfer>;
status = "okay";
};

@ -31,3 +31,14 @@
&pcie2x1l2 {
/delete-node/ pcie@40;
};
/* GPIO Connector */
&pwm0 {
pinctrl-0 = <&pwm0m2_pins>;
status = "okay";
};
&pwm1 {
pinctrl-0 = <&pwm1m2_pins>;
status = "okay";
};

@ -31,3 +31,14 @@
&pcie2x1l2 {
/delete-node/ pcie@40;
};
/* GPIO Connector */
&pwm0 {
pinctrl-0 = <&pwm0m2_pins>;
status = "okay";
};
&pwm1 {
pinctrl-0 = <&pwm1m2_pins>;
status = "okay";
};

@ -81,6 +81,8 @@ struct rkxx_remotectl_drvdata {
struct timer_list timer;
struct tasklet_struct remote_tasklet;
struct wake_lock remotectl_wake_lock;
int keymode; /* DPAD (0) or REL_X/Y (1-3) */
u64 timestamp;
};
static struct rkxx_remotectl_button *remotectl_button;
@ -100,21 +102,81 @@ static int remotectl_keybd_num_lookup(struct rkxx_remotectl_drvdata *ddata)
return 0;
}
static int remotectl_keycode_lookup(struct rkxx_remotectl_drvdata *ddata)
{
int i;
unsigned char keydata = (unsigned char)((ddata->scandata >> 8) & 0xff);
int ret = 0;
for (i = 0; i < remotectl_button[ddata->keynum].nbuttons; i++) {
if (remotectl_button[ddata->keynum].key_table[i].scancode ==
keydata) {
ddata->keycode =
remotectl_button[ddata->keynum].key_table[i].keycode;
return 1;
ret = 1;
break;
}
}
if (ddata->keycode == KEY_MODE) {
ddata->keymode = (ddata->keymode + 1) % 3;
} else if (ddata->keymode > 0) {
int rel, val;
u64 ts = ddata->timestamp;
ddata->timestamp = ktime_get_ns();
ts = (ddata->timestamp - ts) >> 24; /* in 16.7ms */
if (ts < 15)
val = 80;
else if (ts < 25)
val = 43;
else if (ts < 60)
val = 16;
else if (ts < 120)
val = 5;
/* quicker key event means faster move speed */
DBG("delta = %llu, rel = %d\n", ts, val);
switch (ddata->keycode) {
case KEY_LEFT:
rel = REL_X; val *= -ddata->keymode;
break;
case KEY_RIGHT:
rel = REL_X; val *= ddata->keymode;
break;
case KEY_UP:
rel = REL_Y; val *= -ddata->keymode;
break;
case KEY_DOWN:
rel = REL_Y; val *= ddata->keymode;
break;
case KEY_VOLUMEDOWN:
rel = REL_WHEEL; val = -ddata->keymode;
break;
case KEY_VOLUMEUP:
rel = REL_WHEEL; val = ddata->keymode;
break;
/* remapping some keys for mouse mode */
case KEY_SYSRQ:
ddata->keycode = 204;
return ret;
case KEY_MENU:
ddata->keycode = BTN_RIGHT;
return ret;
case 232:
case KEY_ENTER:
ddata->keycode = BTN_LEFT;
fallthrough;
default:
return ret;
}
input_report_rel(ddata->input, rel, val);
input_sync(ddata->input);
return 0;
}
return ret;
}
static int rk_remotectl_get_irkeybd_count(struct platform_device *pdev)
@ -698,6 +760,11 @@ static int rk_pwm_probe(struct platform_device *pdev)
input_set_capability(input, EV_KEY, keycode);
}
}
input_set_capability(input, EV_REL, REL_X);
input_set_capability(input, EV_REL, REL_Y);
input_set_capability(input, EV_REL, REL_WHEEL);
input_set_capability(input, EV_KEY, BTN_LEFT);
input_set_capability(input, EV_KEY, BTN_RIGHT);
ret = input_register_device(input);
if (ret)
dev_err(&pdev->dev, "register input device err, ret=%d\n", ret);

@ -779,6 +779,13 @@ static int qmi_wwan_bind(struct usbnet *dev, struct usb_interface *intf)
}
dev->net->netdev_ops = &qmi_wwan_netdev_ops;
dev->net->sysfs_groups[0] = &qmi_wwan_sysfs_attr_group;
if (dev->udev->descriptor.idVendor == cpu_to_le16(0x2C7C)) {
info->flags |= QMI_WWAN_FLAG_RAWIP;
qmi_wwan_netdev_setup(dev->net);
dev_info(&intf->dev, "Quectel EC21&EC25 work on RawIP mode\n");
}
err:
return status;
}

@ -24,7 +24,9 @@
"D0 05 0A 09 08 05 2E 44 45 0F 17 16 2B 33\n" \
"D0 05 0A 09 08 05 2E 43 45 0F 16 16 2B 33"
#define HSD20_IPS 1
static int hsd20_ips;
module_param(hsd20_ips, int, 0644);
MODULE_PARM_DESC(hsd20_ips, "Enable the HSD20_IPS Panel");
/**
* enum st7789v_command - ST7789V display controller commands
@ -90,9 +92,8 @@ static int init_display(struct fbtft_par *par)
/* set pixel format to RGB-565 */
write_reg(par, MIPI_DCS_SET_PIXEL_FORMAT, MIPI_DCS_PIXEL_FMT_16BIT);
if (HSD20_IPS)
if (hsd20_ips)
write_reg(par, PORCTRL, 0x05, 0x05, 0x00, 0x33, 0x33);
else
write_reg(par, PORCTRL, 0x08, 0x08, 0x00, 0x22, 0x22);
@ -100,7 +101,7 @@ static int init_display(struct fbtft_par *par)
* VGH = 13.26V
* VGL = -10.43V
*/
if (HSD20_IPS)
if (hsd20_ips)
write_reg(par, GCTRL, 0x75);
else
write_reg(par, GCTRL, 0x35);
@ -115,7 +116,7 @@ static int init_display(struct fbtft_par *par)
* VAP = 4.1V + (VCOM + VCOM offset + 0.5 * VDV)
* VAN = -4.1V + (VCOM + VCOM offset + 0.5 * VDV)
*/
if (HSD20_IPS)
if (hsd20_ips)
write_reg(par, VRHS, 0x13);
else
write_reg(par, VRHS, 0x0B);
@ -124,7 +125,7 @@ static int init_display(struct fbtft_par *par)
write_reg(par, VDVS, 0x20);
/* VCOM = 0.9V */
if (HSD20_IPS)
if (hsd20_ips)
write_reg(par, VCOMS, 0x22);
else
write_reg(par, VCOMS, 0x20);
@ -141,7 +142,7 @@ static int init_display(struct fbtft_par *par)
write_reg(par, MIPI_DCS_SET_DISPLAY_ON);
if (HSD20_IPS)
if (hsd20_ips)
write_reg(par, MIPI_DCS_ENTER_INVERT_MODE);
return 0;

@ -478,8 +478,23 @@ static struct urb *usb_wwan_setup_urb(struct usb_serial_port *port,
usb_sndbulkpipe(serial->dev, endpoint) | dir,
buf, len, callback, ctx);
if (intfdata->use_zlp && dir == USB_DIR_OUT)
if (intfdata->use_zlp && dir == USB_DIR_OUT) {
urb->transfer_flags |= URB_ZERO_PACKET;
return urb;
}
if (dir == USB_DIR_OUT) {
struct usb_device_descriptor *desc = &serial->dev->descriptor;
#define DEV_MATCH(ud, vid, pid) \
(ud->idVendor == cpu_to_le16(vid) && ud->idProduct == cpu_to_le16(pid))
if (DEV_MATCH(desc, 0x1286, 0x4e3c) ||
DEV_MATCH(desc, 0x05C6, 0x9090) ||
DEV_MATCH(desc, 0x05C6, 0x9003) ||
DEV_MATCH(desc, 0x05C6, 0x9215) ||
(desc->idVendor == cpu_to_le16(0x2C7C)))
urb->transfer_flags |= URB_ZERO_PACKET;
#undef DEV_MATCH
}
return urb;
}

Loading…
Cancel
Save