mirror of
https://github.com/raspberrypi/linux.git
synced 2025-12-06 10:00:17 +00:00
Compare commits
13 Commits
raspberryp
...
raspberryp
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
f2f7e4b23d | ||
|
|
8ae5f3e1ec | ||
|
|
237e899fed | ||
|
|
33115317f0 | ||
|
|
42a52f1a2a | ||
|
|
5790594366 | ||
|
|
5e1be66754 | ||
|
|
068c6b23e9 | ||
|
|
1baaf03127 | ||
|
|
7bbf6b4eee | ||
|
|
472be8a851 | ||
|
|
8db1715b59 | ||
|
|
aac47fd9e0 |
@@ -102,6 +102,14 @@
|
||||
};
|
||||
};
|
||||
|
||||
&uart0 {
|
||||
skip-init;
|
||||
};
|
||||
|
||||
&uart1 {
|
||||
skip-init;
|
||||
};
|
||||
|
||||
&txp {
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
@@ -46,6 +46,7 @@
|
||||
clocks = <&clk_108MHz>;
|
||||
#clock-cells = <1>;
|
||||
#reset-cells = <1>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
hdmi0: hdmi@7ef00700 {
|
||||
|
||||
@@ -98,6 +98,7 @@ dtbo-$(CONFIG_ARCH_BCM2835) += \
|
||||
justboom-digi.dtbo \
|
||||
ltc294x.dtbo \
|
||||
max98357a.dtbo \
|
||||
maxtherm.dtbo \
|
||||
mbed-dac.dtbo \
|
||||
mcp23017.dtbo \
|
||||
mcp23s17.dtbo \
|
||||
@@ -159,7 +160,6 @@ dtbo-$(CONFIG_ARCH_BCM2835) += \
|
||||
spi-gpio40-45.dtbo \
|
||||
spi-rtc.dtbo \
|
||||
spi0-cs.dtbo \
|
||||
spi0-hw-cs.dtbo \
|
||||
spi1-1cs.dtbo \
|
||||
spi1-2cs.dtbo \
|
||||
spi1-3cs.dtbo \
|
||||
|
||||
@@ -1622,6 +1622,36 @@ Params: no-sdmode Driver does not manage the state of the DAC's
|
||||
of the DAC (default GPIO4 if parameter omitted).
|
||||
|
||||
|
||||
Name: maxtherm
|
||||
Info: Configure a MAX6675 or MAX31855 thermocouple as an IIO device.
|
||||
|
||||
For devices on spi1 or spi2, the interfaces should be enabled
|
||||
with one of the spi1-1/2/3cs and/or spi2-1/2/3cs overlays.
|
||||
The overlay expects to disable the relevant spidev node, so also using
|
||||
e.g. cs0_spidev=off is unnecessary.
|
||||
|
||||
Note: with the 5.7 kernel (and later) there will also be
|
||||
overlays for MAX31855E, MAX31855J, MAX31855K,
|
||||
MAX31885N, MAX31855R, MAX31855S and MAX31855T.
|
||||
|
||||
Example:
|
||||
MAX31855 on /dev/spidev0.0
|
||||
dtoverlay=maxtherm,spi0-0,max31855
|
||||
|
||||
Load: dtoverlay=maxtherm,<param>=<val>
|
||||
Params: spi<n>-<m> Configure device at spi<n>, cs<m>
|
||||
(boolean, required)
|
||||
max6675 Enable support for the MAX6675 (default)
|
||||
max31855 Enable support for the MAX31855
|
||||
max31855e Enable support for the MAX31855E
|
||||
max31855j Enable support for the MAX31855J
|
||||
max31855k Enable support for the MAX31855K
|
||||
max31855n Enable support for the MAX31855N
|
||||
max31855r Enable support for the MAX31855R
|
||||
max31855s Enable support for the MAX31855S
|
||||
max31855t Enable support for the MAX31855T
|
||||
|
||||
|
||||
Name: mbed-dac
|
||||
Info: Configures the mbed AudioCODEC (TLV320AIC23B)
|
||||
Load: dtoverlay=mbed-dac
|
||||
@@ -2346,9 +2376,9 @@ Params: cs0_pin GPIO pin for CS0 (default 8)
|
||||
|
||||
|
||||
Name: spi0-hw-cs
|
||||
Info: Re-enables hardware CS/CE (chip selects) for SPI0
|
||||
Load: dtoverlay=spi0-hw-cs
|
||||
Params: <None>
|
||||
Info: This overlay has been deprecated and removed because it is no longer
|
||||
necessary and has been seen to prevent spi0 from working.
|
||||
Load: <Deprecated>
|
||||
|
||||
|
||||
Name: spi1-1cs
|
||||
|
||||
@@ -45,6 +45,13 @@
|
||||
gpios = <&gpio 7 0>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
iio-hwmon {
|
||||
compatible = "iio-hwmon";
|
||||
status = "okay";
|
||||
io-channels = <&tla2024 4>, <&tla2024 5>, <&tla2024 6>,
|
||||
<&tla2024 7>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
@@ -91,6 +98,7 @@
|
||||
reg = <0x48>;
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
#io-channel-cells = <1>;
|
||||
|
||||
adc_ch4: channel@4 {
|
||||
reg = <4>;
|
||||
|
||||
166
arch/arm/boot/dts/overlays/maxtherm-overlay.dts
Normal file
166
arch/arm/boot/dts/overlays/maxtherm-overlay.dts
Normal file
@@ -0,0 +1,166 @@
|
||||
/*
|
||||
* Universal device tree overlay for SPI devices
|
||||
*/
|
||||
|
||||
/dts-v1/;
|
||||
/plugin/;
|
||||
|
||||
/ {
|
||||
compatible = "brcm,bcm2835";
|
||||
|
||||
fragment@0 {
|
||||
target = <&spidev0>;
|
||||
__dormant__ {
|
||||
status = "disabled";
|
||||
};
|
||||
};
|
||||
|
||||
fragment@1 {
|
||||
target = <&spidev1>;
|
||||
__dormant__ {
|
||||
status = "disabled";
|
||||
};
|
||||
};
|
||||
|
||||
fragment@2 {
|
||||
target-path = "spi1/spidev@0";
|
||||
__dormant__ {
|
||||
status = "disabled";
|
||||
};
|
||||
};
|
||||
|
||||
fragment@3 {
|
||||
target-path = "spi1/spidev@1";
|
||||
__dormant__ {
|
||||
status = "disabled";
|
||||
};
|
||||
};
|
||||
|
||||
fragment@4 {
|
||||
target-path = "spi1/spidev@2";
|
||||
__dormant__ {
|
||||
status = "disabled";
|
||||
};
|
||||
};
|
||||
|
||||
fragment@5 {
|
||||
target-path = "spi2/spidev@0";
|
||||
__dormant__ {
|
||||
status = "disabled";
|
||||
};
|
||||
};
|
||||
|
||||
fragment@6 {
|
||||
target-path = "spi2/spidev@1";
|
||||
__dormant__ {
|
||||
status = "disabled";
|
||||
};
|
||||
};
|
||||
|
||||
fragment@7 {
|
||||
target-path = "spi2/spidev@2";
|
||||
__dormant__ {
|
||||
status = "disabled";
|
||||
};
|
||||
};
|
||||
|
||||
maxfrag: fragment@8 {
|
||||
target = <&spi0>;
|
||||
__overlay__ {
|
||||
status = "okay";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
max: maxtherm@0 {
|
||||
compatible = "maxim,max6675";
|
||||
reg = <0>;
|
||||
spi-max-frequency = <500000>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
fragment@9 {
|
||||
target = <&max>;
|
||||
__dormant__ {
|
||||
compatible = "maxim,max31855e", "maxim,max31855";
|
||||
};
|
||||
};
|
||||
|
||||
fragment@10 {
|
||||
target = <&max>;
|
||||
__dormant__ {
|
||||
compatible = "maxim,max31855j", "maxim,max31855";
|
||||
};
|
||||
};
|
||||
|
||||
fragment@11 {
|
||||
target = <&max>;
|
||||
__dormant__ {
|
||||
compatible = "maxim,max31855k", "maxim,max31855";
|
||||
};
|
||||
};
|
||||
|
||||
fragment@12 {
|
||||
target = <&max>;
|
||||
__dormant__ {
|
||||
compatible = "maxim,max31855n", "maxim,max31855";
|
||||
};
|
||||
};
|
||||
|
||||
fragment@13 {
|
||||
target = <&max>;
|
||||
__dormant__ {
|
||||
compatible = "maxim,max31855r", "maxim,max31855";
|
||||
};
|
||||
};
|
||||
|
||||
fragment@14 {
|
||||
target = <&max>;
|
||||
__dormant__ {
|
||||
compatible = "maxim,max31855s", "maxim,max31855";
|
||||
};
|
||||
};
|
||||
|
||||
fragment@15 {
|
||||
target = <&max>;
|
||||
__dormant__ {
|
||||
compatible = "maxim,max31855t", "maxim,max31855";
|
||||
};
|
||||
};
|
||||
|
||||
__overrides__ {
|
||||
spi0-0 = <0>, "+0",
|
||||
<&maxfrag>,"target:0=",<&spi0>,
|
||||
<&max>,"reg:0=0";
|
||||
spi0-1 = <0>, "+1",
|
||||
<&maxfrag>,"target:0=",<&spi0>,
|
||||
<&max>,"reg:0=1";
|
||||
spi1-0 = <0>, "+2",
|
||||
<&maxfrag>,"target:0=",<&spi1>,
|
||||
<&max>,"reg:0=0";
|
||||
spi1-1 = <0>, "+3",
|
||||
<&maxfrag>,"target:0=",<&spi1>,
|
||||
<&max>,"reg:0=1";
|
||||
spi1-2 = <0>, "+4",
|
||||
<&maxfrag>,"target:0=",<&spi1>,
|
||||
<&max>,"reg:0=2";
|
||||
spi2-0 = <0>, "+5",
|
||||
<&maxfrag>,"target:0=",<&spi2>,
|
||||
<&max>,"reg:0=0";
|
||||
spi2-1 = <0>, "+6",
|
||||
<&maxfrag>,"target:0=",<&spi2>,
|
||||
<&max>,"reg:0=1";
|
||||
spi2-2 = <0>, "+7",
|
||||
<&maxfrag>,"target:0=",<&spi2>,
|
||||
<&max>,"reg:0=2";
|
||||
max6675 = <&max>,"compatible=maxim,max6675";
|
||||
max31855 = <&max>,"compatible=maxim,max31855";
|
||||
max31855e = <0>,"+9";
|
||||
max31855j = <0>,"+10";
|
||||
max31855k = <0>,"+11";
|
||||
max31855n = <0>,"+12";
|
||||
max31855r = <0>,"+13";
|
||||
max31855s = <0>,"+14";
|
||||
max31855t = <0>,"+15";
|
||||
};
|
||||
};
|
||||
@@ -61,6 +61,10 @@
|
||||
deprecated = "use sdio,bus_width=1,gpios_22_25";
|
||||
};
|
||||
|
||||
spi0-hw-cs {
|
||||
deprecated = "no longer necessary";
|
||||
};
|
||||
|
||||
spi3-1cs {
|
||||
bcm2711;
|
||||
};
|
||||
|
||||
@@ -13,26 +13,31 @@
|
||||
|
||||
sc16is750: sc16is750@48 {
|
||||
compatible = "nxp,sc16is750";
|
||||
reg = <0x48>; /* address */
|
||||
reg = <0x48>; /* i2c address */
|
||||
clocks = <&sc16is750_clk>;
|
||||
interrupt-parent = <&gpio>;
|
||||
interrupts = <24 2>; /* IRQ_TYPE_EDGE_FALLING */
|
||||
gpio-controller;
|
||||
#gpio-cells = <2>;
|
||||
i2c-max-frequency = <400000>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
sc16is750_clk: sc16is750_clk {
|
||||
fragment@1 {
|
||||
target-path = "/";
|
||||
__overlay__ {
|
||||
sc16is750_clk: sc16is750_i2c_clk@48 {
|
||||
compatible = "fixed-clock";
|
||||
#clock-cells = <0>;
|
||||
clock-frequency = <14745600>;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
|
||||
__overrides__ {
|
||||
int_pin = <&sc16is750>,"interrupts:0";
|
||||
addr = <&sc16is750>,"reg:0",<&sc16is750_clk>,"name";
|
||||
addr = <&sc16is750>,"reg:0", <&sc16is750_clk>,"name";
|
||||
xtal = <&sc16is750_clk>,"clock-frequency:0";
|
||||
};
|
||||
|
||||
};
|
||||
|
||||
@@ -5,32 +5,35 @@
|
||||
compatible = "brcm,bcm2835";
|
||||
|
||||
fragment@0 {
|
||||
target = <&i2c1>;
|
||||
|
||||
frag1: __overlay__ {
|
||||
target = <&i2c_arm>;
|
||||
__overlay__ {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
status = "okay";
|
||||
|
||||
sc16is752: sc16is752@48 {
|
||||
compatible = "nxp,sc16is752";
|
||||
reg = <0x48>; // i2c address
|
||||
reg = <0x48>; /* i2c address */
|
||||
clocks = <&sc16is752_clk>;
|
||||
interrupt-parent = <&gpio>;
|
||||
interrupts = <24 0x2>; /* IRQ_TYPE_EDGE_FALLING */
|
||||
interrupts = <24 2>; /* IRQ_TYPE_EDGE_FALLING */
|
||||
gpio-controller;
|
||||
#gpio-cells = <0>;
|
||||
#gpio-cells = <2>;
|
||||
i2c-max-frequency = <400000>;
|
||||
status = "okay";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
sc16is752_clk: sc16is752_clk {
|
||||
fragment@1 {
|
||||
target-path = "/";
|
||||
__overlay__ {
|
||||
sc16is752_clk: sc16is752_i2c_clk@48 {
|
||||
compatible = "fixed-clock";
|
||||
#clock-cells = <0>;
|
||||
clock-frequency = <14745600>;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
__overrides__ {
|
||||
int_pin = <&sc16is752>,"interrupts:0";
|
||||
|
||||
@@ -17,15 +17,9 @@
|
||||
clocks = <&sc16is752_clk>;
|
||||
interrupt-parent = <&gpio>;
|
||||
interrupts = <24 2>; /* IRQ_TYPE_EDGE_FALLING */
|
||||
#gpio-controller;
|
||||
gpio-controller;
|
||||
#gpio-cells = <2>;
|
||||
spi-max-frequency = <4000000>;
|
||||
|
||||
sc16is752_clk: sc16is752_clk {
|
||||
compatible = "fixed-clock";
|
||||
#clock-cells = <0>;
|
||||
clock-frequency = <14745600>;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
@@ -37,8 +31,19 @@
|
||||
};
|
||||
};
|
||||
|
||||
fragment@2 {
|
||||
target-path = "/";
|
||||
__overlay__ {
|
||||
sc16is752_clk: sc16is752_spi0_0_clk {
|
||||
compatible = "fixed-clock";
|
||||
#clock-cells = <0>;
|
||||
clock-frequency = <14745600>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
__overrides__ {
|
||||
int_pin = <&sc16is752>,"interrupts:0";
|
||||
xtal = <&sc16is752_clk>, "clock-frequency:0";
|
||||
xtal = <&sc16is752_clk>,"clock-frequency:0";
|
||||
};
|
||||
};
|
||||
|
||||
@@ -21,7 +21,7 @@
|
||||
|
||||
fragment@1 {
|
||||
target = <&spi1>;
|
||||
frag1: __overlay__ {
|
||||
__overlay__ {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
pinctrl-names = "default";
|
||||
@@ -35,7 +35,7 @@
|
||||
clocks = <&sc16is752_clk>;
|
||||
interrupt-parent = <&gpio>;
|
||||
interrupts = <24 2>; /* IRQ_TYPE_EDGE_FALLING */
|
||||
#gpio-controller;
|
||||
gpio-controller;
|
||||
#gpio-cells = <2>;
|
||||
spi-max-frequency = <4000000>;
|
||||
};
|
||||
@@ -52,7 +52,7 @@
|
||||
fragment@3 {
|
||||
target-path = "/";
|
||||
__overlay__ {
|
||||
sc16is752_clk: sc16is752_spi1_clk {
|
||||
sc16is752_clk: sc16is752_spi1_0_clk {
|
||||
compatible = "fixed-clock";
|
||||
#clock-cells = <0>;
|
||||
clock-frequency = <14745600>;
|
||||
|
||||
@@ -1,26 +0,0 @@
|
||||
/*
|
||||
* Device tree overlay to re-enable hardware CS for SPI0
|
||||
*/
|
||||
|
||||
/dts-v1/;
|
||||
/plugin/;
|
||||
|
||||
/ {
|
||||
compatible = "brcm,bcm2835";
|
||||
|
||||
fragment@0 {
|
||||
target = <&spi0>;
|
||||
__overlay__ {
|
||||
cs-gpios = <0>, <0>;
|
||||
status = "okay";
|
||||
};
|
||||
};
|
||||
|
||||
fragment@1 {
|
||||
target = <&spi0_cs_pins>;
|
||||
__overlay__ {
|
||||
brcm,pins = <8 7>;
|
||||
brcm,function = <4>; /* alt0 */
|
||||
};
|
||||
};
|
||||
};
|
||||
@@ -145,6 +145,13 @@
|
||||
};
|
||||
};
|
||||
|
||||
fragment@20 {
|
||||
target = <&dvp>;
|
||||
__overlay__ {
|
||||
status = "okay";
|
||||
};
|
||||
};
|
||||
|
||||
__overrides__ {
|
||||
audio = <0>,"!17";
|
||||
audio1 = <0>,"!18";
|
||||
|
||||
@@ -14,6 +14,8 @@ CONFIG_TASK_XACCT=y
|
||||
CONFIG_TASK_IO_ACCOUNTING=y
|
||||
CONFIG_IKCONFIG=m
|
||||
CONFIG_IKCONFIG_PROC=y
|
||||
CONFIG_MEMCG=y
|
||||
CONFIG_BLK_CGROUP=y
|
||||
CONFIG_CGROUP_PIDS=y
|
||||
CONFIG_CGROUP_FREEZER=y
|
||||
CONFIG_CPUSETS=y
|
||||
@@ -710,6 +712,7 @@ CONFIG_BATTERY_MAX17040=m
|
||||
CONFIG_BATTERY_GAUGE_LTC2941=m
|
||||
CONFIG_SENSORS_DS1621=m
|
||||
CONFIG_SENSORS_GPIO_FAN=m
|
||||
CONFIG_SENSORS_IIO_HWMON=m
|
||||
CONFIG_SENSORS_JC42=m
|
||||
CONFIG_SENSORS_LM75=m
|
||||
CONFIG_SENSORS_RASPBERRYPI_HWMON=m
|
||||
@@ -1443,7 +1446,10 @@ CONFIG_CRYPTO_WP512=m
|
||||
CONFIG_CRYPTO_CAST5=m
|
||||
CONFIG_CRYPTO_DES=y
|
||||
CONFIG_CRYPTO_LZ4=m
|
||||
CONFIG_CRYPTO_USER_API_HASH=m
|
||||
CONFIG_CRYPTO_USER_API_SKCIPHER=m
|
||||
CONFIG_CRYPTO_USER_API_RNG=m
|
||||
CONFIG_CRYPTO_USER_API_AEAD=m
|
||||
# CONFIG_CRYPTO_HW is not set
|
||||
CONFIG_CRC_ITU_T=y
|
||||
CONFIG_LIBCRC32C=y
|
||||
|
||||
@@ -722,6 +722,7 @@ CONFIG_BATTERY_MAX17040=m
|
||||
CONFIG_BATTERY_GAUGE_LTC2941=m
|
||||
CONFIG_SENSORS_DS1621=m
|
||||
CONFIG_SENSORS_GPIO_FAN=m
|
||||
CONFIG_SENSORS_IIO_HWMON=m
|
||||
CONFIG_SENSORS_JC42=m
|
||||
CONFIG_SENSORS_LM75=m
|
||||
CONFIG_SENSORS_RASPBERRYPI_HWMON=m
|
||||
@@ -1482,7 +1483,10 @@ CONFIG_CRYPTO_WP512=m
|
||||
CONFIG_CRYPTO_CAST5=m
|
||||
CONFIG_CRYPTO_DES=y
|
||||
CONFIG_CRYPTO_LZ4=m
|
||||
CONFIG_CRYPTO_USER_API_HASH=m
|
||||
CONFIG_CRYPTO_USER_API_SKCIPHER=m
|
||||
CONFIG_CRYPTO_USER_API_RNG=m
|
||||
CONFIG_CRYPTO_USER_API_AEAD=m
|
||||
# CONFIG_CRYPTO_HW is not set
|
||||
CONFIG_CRC_ITU_T=y
|
||||
CONFIG_LIBCRC32C=y
|
||||
|
||||
@@ -13,6 +13,8 @@ CONFIG_TASK_XACCT=y
|
||||
CONFIG_TASK_IO_ACCOUNTING=y
|
||||
CONFIG_IKCONFIG=m
|
||||
CONFIG_IKCONFIG_PROC=y
|
||||
CONFIG_MEMCG=y
|
||||
CONFIG_BLK_CGROUP=y
|
||||
CONFIG_CGROUP_FREEZER=y
|
||||
CONFIG_CGROUP_DEVICE=y
|
||||
CONFIG_CGROUP_CPUACCT=y
|
||||
@@ -699,6 +701,7 @@ CONFIG_BATTERY_MAX17040=m
|
||||
CONFIG_BATTERY_GAUGE_LTC2941=m
|
||||
CONFIG_SENSORS_DS1621=m
|
||||
CONFIG_SENSORS_GPIO_FAN=m
|
||||
CONFIG_SENSORS_IIO_HWMON=m
|
||||
CONFIG_SENSORS_JC42=m
|
||||
CONFIG_SENSORS_LM75=m
|
||||
CONFIG_SENSORS_RASPBERRYPI_HWMON=m
|
||||
@@ -1452,7 +1455,10 @@ CONFIG_CRYPTO_WP512=m
|
||||
CONFIG_CRYPTO_CAST5=m
|
||||
CONFIG_CRYPTO_DES=y
|
||||
CONFIG_CRYPTO_LZ4=m
|
||||
CONFIG_CRYPTO_USER_API_HASH=m
|
||||
CONFIG_CRYPTO_USER_API_SKCIPHER=m
|
||||
CONFIG_CRYPTO_USER_API_RNG=m
|
||||
CONFIG_CRYPTO_USER_API_AEAD=m
|
||||
# CONFIG_CRYPTO_HW is not set
|
||||
CONFIG_CRC_ITU_T=y
|
||||
CONFIG_LIBCRC32C=y
|
||||
|
||||
@@ -287,6 +287,8 @@ __v7_ca17mp_setup:
|
||||
mov r10, #0
|
||||
1: adr r0, __v7_setup_stack_ptr
|
||||
ldr r12, [r0]
|
||||
tst r12, #0x1f
|
||||
addeq r12, r12, #4
|
||||
add r12, r12, r0 @ the local stack
|
||||
stmia r12, {r1-r6, lr} @ v7_invalidate_l1 touches r0-r6
|
||||
bl v7_invalidate_l1
|
||||
@@ -474,6 +476,8 @@ __v7_setup:
|
||||
adr r0, __v7_setup_stack_ptr
|
||||
ldr r12, [r0]
|
||||
add r12, r12, r0 @ the local stack
|
||||
tst r12, #0x1f
|
||||
addeq r12, r12, #4
|
||||
stmia r12, {r1-r6, lr} @ v7_invalidate_l1 touches r0-r6
|
||||
bl v7_invalidate_l1
|
||||
ldmia r12, {r1-r6, lr}
|
||||
@@ -557,7 +561,7 @@ ENDPROC(__v7_setup)
|
||||
.bss
|
||||
.align 2
|
||||
__v7_setup_stack:
|
||||
.space 4 * 7 @ 7 registers
|
||||
.space 4 * 8 @ 7 registers + 1 spare
|
||||
|
||||
__INITDATA
|
||||
|
||||
|
||||
@@ -716,6 +716,7 @@ CONFIG_BATTERY_MAX17040=m
|
||||
CONFIG_BATTERY_GAUGE_LTC2941=m
|
||||
CONFIG_SENSORS_DS1621=m
|
||||
CONFIG_SENSORS_GPIO_FAN=m
|
||||
CONFIG_SENSORS_IIO_HWMON=m
|
||||
CONFIG_SENSORS_JC42=m
|
||||
CONFIG_SENSORS_LM75=m
|
||||
CONFIG_SENSORS_RASPBERRYPI_HWMON=m
|
||||
@@ -1474,7 +1475,10 @@ CONFIG_CRYPTO_WP512=m
|
||||
CONFIG_CRYPTO_CAST5=m
|
||||
CONFIG_CRYPTO_DES=y
|
||||
CONFIG_CRYPTO_LZ4=m
|
||||
CONFIG_CRYPTO_USER_API_HASH=m
|
||||
CONFIG_CRYPTO_USER_API_SKCIPHER=m
|
||||
CONFIG_CRYPTO_USER_API_RNG=m
|
||||
CONFIG_CRYPTO_USER_API_AEAD=m
|
||||
# CONFIG_CRYPTO_HW is not set
|
||||
CONFIG_CRC_ITU_T=y
|
||||
CONFIG_LIBCRC32C=y
|
||||
|
||||
@@ -13,6 +13,8 @@ CONFIG_TASK_XACCT=y
|
||||
CONFIG_TASK_IO_ACCOUNTING=y
|
||||
CONFIG_IKCONFIG=m
|
||||
CONFIG_IKCONFIG_PROC=y
|
||||
CONFIG_MEMCG=y
|
||||
CONFIG_BLK_CGROUP=y
|
||||
CONFIG_CGROUP_FREEZER=y
|
||||
CONFIG_CPUSETS=y
|
||||
CONFIG_CGROUP_DEVICE=y
|
||||
@@ -679,6 +681,7 @@ CONFIG_W1_SLAVE_DS28E17=m
|
||||
CONFIG_POWER_RESET_GPIO=y
|
||||
CONFIG_BATTERY_DS2760=m
|
||||
CONFIG_BATTERY_MAX17040=m
|
||||
CONFIG_SENSORS_IIO_HWMON=m
|
||||
CONFIG_SENSORS_LM75=m
|
||||
CONFIG_SENSORS_SHT21=m
|
||||
CONFIG_SENSORS_SHTC1=m
|
||||
@@ -1317,7 +1320,10 @@ CONFIG_CRYPTO_WP512=m
|
||||
CONFIG_CRYPTO_CAST5=m
|
||||
CONFIG_CRYPTO_DES=y
|
||||
CONFIG_CRYPTO_LZ4=m
|
||||
CONFIG_CRYPTO_USER_API_HASH=m
|
||||
CONFIG_CRYPTO_USER_API_SKCIPHER=m
|
||||
CONFIG_CRYPTO_USER_API_RNG=m
|
||||
CONFIG_CRYPTO_USER_API_AEAD=m
|
||||
CONFIG_CRC_ITU_T=y
|
||||
CONFIG_LIBCRC32C=y
|
||||
CONFIG_DMA_CMA=y
|
||||
|
||||
@@ -718,7 +718,6 @@ static bool vc4_fkms_format_mod_supported(struct drm_plane *plane,
|
||||
switch (modifier) {
|
||||
case DRM_FORMAT_MOD_BROADCOM_VC4_T_TILED:
|
||||
case DRM_FORMAT_MOD_LINEAR:
|
||||
case DRM_FORMAT_MOD_BROADCOM_UIF:
|
||||
return true;
|
||||
default:
|
||||
return false;
|
||||
|
||||
@@ -26,9 +26,8 @@ struct gpio_backlight {
|
||||
int def_value;
|
||||
};
|
||||
|
||||
static int gpio_backlight_update_status(struct backlight_device *bl)
|
||||
static int gpio_backlight_get_next_brightness(struct backlight_device *bl)
|
||||
{
|
||||
struct gpio_backlight *gbl = bl_get_data(bl);
|
||||
int brightness = bl->props.brightness;
|
||||
|
||||
if (bl->props.power != FB_BLANK_UNBLANK ||
|
||||
@@ -36,6 +35,14 @@ static int gpio_backlight_update_status(struct backlight_device *bl)
|
||||
bl->props.state & (BL_CORE_SUSPENDED | BL_CORE_FBBLANK))
|
||||
brightness = 0;
|
||||
|
||||
return brightness;
|
||||
}
|
||||
|
||||
static int gpio_backlight_update_status(struct backlight_device *bl)
|
||||
{
|
||||
struct gpio_backlight *gbl = bl_get_data(bl);
|
||||
int brightness = gpio_backlight_get_next_brightness(bl);
|
||||
|
||||
gpiod_set_value_cansleep(gbl->gpiod, brightness);
|
||||
|
||||
return 0;
|
||||
@@ -86,7 +93,8 @@ static int gpio_backlight_initial_power_state(struct gpio_backlight *gbl)
|
||||
return gbl->def_value ? FB_BLANK_UNBLANK : FB_BLANK_POWERDOWN;
|
||||
|
||||
/* if the enable GPIO is disabled, do not enable the backlight */
|
||||
if (gpiod_get_value_cansleep(gbl->gpiod) == 0)
|
||||
if (gpiod_get_direction(gbl->gpiod) == 0 &&
|
||||
gpiod_get_value_cansleep(gbl->gpiod) == 0)
|
||||
return FB_BLANK_POWERDOWN;
|
||||
|
||||
return FB_BLANK_UNBLANK;
|
||||
@@ -100,7 +108,7 @@ static int gpio_backlight_probe(struct platform_device *pdev)
|
||||
struct backlight_properties props;
|
||||
struct backlight_device *bl;
|
||||
struct gpio_backlight *gbl;
|
||||
int ret;
|
||||
int ret, init_brightness;
|
||||
|
||||
gbl = devm_kzalloc(&pdev->dev, sizeof(*gbl), GFP_KERNEL);
|
||||
if (gbl == NULL)
|
||||
@@ -153,7 +161,12 @@ static int gpio_backlight_probe(struct platform_device *pdev)
|
||||
bl->props.power = gpio_backlight_initial_power_state(gbl);
|
||||
bl->props.brightness = 1;
|
||||
|
||||
backlight_update_status(bl);
|
||||
init_brightness = gpio_backlight_get_next_brightness(bl);
|
||||
ret = gpiod_direction_output(gbl->gpiod, init_brightness);
|
||||
if (ret) {
|
||||
dev_err(&pdev->dev, "failed to set initial brightness\n");
|
||||
return ret;
|
||||
}
|
||||
|
||||
platform_set_drvdata(pdev, bl);
|
||||
return 0;
|
||||
|
||||
Reference in New Issue
Block a user