[PATCH] arm64: dts: amlogic: gxl: set i2c bias to pull-up
Da Xue
da at lessconfused.com
Mon Apr 28 19:08:38 PDT 2025
On Mon, Apr 28, 2025 at 3:50 AM Neil Armstrong
<neil.armstrong at linaro.org> wrote:
>
> On 25/04/2025 22:31, Da Xue wrote:
> > GXL I2C pins need internal pull-up enabled to operate if there
> > is no external resistor. The pull-up is 60kohms per the datasheet.
> >
> > We should set the bias when i2c pinmux is enabled.
>
> So, yes in some cases when the on-board pull-up is missing, the on-pad
> pull-up is required, but the whole idea was to only add the pull-up property
> when needed.
>
> So I know the real motivation is again about the 40pin headers, where
> some applications don't add a pull-up and still want to have i2c working.
>
> So my question is: why can't the pull-up property be added in overlays ?
The issue is the property types. I wish the bias was bias = <PULL_UP>
instead of bias-disabled, bias-pull-up, bias-pull-down since we have
to hack a bunch of /delete-property/ in the overlays. A lot of the
merging tools ignore /delete-property/. This is a convenience patch
which may cause push-pull times to change by an insignificant amount.
We have been carrying this patch out-of-tree for 5+ years without
issues. I have not seen any design on GXL that had a PU for I2C.
Externally, I've seen threads of people asking why I2C does not work
on other boards.
>
> Neil
>
> >
> > Signed-off-by: Da Xue <da at libre.computer>
> > ---
> > arch/arm64/boot/dts/amlogic/meson-gxl.dtsi | 10 +++++-----
> > 1 file changed, 5 insertions(+), 5 deletions(-)
> >
> > diff --git a/arch/arm64/boot/dts/amlogic/meson-gxl.dtsi b/arch/arm64/boot/dts/amlogic/meson-gxl.dtsi
> > index 2dc2fdaecf9f..aed8dbfbb64d 100644
> > --- a/arch/arm64/boot/dts/amlogic/meson-gxl.dtsi
> > +++ b/arch/arm64/boot/dts/amlogic/meson-gxl.dtsi
> > @@ -214,7 +214,7 @@ mux {
> > groups = "i2c_sck_ao",
> > "i2c_sda_ao";
> > function = "i2c_ao";
> > - bias-disable;
> > + bias-pull-up;
> > };
> > };
> >
> > @@ -576,7 +576,7 @@ mux {
> > groups = "i2c_sck_a",
> > "i2c_sda_a";
> > function = "i2c_a";
> > - bias-disable;
> > + bias-pull-up;
> > };
> > };
> >
> > @@ -585,7 +585,7 @@ mux {
> > groups = "i2c_sck_b",
> > "i2c_sda_b";
> > function = "i2c_b";
> > - bias-disable;
> > + bias-pull-up;
> > };
> > };
> >
> > @@ -594,7 +594,7 @@ mux {
> > groups = "i2c_sck_c",
> > "i2c_sda_c";
> > function = "i2c_c";
> > - bias-disable;
> > + bias-pull-up;
> > };
> > };
> >
> > @@ -603,7 +603,7 @@ mux {
> > groups = "i2c_sck_c_dv19",
> > "i2c_sda_c_dv18";
> > function = "i2c_c";
> > - bias-disable;
> > + bias-pull-up;
> > };
> > };
> >
>
>
> _______________________________________________
> linux-amlogic mailing list
> linux-amlogic at lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/linux-amlogic
More information about the linux-amlogic
mailing list