mirror of
https://github.com/torvalds/linux.git
synced 2024-11-11 22:51:42 +00:00
Device tree updates for DaVinci DA850
* GPIO keys on DA850 LCDK * LCDC display on DA850 LCDK * USB OHCI on DA850 LCDK * VPIF (video input) on DA850 LCDK * Add a DA8xx specific compatible for UARTs * Introduce support for Lego Mindstorms EV3 -----BEGIN PGP SIGNATURE----- Version: GnuPG v1 iQIcBAABAgAGBQJYh0jIAAoJEGFBu2jqvgRNivsQAJpyONkOU7T7GQ/w4cU699zP Af83IFATZWvaeuscKNWHF/Fb9kTiPk8CB+HYSs0CFybGX8XoSaN8l/EI0jG0k4Zv 7izWjvt/jFkIXEsKcORBXeRQ4MirmsWOY/J0J761L0WHO1GyoPtrtnOFzxWNO9jC P7e+1kwd0umtLhHJ4LKOqarfiFA70MiOw7FAN9luRQBgCD8sSfsYkgqne5MFCrc1 Aaf8OV49ayTqjJRynDb2I6JnAt5WFt8q1AR/3Q5b4P1QK2wxJLA/ISAbgoNvZL9h NG1jTrKhk5iXF9XoeE4THi5nKupSpVk4zhl0tenwLg/SRcW97LZ3ar3cg96XrrZU Ng4poCkh5EdtgaMGstScoSr5DACRMsZWvTI4Ie9x8oPQiirT1an0w2xSVRDI77Kc Qmv3InOteRQJU9xoYC6DBb2CmaGsE0SJjuMgjguguQQkeznXFAl0PVj841c5ipUP JFAq4hUYE9G6/vBf+oOvtO3IsPDeEv3DCgW03gL2gxgZLd8BE65SPyGEMV2jeW57 ctO0MJdRTg4VnYoOHwKU3LKytc/fjYC9ETx+VEManqIdwXj0wxtOdncUNLwYxKeo 1U076HVBdmqXU45Qn9+ZIfkb1g9QJCqKYq8giOeaQzfG5HMAefoVHTfnhEeRPHs4 R5KaT9XMRkUuNC4CNyMb =EOxA -----END PGP SIGNATURE----- Merge tag 'davinci-for-v4.11/dt' of git://git.kernel.org/pub/scm/linux/kernel/git/nsekhar/linux-davinci into next/dt Device tree updates for DaVinci DA850 * GPIO keys on DA850 LCDK * LCDC display on DA850 LCDK * USB OHCI on DA850 LCDK * VPIF (video input) on DA850 LCDK * Add a DA8xx specific compatible for UARTs * Introduce support for Lego Mindstorms EV3 * tag 'davinci-for-v4.11/dt' of git://git.kernel.org/pub/scm/linux/kernel/git/nsekhar/linux-davinci: ARM: dts: Add LEGO MINDSTORMS EV3 dts dt-bindings: add "microchip,24c128" compatible string dt-bindings: Add LEGO MINDSTORMS EV3 compatible specification dt-bindings: Add vendor prefix for LEGO ARM: dts: da850: Add ti,da830-uart compatible for serial ports ARM: dts: davinci: da850-lcdk: enable VPIF ARM: dts: davinci: da850-evm: enable VPIF ARM: dts: davinci: da850: VPIF: add node and muxing ARM: dts: da850-lcdk: Enable ohci for omapl138 lcdk ARM: dts: da850: Add usb device node ARM: dts: da850: specify the maximum pixel clock rate for tilcdc ARM: dts: da850-lcdk: add the vga-bridge node ARM: dts: da850: rename the display node label ARM: dts: da850-lcdk: add gpio-keys Signed-off-by: Olof Johansson <olof@lixom.net>
This commit is contained in:
commit
2e33f29400
@ -13,6 +13,10 @@ EnBW AM1808 based CMC board
|
||||
Required root node properties:
|
||||
- compatible = "enbw,cmc", "ti,da850;
|
||||
|
||||
LEGO MINDSTORMS EV3 (AM1808 based)
|
||||
Required root node properties:
|
||||
- compatible = "lego,ev3", "ti,da850";
|
||||
|
||||
Generic DaVinci Boards
|
||||
----------------------
|
||||
|
||||
|
@ -10,6 +10,8 @@ Required properties:
|
||||
|
||||
"catalyst,24c32"
|
||||
|
||||
"microchip,24c128"
|
||||
|
||||
"ramtron,24c64"
|
||||
|
||||
"renesas,r1ex24002"
|
||||
|
@ -159,6 +159,7 @@ kosagi Sutajio Ko-Usagi PTE Ltd.
|
||||
kyo Kyocera Corporation
|
||||
lacie LaCie
|
||||
lantiq Lantiq Semiconductor
|
||||
lego LEGO Systems A/S
|
||||
lenovo Lenovo Group Ltd.
|
||||
lg LG Corporation
|
||||
linux Linux-specific binding
|
||||
|
@ -132,7 +132,8 @@ dtb-$(CONFIG_ARCH_CLPS711X) += \
|
||||
dtb-$(CONFIG_ARCH_DAVINCI) += \
|
||||
da850-lcdk.dtb \
|
||||
da850-enbw-cmc.dtb \
|
||||
da850-evm.dtb
|
||||
da850-evm.dtb \
|
||||
da850-lego-ev3.dtb
|
||||
dtb-$(CONFIG_ARCH_DIGICOLOR) += \
|
||||
cx92755_equinox.dtb
|
||||
dtb-$(CONFIG_ARCH_EFM32) += \
|
||||
|
@ -289,3 +289,23 @@
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
&vpif {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&vpif_capture_pins>;
|
||||
status = "okay";
|
||||
|
||||
/* VPIF capture port */
|
||||
port {
|
||||
vpif_ch0: endpoint@0 {
|
||||
reg = <0>;
|
||||
bus-width = <8>;
|
||||
};
|
||||
|
||||
vpif_ch1: endpoint@1 {
|
||||
reg = <1>;
|
||||
bus-width = <8>;
|
||||
data-shift = <8>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
@ -6,6 +6,7 @@
|
||||
/dts-v1/;
|
||||
#include "da850.dtsi"
|
||||
#include <dt-bindings/gpio/gpio.h>
|
||||
#include <dt-bindings/input/input.h>
|
||||
|
||||
/ {
|
||||
model = "DA850/AM1808/OMAP-L138 LCDK";
|
||||
@ -51,6 +52,62 @@
|
||||
system-clock-frequency = <24576000>;
|
||||
};
|
||||
};
|
||||
|
||||
gpio-keys {
|
||||
compatible = "gpio-keys";
|
||||
autorepeat;
|
||||
|
||||
user1 {
|
||||
label = "GPIO Key USER1";
|
||||
linux,code = <BTN_0>;
|
||||
gpios = <&gpio 36 GPIO_ACTIVE_LOW>;
|
||||
};
|
||||
|
||||
user2 {
|
||||
label = "GPIO Key USER2";
|
||||
linux,code = <BTN_1>;
|
||||
gpios = <&gpio 37 GPIO_ACTIVE_LOW>;
|
||||
};
|
||||
};
|
||||
|
||||
vga-bridge {
|
||||
compatible = "ti,ths8135";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
ports {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
port@0 {
|
||||
reg = <0>;
|
||||
|
||||
vga_bridge_in: endpoint {
|
||||
remote-endpoint = <&lcdc_out_vga>;
|
||||
};
|
||||
};
|
||||
|
||||
port@1 {
|
||||
reg = <1>;
|
||||
|
||||
vga_bridge_out: endpoint {
|
||||
remote-endpoint = <&vga_con_in>;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
vga {
|
||||
compatible = "vga-connector";
|
||||
|
||||
ddc-i2c-bus = <&i2c0>;
|
||||
|
||||
port {
|
||||
vga_con_in: endpoint {
|
||||
remote-endpoint = <&vga_bridge_out>;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
&pmx_core {
|
||||
@ -167,6 +224,10 @@
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&usb1 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&aemif {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&nand_pins>;
|
||||
@ -236,3 +297,28 @@
|
||||
&memctrl {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&lcdc {
|
||||
status = "okay";
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&lcd_pins>;
|
||||
|
||||
port {
|
||||
lcdc_out_vga: endpoint {
|
||||
remote-endpoint = <&vga_bridge_in>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
&vpif {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&vpif_capture_pins>;
|
||||
status = "okay";
|
||||
|
||||
/* VPIF capture port */
|
||||
port {
|
||||
vpif_ch0: endpoint {
|
||||
bus-width = <8>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
313
arch/arm/boot/dts/da850-lego-ev3.dts
Normal file
313
arch/arm/boot/dts/da850-lego-ev3.dts
Normal file
@ -0,0 +1,313 @@
|
||||
/*
|
||||
* Device tree for LEGO MINDSTORMS EV3
|
||||
*
|
||||
* Copyright (C) 2017 David Lechner <david@lechnology.com>
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License as published by the
|
||||
* Free Software Foundation, version 2.
|
||||
*/
|
||||
|
||||
/dts-v1/;
|
||||
#include <dt-bindings/gpio/gpio.h>
|
||||
#include <dt-bindings/input/linux-event-codes.h>
|
||||
#include <dt-bindings/pwm/pwm.h>
|
||||
|
||||
#include "da850.dtsi"
|
||||
|
||||
/ {
|
||||
compatible = "lego,ev3", "ti,da850";
|
||||
model = "LEGO MINDSTORMS EV3";
|
||||
|
||||
aliases {
|
||||
serial1 = &serial1;
|
||||
};
|
||||
|
||||
memory@c0000000 {
|
||||
device_type = "memory";
|
||||
reg = <0xc0000000 0x04000000>;
|
||||
};
|
||||
|
||||
/*
|
||||
* The buttons on the EV3 are mapped to keyboard keys.
|
||||
*/
|
||||
gpio_keys {
|
||||
compatible = "gpio-keys";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
label = "EV3 Brick Buttons";
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&button_pins>, <&button_bias>;
|
||||
|
||||
center {
|
||||
label = "Center";
|
||||
linux,code = <KEY_ENTER>;
|
||||
gpios = <&gpio 29 GPIO_ACTIVE_HIGH>;
|
||||
};
|
||||
|
||||
left {
|
||||
label = "Left";
|
||||
linux,code = <KEY_LEFT>;
|
||||
gpios = <&gpio 102 GPIO_ACTIVE_HIGH>;
|
||||
};
|
||||
|
||||
back {
|
||||
label = "Back";
|
||||
linux,code = <KEY_BACKSPACE>;
|
||||
gpios = <&gpio 106 GPIO_ACTIVE_HIGH>;
|
||||
};
|
||||
|
||||
right {
|
||||
label = "Right";
|
||||
linux,code = <KEY_RIGHT>;
|
||||
gpios = <&gpio 124 GPIO_ACTIVE_HIGH>;
|
||||
};
|
||||
|
||||
down {
|
||||
label = "Down";
|
||||
linux,code = <KEY_DOWN>;
|
||||
gpios = <&gpio 126 GPIO_ACTIVE_HIGH>;
|
||||
};
|
||||
|
||||
up {
|
||||
label = "Up";
|
||||
linux,code = <KEY_UP>;
|
||||
gpios = <&gpio 127 GPIO_ACTIVE_HIGH>;
|
||||
};
|
||||
};
|
||||
|
||||
/*
|
||||
* The EV3 has two built-in bi-color LEDs behind the buttons.
|
||||
*/
|
||||
leds {
|
||||
compatible = "gpio-leds";
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&led_pins>;
|
||||
|
||||
left_green {
|
||||
label = "led0:green:brick-status";
|
||||
/* GP6[13] */
|
||||
gpios = <&gpio 103 GPIO_ACTIVE_HIGH>;
|
||||
linux,default-trigger = "default-on";
|
||||
};
|
||||
|
||||
right_red {
|
||||
label = "led1:red:brick-status";
|
||||
/* GP6[7] */
|
||||
gpios = <&gpio 108 GPIO_ACTIVE_HIGH>;
|
||||
linux,default-trigger = "default-on";
|
||||
};
|
||||
|
||||
left_red {
|
||||
label = "led0:red:brick-status";
|
||||
/* GP6[12] */
|
||||
gpios = <&gpio 109 GPIO_ACTIVE_HIGH>;
|
||||
linux,default-trigger = "default-on";
|
||||
};
|
||||
|
||||
right_green {
|
||||
label = "led1:green:brick-status";
|
||||
/* GP6[14] */
|
||||
gpios = <&gpio 110 GPIO_ACTIVE_HIGH>;
|
||||
linux,default-trigger = "default-on";
|
||||
};
|
||||
};
|
||||
|
||||
/*
|
||||
* The EV3 is powered down by turning off the main 5V supply.
|
||||
*/
|
||||
gpio-poweroff {
|
||||
compatible = "gpio-poweroff";
|
||||
gpios = <&gpio 107 GPIO_ACTIVE_LOW>;
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&system_power_pin>;
|
||||
};
|
||||
|
||||
/*
|
||||
* This is a 5V current limiting regulator that is shared by USB,
|
||||
* the sensor (input) ports, the motor (output) ports and the A/DC.
|
||||
*/
|
||||
vcc5v: regulator1 {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&vcc5v_pins>;
|
||||
compatible = "regulator-fixed";
|
||||
regulator-name = "vcc5v";
|
||||
regulator-min-microvolt = <5000000>;
|
||||
regulator-max-microvolt = <5000000>;
|
||||
gpio = <&gpio 101 0>;
|
||||
over-current-gpios = <&gpio 99 GPIO_ACTIVE_LOW>;
|
||||
enable-active-high;
|
||||
regulator-boot-on;
|
||||
};
|
||||
};
|
||||
|
||||
&pmx_core {
|
||||
status = "okay";
|
||||
|
||||
spi0_cs3_pin: pinmux_spi0_cs3_pin {
|
||||
pinctrl-single,bits = <
|
||||
/* CS3 */
|
||||
0xc 0x01000000 0x0f000000
|
||||
>;
|
||||
};
|
||||
|
||||
mmc0_cd_pin: pinmux_mmc0_cd {
|
||||
pinctrl-single,bits = <
|
||||
/* GP5[14] */
|
||||
0x2C 0x00000080 0x000000f0
|
||||
>;
|
||||
};
|
||||
|
||||
button_pins: pinmux_button_pins {
|
||||
pinctrl-single,bits = <
|
||||
/* GP1[13] */
|
||||
0x8 0x00000800 0x00000f00
|
||||
/* GP6[10] */
|
||||
0x34 0x00800000 0x00f00000
|
||||
/* GP6[6] */
|
||||
0x38 0x00000080 0x000000f0
|
||||
/* GP7[12], GP7[14], GP7[15] */
|
||||
0x40 0x00808800 0x00f0ff00
|
||||
>;
|
||||
};
|
||||
|
||||
led_pins: pinmux_led_pins {
|
||||
pinctrl-single,bits = <
|
||||
/* GP6[12], GP6[13], GP6[14] */
|
||||
0x34 0x00008880 0x0000fff0
|
||||
/* GP6[7] */
|
||||
0x38 0x00000008 0x0000000f
|
||||
>;
|
||||
};
|
||||
|
||||
system_power_pin: pinmux_system_power {
|
||||
pinctrl-single,bits = <
|
||||
/* GP6[11] */
|
||||
0x34 0x00080000 0x000f0000
|
||||
>;
|
||||
};
|
||||
|
||||
vcc5v_pins: pinmux_vcc5v {
|
||||
pinctrl-single,bits = <
|
||||
/* GP6[5] */
|
||||
0x40 0x00000080 0x000000f0
|
||||
/* GP6[3] */
|
||||
0x4c 0x00008000 0x0000f000
|
||||
>;
|
||||
};
|
||||
};
|
||||
|
||||
&pinconf {
|
||||
status = "okay";
|
||||
|
||||
/* Buttons have external pulldown resistors */
|
||||
button_bias: button-bias-groups {
|
||||
disable {
|
||||
groups = "cp5", "cp24", "cp25", "cp28";
|
||||
bias-disable;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
/* Input port 1 */
|
||||
&serial1 {
|
||||
status = "okay";
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&serial1_rxtx_pins>;
|
||||
};
|
||||
|
||||
&rtc0 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&i2c0 {
|
||||
status = "okay";
|
||||
clock-frequency = <400000>;
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&i2c0_pins>;
|
||||
|
||||
/*
|
||||
* EEPROM contains the first stage bootloader, HW ID and Bluetooth MAC.
|
||||
*/
|
||||
eeprom@50 {
|
||||
compatible = "microchip,24c128";
|
||||
pagesize = <64>;
|
||||
read-only;
|
||||
reg = <0x50>;
|
||||
};
|
||||
};
|
||||
|
||||
&wdt {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&mmc0 {
|
||||
status = "okay";
|
||||
max-frequency = <50000000>;
|
||||
bus-width = <4>;
|
||||
cd-gpios = <&gpio 94 GPIO_ACTIVE_LOW>;
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&mmc0_pins>, <&mmc0_cd_pin>;
|
||||
};
|
||||
|
||||
&spi0 {
|
||||
status = "okay";
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&spi0_pins>, <&spi0_cs0_pin>, <&spi0_cs3_pin>;
|
||||
|
||||
flash@0 {
|
||||
compatible = "n25q128a13", "jedec,spi-nor";
|
||||
reg = <0>;
|
||||
spi-max-frequency = <50000000>;
|
||||
ti,spi-wdelay = <8>;
|
||||
|
||||
/* Partitions are based on the official firmware from LEGO */
|
||||
partitions {
|
||||
compatible = "fixed-partitions";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
|
||||
partition@0 {
|
||||
label = "U-Boot";
|
||||
reg = <0 0x40000>;
|
||||
};
|
||||
|
||||
partition@40000 {
|
||||
label = "U-Boot Env";
|
||||
reg = <0x40000 0x10000>;
|
||||
};
|
||||
|
||||
partition@50000 {
|
||||
label = "Kernel";
|
||||
reg = <0x50000 0x200000>;
|
||||
};
|
||||
|
||||
partition@250000 {
|
||||
label = "Filesystem";
|
||||
reg = <0x250000 0xa50000>;
|
||||
};
|
||||
|
||||
partition@cb0000 {
|
||||
label = "Storage";
|
||||
reg = <0xcb0000 0x2f0000>;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
&gpio {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&usb_phy {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&usb0 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&usb1 {
|
||||
status = "okay";
|
||||
vbus-supply = <&vcc5v>;
|
||||
};
|
@ -208,7 +208,18 @@
|
||||
0x4c 0x02000022 0x0f0000ff
|
||||
>;
|
||||
};
|
||||
|
||||
vpif_capture_pins: vpif_capture_pins {
|
||||
pinctrl-single,bits = <
|
||||
/* VP_DIN[2..7], VP_CLKIN1, VP_CLKIN0 */
|
||||
0x38 0x11111111 0xffffffff
|
||||
/* VP_DIN[10..15,0..1] */
|
||||
0x3c 0x11111111 0xffffffff
|
||||
/* VP_DIN[8..9] */
|
||||
0x40 0x00000011 0x000000ff
|
||||
/* VP_CLKIN3, VP_CLKIN2 */
|
||||
0x4c 0x00010100 0x000f0f00
|
||||
>;
|
||||
};
|
||||
};
|
||||
prictrl: priority-controller@14110 {
|
||||
compatible = "ti,da850-mstpri";
|
||||
@ -266,22 +277,25 @@
|
||||
interrupt-names = "edm3_tcerrint";
|
||||
};
|
||||
serial0: serial@42000 {
|
||||
compatible = "ns16550a";
|
||||
compatible = "ti,da830-uart", "ns16550a";
|
||||
reg = <0x42000 0x100>;
|
||||
reg-io-width = <4>;
|
||||
reg-shift = <2>;
|
||||
interrupts = <25>;
|
||||
status = "disabled";
|
||||
};
|
||||
serial1: serial@10c000 {
|
||||
compatible = "ns16550a";
|
||||
compatible = "ti,da830-uart", "ns16550a";
|
||||
reg = <0x10c000 0x100>;
|
||||
reg-io-width = <4>;
|
||||
reg-shift = <2>;
|
||||
interrupts = <53>;
|
||||
status = "disabled";
|
||||
};
|
||||
serial2: serial@10d000 {
|
||||
compatible = "ns16550a";
|
||||
compatible = "ti,da830-uart", "ns16550a";
|
||||
reg = <0x10d000 0x100>;
|
||||
reg-io-width = <4>;
|
||||
reg-shift = <2>;
|
||||
interrupts = <61>;
|
||||
status = "disabled";
|
||||
@ -324,6 +338,18 @@
|
||||
dma-names = "rx", "tx";
|
||||
status = "disabled";
|
||||
};
|
||||
vpif: video@217000 {
|
||||
compatible = "ti,da850-vpif";
|
||||
reg = <0x217000 0x1000>;
|
||||
interrupts = <92>;
|
||||
status = "disabled";
|
||||
|
||||
/* VPIF capture port */
|
||||
port {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
};
|
||||
};
|
||||
mmc1: mmc@21b000 {
|
||||
compatible = "ti,da830-mmc";
|
||||
reg = <0x21b000 0x1000>;
|
||||
@ -425,6 +451,14 @@
|
||||
>;
|
||||
status = "disabled";
|
||||
};
|
||||
usb1: usb@225000 {
|
||||
compatible = "ti,da830-ohci";
|
||||
reg = <0x225000 0x1000>;
|
||||
interrupts = <59>;
|
||||
phys = <&usb_phy 1>;
|
||||
phy-names = "usb-phy";
|
||||
status = "disabled";
|
||||
};
|
||||
gpio: gpio@226000 {
|
||||
compatible = "ti,dm6441-gpio";
|
||||
gpio-controller;
|
||||
@ -458,10 +492,11 @@
|
||||
dma-names = "tx", "rx";
|
||||
};
|
||||
|
||||
display: display@213000 {
|
||||
lcdc: display@213000 {
|
||||
compatible = "ti,da850-tilcdc";
|
||||
reg = <0x213000 0x1000>;
|
||||
interrupts = <52>;
|
||||
max-pixelclock = <37500>;
|
||||
status = "disabled";
|
||||
};
|
||||
};
|
||||
|
Loading…
Reference in New Issue
Block a user