/Linux-v4.19/drivers/input/keyboard/ |
D | sun4i-lradc-keys.c | 84 struct sun4i_lradc_data *lradc = dev_id; in sun4i_lradc_irq() local 87 ints = readl(lradc->base + LRADC_INTS); in sun4i_lradc_irq() 95 input_report_key(lradc->input, lradc->chan0_keycode, 0); in sun4i_lradc_irq() 96 lradc->chan0_keycode = 0; in sun4i_lradc_irq() 99 if ((ints & CHAN0_KEYDOWN_IRQ) && lradc->chan0_keycode == 0) { in sun4i_lradc_irq() 100 val = readl(lradc->base + LRADC_DATA0) & 0x3f; in sun4i_lradc_irq() 101 voltage = val * lradc->vref / 63; in sun4i_lradc_irq() 103 for (i = 0; i < lradc->chan0_map_count; i++) { in sun4i_lradc_irq() 104 diff = abs(lradc->chan0_map[i].voltage - voltage); in sun4i_lradc_irq() 107 keycode = lradc->chan0_map[i].keycode; in sun4i_lradc_irq() [all …]
|
D | Makefile | 62 obj-$(CONFIG_KEYBOARD_SUN4I_LRADC) += sun4i-lradc-keys.o
|
/Linux-v4.19/drivers/mfd/ |
D | mxs-lradc.c | 140 struct mxs_lradc *lradc; in mxs_lradc_probe() local 146 lradc = devm_kzalloc(&pdev->dev, sizeof(*lradc), GFP_KERNEL); in mxs_lradc_probe() 147 if (!lradc) in mxs_lradc_probe() 154 lradc->soc = (enum mxs_lradc_id)of_id->data; in mxs_lradc_probe() 156 lradc->clk = devm_clk_get(&pdev->dev, NULL); in mxs_lradc_probe() 157 if (IS_ERR(lradc->clk)) { in mxs_lradc_probe() 159 return PTR_ERR(lradc->clk); in mxs_lradc_probe() 162 ret = clk_prepare_enable(lradc->clk); in mxs_lradc_probe() 172 lradc->buffer_vchans = BUFFER_VCHANS_LIMITED; in mxs_lradc_probe() 176 lradc->touchscreen_wire = MXS_LRADC_TOUCHSCREEN_4WIRE; in mxs_lradc_probe() [all …]
|
/Linux-v4.19/drivers/input/touchscreen/ |
D | mxs-lradc-ts.c | 51 struct mxs_lradc *lradc; member 283 struct mxs_lradc *lradc = ts->lradc; in mxs_lradc_setup_touch_detection() local 291 writel(info[lradc->soc].mask, in mxs_lradc_setup_touch_detection() 293 writel(info[lradc->soc].bit, in mxs_lradc_setup_touch_detection() 311 struct mxs_lradc *lradc = ts->lradc; in mxs_lradc_prepare_x_pos() local 313 writel(info[lradc->soc].mask, in mxs_lradc_prepare_x_pos() 315 writel(info[lradc->soc].x_plate, in mxs_lradc_prepare_x_pos() 337 struct mxs_lradc *lradc = ts->lradc; in mxs_lradc_prepare_y_pos() local 339 writel(info[lradc->soc].mask, in mxs_lradc_prepare_y_pos() 341 writel(info[lradc->soc].y_plate, in mxs_lradc_prepare_y_pos() [all …]
|
/Linux-v4.19/Documentation/devicetree/bindings/mfd/ |
D | mxs-lradc.txt | 4 - compatible: Should be "fsl,imx23-lradc" for i.MX23 SoC and "fsl,imx28-lradc" 10 - fsl,lradc-touchscreen-wires: Number of wires used to connect the touchscreen 25 lradc@80050000 { 26 compatible = "fsl,imx23-lradc"; 29 fsl,lradc-touchscreen-wires = <4>; 37 lradc@80050000 { 38 compatible = "fsl,imx28-lradc"; 41 fsl,lradc-touchscreen-wires = <5>;
|
/Linux-v4.19/drivers/iio/adc/ |
D | mxs-lradc-adc.c | 123 struct mxs_lradc *lradc; member 143 struct mxs_lradc *lradc = adc->lradc; in mxs_lradc_adc_read_single() local 163 if (lradc->soc == IMX28_LRADC) in mxs_lradc_adc_read_single() 396 struct mxs_lradc *lradc = adc->lradc; in mxs_lradc_adc_handle_irq() local 400 if (!(reg & mxs_lradc_irq_mask(lradc))) in mxs_lradc_adc_handle_irq() 404 if (reg & lradc->buffer_vchans) { in mxs_lradc_adc_handle_irq() 413 writel(reg & mxs_lradc_irq_mask(lradc), in mxs_lradc_adc_handle_irq() 492 struct mxs_lradc *lradc = adc->lradc; in mxs_lradc_adc_buffer_preenable() local 501 if (lradc->soc == IMX28_LRADC) in mxs_lradc_adc_buffer_preenable() 502 writel(lradc->buffer_vchans << LRADC_CTRL1_LRADC_IRQ_EN_OFFSET, in mxs_lradc_adc_buffer_preenable() [all …]
|
/Linux-v4.19/Documentation/devicetree/bindings/input/ |
D | sun4i-lradc-keys.txt | 5 - compatible: "allwinner,sun4i-a10-lradc-keys" 8 - vref-supply: powersupply for the lradc reference voltage 10 Each key is represented as a sub-node of "allwinner,sun4i-a10-lradc-keys": 16 - voltage: Voltage in µV at lradc input when this key is pressed. 22 lradc: lradc@1c22800 { 23 compatible = "allwinner,sun4i-a10-lradc-keys";
|
D | adc-keys.txt | 28 io-channels = <&lradc 0>;
|
/Linux-v4.19/include/linux/mfd/ |
D | mxs-lradc.h | 175 static inline u32 mxs_lradc_irq_mask(struct mxs_lradc *lradc) in mxs_lradc_irq_mask() argument 177 switch (lradc->soc) { in mxs_lradc_irq_mask()
|
/Linux-v4.19/arch/arm/boot/dts/ |
D | imx23-evk.dts | 103 lradc@80050000 { 105 fsl,lradc-touchscreen-wires = <4>;
|
D | imx28-cfa10058.dts | 84 lradc@80050000 { 85 fsl,lradc-touchscreen-wires = <4>;
|
D | imx28-cfa10057.dts | 111 lradc@80050000 { 112 fsl,lradc-touchscreen-wires = <4>;
|
D | imx28-cfa10055.dts | 125 lradc@80050000 { 126 fsl,lradc-touchscreen-wires = <4>;
|
D | imx28-apf28dev.dts | 123 lradc@80050000 { 124 fsl,lradc-touchscreen-wires = <4>;
|
D | imx23.dtsi | 521 lradc: lradc@80050000 { label 522 compatible = "fsl,imx23-lradc"; 628 io-channels = <&lradc 8>;
|
D | imx28-m28evk.dts | 156 lradc@80050000 { 158 fsl,lradc-touchscreen-wires = <4>;
|
D | imx28-evk.dts | 238 lradc@80050000 { 240 fsl,lradc-touchscreen-wires = <4>;
|
D | sun8i-v3s.dtsi | 341 lradc: lradc@1c22800 { label 342 compatible = "allwinner,sun4i-a10-lradc-keys";
|
D | imx28-eukrea-mbmx28lc.dtsi | 194 &lradc { 195 fsl,lradc-touchscreen-wires = <4>;
|
D | imx23-olinuxino.dts | 73 lradc@80050000 {
|
D | imx28-cfa10049.dts | 291 lradc@80050000 { 293 fsl,lradc-touchscreen-wires = <4>;
|
D | imx28-duckbill.dts | 82 lradc@80050000 {
|
D | sunxi-reference-design-tablet.dtsi | 59 &lradc {
|
/Linux-v4.19/Documentation/devicetree/bindings/clock/ |
D | imx28-clock.txt | 55 lradc 41
|
/Linux-v4.19/drivers/clk/mxs/ |
D | clk-imx28.c | 145 clk32k_div, rtc, lradc, spdif_div, clk32k, pwm, uart, ssp0, enumerator 214 clks[lradc] = mxs_clk_fixed_factor("lradc", "clk32k", 1, 16); in mx28_clocks_init()
|