Skip to content

Commit 415ff3d

Browse files
committed
Merge branch 'bits/170-atcphy' into asahi-wip
2 parents 4d48014 + d9133ae commit 415ff3d

12 files changed

Lines changed: 3567 additions & 23 deletions

File tree

drivers/nvmem/core.c

Lines changed: 13 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -592,8 +592,8 @@ static int nvmem_cell_info_to_nvmem_cell_entry_nodup(struct nvmem_device *nvmem,
592592
cell->np = info->np;
593593

594594
if (cell->nbits)
595-
cell->bytes = DIV_ROUND_UP(cell->nbits + cell->bit_offset,
596-
BITS_PER_BYTE);
595+
cell->bytes = round_up(DIV_ROUND_UP(cell->nbits + cell->bit_offset,
596+
BITS_PER_BYTE), nvmem->word_size);
597597

598598
if (!IS_ALIGNED(cell->offset, nvmem->stride)) {
599599
dev_err(&nvmem->dev,
@@ -834,11 +834,6 @@ static int nvmem_add_cells_from_dt(struct nvmem_device *nvmem, struct device_nod
834834
if (addr && len == (2 * sizeof(u32))) {
835835
info.bit_offset = be32_to_cpup(addr++);
836836
info.nbits = be32_to_cpup(addr);
837-
if (info.bit_offset >= BITS_PER_BYTE || info.nbits < 1) {
838-
dev_err(dev, "nvmem: invalid bits on %pOF\n", child);
839-
of_node_put(child);
840-
return -EINVAL;
841-
}
842837
}
843838

844839
info.np = of_node_get(child);
@@ -1627,15 +1622,23 @@ EXPORT_SYMBOL_GPL(nvmem_cell_put);
16271622
static void nvmem_shift_read_buffer_in_place(struct nvmem_cell_entry *cell, void *buf)
16281623
{
16291624
u8 *p, *b;
1630-
int i, extra, bit_offset = cell->bit_offset;
1625+
int i, padding, extra, bit_offset = cell->bit_offset;
1626+
int bytes = cell->bytes;
16311627

16321628
p = b = buf;
16331629
if (bit_offset) {
1630+
padding = bit_offset/8;
1631+
if (padding) {
1632+
memmove(buf, buf + padding, bytes - padding);
1633+
bit_offset -= BITS_PER_BYTE * padding;
1634+
bytes -= padding;
1635+
}
1636+
16341637
/* First shift */
16351638
*b++ >>= bit_offset;
16361639

16371640
/* setup rest of the bytes if any */
1638-
for (i = 1; i < cell->bytes; i++) {
1641+
for (i = 1; i < bytes; i++) {
16391642
/* Get bits from next byte and shift them towards msb */
16401643
*p |= *b << (BITS_PER_BYTE - bit_offset);
16411644

@@ -1648,7 +1651,7 @@ static void nvmem_shift_read_buffer_in_place(struct nvmem_cell_entry *cell, void
16481651
}
16491652

16501653
/* result fits in less bytes */
1651-
extra = cell->bytes - DIV_ROUND_UP(cell->nbits, BITS_PER_BYTE);
1654+
extra = bytes - DIV_ROUND_UP(cell->nbits, BITS_PER_BYTE);
16521655
while (--extra >= 0)
16531656
*p-- = 0;
16541657

drivers/phy/Kconfig

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -95,6 +95,7 @@ config PHY_NXP_PTN3222
9595

9696
source "drivers/phy/allwinner/Kconfig"
9797
source "drivers/phy/amlogic/Kconfig"
98+
source "drivers/phy/apple/Kconfig"
9899
source "drivers/phy/broadcom/Kconfig"
99100
source "drivers/phy/cadence/Kconfig"
100101
source "drivers/phy/freescale/Kconfig"

drivers/phy/Makefile

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ obj-$(CONFIG_PHY_AIROHA_PCIE) += phy-airoha-pcie.o
1414
obj-$(CONFIG_PHY_NXP_PTN3222) += phy-nxp-ptn3222.o
1515
obj-y += allwinner/ \
1616
amlogic/ \
17+
apple/ \
1718
broadcom/ \
1819
cadence/ \
1920
freescale/ \

drivers/phy/apple/Kconfig

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
# SPDX-License-Identifier: GPL-2.0 OR BSD-2-Clause
2+
config PHY_APPLE_ATC
3+
tristate "Apple Type-C PHY"
4+
depends on ARCH_APPLE || COMPILE_TEST
5+
default ARCH_APPLE
6+
select GENERIC_PHY
7+
depends on USB_SUPPORT
8+
depends on TYPEC
9+
help
10+
Enable this to add support for the Apple Type-C PHY, switch
11+
and mux found in Apple SoCs such as the M1.
12+
This driver currently provides support for USB2 and USB3.
13+
14+
config PHY_APPLE_DPTX
15+
tristate "Apple DPTX PHY"
16+
depends on ARCH_APPLE || COMPILE_TEST
17+
default ARCH_APPLE
18+
select GENERIC_PHY
19+
help
20+
Enable this to add support for the Apple DPTX PHY found on Apple SoCs
21+
such as the M2.
22+
This driver provides support for DisplayPort and is used on the
23+
Mac mini (M2, 2023).

drivers/phy/apple/Makefile

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
# SPDX-License-Identifier: GPL-2.0 OR BSD-2-Clause
2+
CFLAGS_trace.o := -I$(src)
3+
4+
obj-$(CONFIG_PHY_APPLE_ATC) += phy-apple-atc.o
5+
phy-apple-atc-y := atc.o
6+
phy-apple-atc-$(CONFIG_TRACING) += trace.o
7+
8+
obj-$(CONFIG_PHY_APPLE_DPTX) += phy-apple-dptx.o
9+
phy-apple-dptx-y += dptx.o

0 commit comments

Comments
 (0)