3
0
mirror of https://github.com/Qortal/Brooklyn.git synced 2025-01-30 14:52:17 +00:00

Pick me up in the school bus.

This commit is contained in:
Scare Crowe 2021-09-07 19:10:08 +05:00
parent 2da1c315c0
commit 719fc8883e
9 changed files with 78 additions and 2 deletions

View File

@ -157,6 +157,7 @@ dtbo-$(CONFIG_ARCH_BCM2835) += \
pwm-2chan.dtbo \
pwm-ir-tx.dtbo \
qca7000.dtbo \
qca7000-uart0.dtbo \
rotary-encoder.dtbo \
rpi-backlight.dtbo \
rpi-cirrus-wm5102.dtbo \

View File

@ -2505,12 +2505,23 @@ Params: gpio_pin Output GPIO (default 18)
Name: qca7000
Info: in-tech's Evaluation Board for PLC Stamp micro
This uses spi0 and a separate GPIO interrupt to connect the QCA7000.
Load: dtoverlay=qca7000,<param>=<val>
Params: int_pin GPIO pin for interrupt signal (default 23)
speed SPI bus speed (default 12 MHz)
Name: qca7000-uart0
Info: in-tech's Evaluation Board for PLC Stamp micro (UART)
This uses uart0/ttyAMA0 over GPIOs 14 & 15 to connect the QCA7000.
But it requires disabling of onboard Bluetooth on
Pi 3B, 3B+, 3A+, 4B and Zero W.
Load: dtoverlay=qca7000-uart0,<param>=<val>
Params: baudrate Set the baudrate for the UART (default
"115200")
Name: rotary-encoder
Info: Overlay for GPIO connected rotary encoder.
Load: dtoverlay=rotary-encoder,<param>=<val>

View File

@ -0,0 +1,46 @@
// Overlay for the Qualcomm Atheros QCA7000 on PLC Stamp micro EVK
// Visit: https://in-tech-smartcharging.com/products/evaluation-tools/plc-stamp-micro-2-evaluation-board for details
/dts-v1/;
/plugin/;
/ {
compatible = "brcm,bcm2835";
fragment@0 {
target = <&uart0>;
__overlay__ {
pinctrl-names = "default";
pinctrl-0 = <&uart0_pins>;
status = "okay";
eth2: qca7000 {
compatible = "qca,qca7000";
current-speed = <115200>;
};
};
};
fragment@1 {
target = <&gpio>;
__overlay__ {
uart0_pins: uart0_pins {
brcm,pins = <14 15>;
brcm,function = <4>; /* alt0 */
brcm,pull = <0 2>;
};
};
};
fragment@2 {
target-path = "/aliases";
__overlay__ {
serial0 = "/soc/serial@7e201000";
serial1 = "/soc/serial@7e215040";
};
};
__overrides__ {
baudrate = <&eth2>, "current-speed:0";
};
};

View File

@ -971,6 +971,7 @@ CONFIG_SND_USB_CAIAQ=m
CONFIG_SND_USB_CAIAQ_INPUT=y
CONFIG_SND_USB_6FIRE=m
CONFIG_SND_USB_HIFACE=m
CONFIG_SND_USB_TONEPORT=m
CONFIG_SND_SOC=m
CONFIG_SND_BCM2835_SOC_I2S=m
CONFIG_SND_BCM2708_SOC_CHIPDIP_DAC=m

View File

@ -987,6 +987,7 @@ CONFIG_SND_USB_CAIAQ=m
CONFIG_SND_USB_CAIAQ_INPUT=y
CONFIG_SND_USB_6FIRE=m
CONFIG_SND_USB_HIFACE=m
CONFIG_SND_USB_TONEPORT=m
CONFIG_SND_SOC=m
CONFIG_SND_BCM2835_SOC_I2S=m
CONFIG_SND_BCM2708_SOC_CHIPDIP_DAC=m

View File

@ -964,6 +964,7 @@ CONFIG_SND_USB_CAIAQ=m
CONFIG_SND_USB_CAIAQ_INPUT=y
CONFIG_SND_USB_6FIRE=m
CONFIG_SND_USB_HIFACE=m
CONFIG_SND_USB_TONEPORT=m
CONFIG_SND_SOC=m
CONFIG_SND_BCM2835_SOC_I2S=m
CONFIG_SND_BCM2708_SOC_CHIPDIP_DAC=m

View File

@ -989,6 +989,7 @@ CONFIG_SND_USB_CAIAQ=m
CONFIG_SND_USB_CAIAQ_INPUT=y
CONFIG_SND_USB_6FIRE=m
CONFIG_SND_USB_HIFACE=m
CONFIG_SND_USB_TONEPORT=m
CONFIG_SND_SOC=m
CONFIG_SND_BCM2835_SOC_I2S=m
CONFIG_SND_BCM2708_SOC_CHIPDIP_DAC=m

View File

@ -900,6 +900,7 @@ CONFIG_SND_USB_UA101=m
CONFIG_SND_USB_CAIAQ=m
CONFIG_SND_USB_CAIAQ_INPUT=y
CONFIG_SND_USB_6FIRE=m
CONFIG_SND_USB_TONEPORT=m
CONFIG_SND_SOC=m
CONFIG_SND_BCM2835_SOC_I2S=m
CONFIG_SND_BCM2708_SOC_CHIPDIP_DAC=m

View File

@ -2338,6 +2338,18 @@ static int vc4_hdmi_bind(struct device *dev, struct device *master, void *data)
if (ret)
goto err_put_ddc;
/*
* We need to have the device powered up at this point to call
* our reset hook and for the CEC init.
*/
ret = vc4_hdmi_runtime_resume(dev);
if (ret)
goto err_put_ddc;
pm_runtime_get_noresume(dev);
pm_runtime_set_active(dev);
pm_runtime_enable(dev);
if (vc4_hdmi->variant->reset)
vc4_hdmi->variant->reset(vc4_hdmi);
@ -2349,8 +2361,6 @@ static int vc4_hdmi_bind(struct device *dev, struct device *master, void *data)
clk_prepare_enable(vc4_hdmi->pixel_bvb_clock);
}
pm_runtime_enable(dev);
drm_simple_encoder_init(drm, encoder, DRM_MODE_ENCODER_TMDS);
drm_encoder_helper_add(encoder, &vc4_hdmi_encoder_helper_funcs);
@ -2374,6 +2384,8 @@ static int vc4_hdmi_bind(struct device *dev, struct device *master, void *data)
vc4_hdmi_debugfs_regs,
vc4_hdmi);
pm_runtime_put_sync(dev);
return 0;
err_free_cec:
@ -2384,6 +2396,7 @@ static int vc4_hdmi_bind(struct device *dev, struct device *master, void *data)
vc4_hdmi_connector_destroy(&vc4_hdmi->connector);
err_destroy_encoder:
drm_encoder_cleanup(encoder);
pm_runtime_put_sync(dev);
pm_runtime_disable(dev);
err_put_ddc:
put_device(&vc4_hdmi->ddc->dev);